Commits

mickael9 committed fbc6b6a

Added distutils (setup.py) script
Moved uploader.py to scripts/gett

  • Participants
  • Parent commits 4bd707e

Comments (0)

Files changed (3)

File scripts/gett

+#!/usr/bin/env python
+
+import sys, os, os.path
+import argparse
+import signal
+import re
+
+from gett import *
+from time import sleep
+
+url_re = re.compile(r'^(?:http://ge\.tt/|/)?(\w+)(?:/(?:v/(\d+)))?$')
+
+signal.signal(signal.SIGINT, signal.SIG_DFL)
+
+home = os.getenv('USERPROFILE') or os.getenv('HOME')
+
+parser = argparse.ArgumentParser(description="A simple ge.tt uploader")
+parser.add_argument('file', nargs='*', type=argparse.FileType('rb'), help="Name of a file to upload")
+parser.add_argument('-t', dest='title', help='Title of the share (defaults to first file name)')
+parser.add_argument('-s', dest='share', help='Name of the share to upload to (defaults to a newly created one)')
+parser.add_argument('-D', dest='debug', action='store_true', help='Debug API calls')
+parser.add_argument('-S', dest='seq', action='store_true', help='Force sequential upload of files in order (by default, files are uploaded in parallel although the progress bars are displayed in ascending file size order)')
+
+parser.add_argument('--delete', nargs=1, dest='share_or_file', help='Delete a share or a file (url or path)')
+
+auth_group = parser.add_argument_group('Authentification (optional)')
+auth_group.add_argument('-e', dest='email', help='Email to login with')
+auth_group.add_argument('-p', dest='password', help='Password to login with')
+auth_group.add_argument('-k', dest='tokenfile', help='Ge.tt token file path (~/.gett-token)', default=os.path.join(home, '.gett-token'))
+
+args = parser.parse_args()
+
+if args.debug:
+    import gett
+    gett.DEBUG = True
+
+user = User()
+try:
+    # Try to log-in with the token
+
+    token = open(args.tokenfile, 'r').read()
+    user.login_token(token)
+except:
+    # If it doesn't work, ask the user its email and password
+
+    if not args.email:
+        args.email = input('Please enter your Ge.tt email: ')
+
+    if not args.password:
+        import getpass
+        args.password = getpass.getpass('Please enter your Ge.tt password: ')
+
+    try:
+        user.login_auth(args.email, args.password)
+    except Exception as ex:
+        print('Unable to login: %s' % ex.args[0])
+        sys.exit(1)
+
+with open(args.tokenfile, 'w') as file:
+    file.write(user.rtoken)
+
+if not args.share_or_file:
+    args.share_or_file = []
+
+for item in args.share_or_file:
+    match = url_re.match(item)
+
+    if not match:
+        parser.error('argument --delete: invalid format, please supply file/share url or path')
+
+    share = user.get_share(match.group(1))
+
+    if match.group(2):
+        id = match.group(2)
+        file = share.files[id]
+        file.destroy()
+    else:
+        share.destroy()
+
+if args.file:
+    if args.share:
+        share = user.get_share(args.share)
+    else:
+        if args.title:
+            share = user.create_share(args.title)
+        else:
+            share = user.create_share(os.path.basename(args.file[0].name))
+
+
+    uploads = []
+
+    for fp in args.file:
+        name = os.path.basename(fp.name)
+        file = share.create_file(name)
+
+        print('%s: %s' % (name, file.url))
+
+        upload = FileUpload(file, fp)
+
+        if not args.seq:
+            upload.start()
+
+        uploads.append(upload)
+
+    print()
+
+    if not args.seq:
+        uploads.sort(key=lambda item: item.file_size)
+
+    def print_status(upload, index, count):
+        name = upload.file.name
+
+        if len(name) > 15:
+            name = name[:12] + '...'
+
+        name = name.ljust(15)
+
+        bar_size = int(50 * upload.percent_done / 100)
+        bar = '[' + (bar_size * '#') + ((50 - bar_size) * '-') + ']'
+
+        sys.stderr.write('\r%s (%d/%d) %s %d %%' % (name, index, count, bar, upload.percent_done))
+
+    for i, upload in enumerate(uploads):
+        if args.seq:
+            upload.start()
+
+        while True:
+            print_status(upload, i + 1, len(uploads))
+            upload.join(0.5)
+
+            if not upload.is_alive():
+                print_status(upload, i + 1, len(uploads))
+
+                if upload.ex:
+                    sys.stderr.write(('\rError uploading %s: %s' % (upload.file.name, upload.ex)).ljust(80))
+
+                sys.stderr.write('\n')
+                break
+
+user.refresh()
+
+def humanize(nbytes):
+    if nbytes >= 10**9:
+        return '%.2f GB' % (nbytes / 10**9)
+    if nbytes >= 10**6:
+        return '%.2f MB' % (nbytes / 10**6)
+    if nbytes >= 10**3:
+        return '%.2f KB' % (nbytes / 10**3)
+
+    return '%.2f B' % nbytes
+
+print('Storage used : %s out of %s (%d %%)' % (
+        humanize(user.storage_used),
+        humanize(user.storage_limit),
+        int(100 * user.storage_used / user.storage_limit)))
+#!/usr/bin/env python
+
+from distutils.core import setup
+
+setup(name='Ge.tt uploader',
+      version='0.0',
+      description='A command-line uploader for Ge.tt',
+      author='Mickaël THOMAS',
+      author_email='mickael9@gmail.com',
+      url='https://bitbucket.org/mickael9/gett-cli/',
+      py_modules=['gett'],
+      scripts=['scripts/gett']
+     )
+

File uploader.py

-#!/usr/bin/env python
-
-import sys, os, os.path
-import argparse
-import signal
-import re
-
-from gett import *
-from time import sleep
-
-url_re = re.compile(r'^(?:http://ge\.tt/|/)?(\w+)(?:/(?:v/(\d+)))?$')
-
-signal.signal(signal.SIGINT, signal.SIG_DFL)
-
-home = os.getenv('USERPROFILE') or os.getenv('HOME')
-
-parser = argparse.ArgumentParser(description="A simple ge.tt uploader")
-parser.add_argument('file', nargs='*', type=argparse.FileType('rb'), help="Name of a file to upload")
-parser.add_argument('-t', dest='title', help='Title of the share (defaults to first file name)')
-parser.add_argument('-s', dest='share', help='Name of the share to upload to (defaults to a newly created one)')
-parser.add_argument('-D', dest='debug', action='store_true', help='Debug API calls')
-parser.add_argument('-S', dest='seq', action='store_true', help='Force sequential upload of files in order (by default, files are uploaded in parallel although the progress bars are displayed in ascending file size order)')
-
-parser.add_argument('--delete', nargs=1, dest='share_or_file', help='Delete a share or a file (url or path)')
-
-auth_group = parser.add_argument_group('Authentification (optional)')
-auth_group.add_argument('-e', dest='email', help='Email to login with')
-auth_group.add_argument('-p', dest='password', help='Password to login with')
-auth_group.add_argument('-k', dest='tokenfile', help='Ge.tt token file path (~/.gett-token)', default=os.path.join(home, '.gett-token'))
-
-args = parser.parse_args()
-
-if args.debug:
-    import gett
-    gett.DEBUG = True
-
-user = User()
-try:
-    # Try to log-in with the token
-
-    token = open(args.tokenfile, 'r').read()
-    user.login_token(token)
-except:
-    # If it doesn't work, ask the user its email and password
-
-    if not args.email:
-        args.email = input('Please enter your Ge.tt email: ')
-
-    if not args.password:
-        import getpass
-        args.password = getpass.getpass('Please enter your Ge.tt password: ')
-
-    try:
-        user.login_auth(args.email, args.password)
-    except Exception as ex:
-        print('Unable to login: %s' % ex.args[0])
-        sys.exit(1)
-
-with open(args.tokenfile, 'w') as file:
-    file.write(user.rtoken)
-
-if not args.share_or_file:
-    args.share_or_file = []
-
-for item in args.share_or_file:
-    match = url_re.match(item)
-
-    if not match:
-        parser.error('argument --delete: invalid format, please supply file/share url or path')
-
-    share = user.get_share(match.group(1))
-
-    if match.group(2):
-        id = match.group(2)
-        file = share.files[id]
-        file.destroy()
-    else:
-        share.destroy()
-
-if args.file:
-    if args.share:
-        share = user.get_share(args.share)
-    else:
-        if args.title:
-            share = user.create_share(args.title)
-        else:
-            share = user.create_share(os.path.basename(args.file[0].name))
-
-
-    uploads = []
-
-    for fp in args.file:
-        name = os.path.basename(fp.name)
-        file = share.create_file(name)
-
-        print('%s: %s' % (name, file.url))
-
-        upload = FileUpload(file, fp)
-
-        if not args.seq:
-            upload.start()
-
-        uploads.append(upload)
-
-    print()
-
-    if not args.seq:
-        uploads.sort(key=lambda item: item.file_size)
-
-    def print_status(upload, index, count):
-        name = upload.file.name
-
-        if len(name) > 15:
-            name = name[:12] + '...'
-
-        name = name.ljust(15)
-
-        bar_size = int(50 * upload.percent_done / 100)
-        bar = '[' + (bar_size * '#') + ((50 - bar_size) * '-') + ']'
-
-        sys.stderr.write('\r%s (%d/%d) %s %d %%' % (name, index, count, bar, upload.percent_done))
-
-    for i, upload in enumerate(uploads):
-        if args.seq:
-            upload.start()
-
-        while True:
-            print_status(upload, i + 1, len(uploads))
-            upload.join(0.5)
-
-            if not upload.is_alive():
-                print_status(upload, i + 1, len(uploads))
-
-                if upload.ex:
-                    sys.stderr.write(('\rError uploading %s: %s' % (upload.file.name, upload.ex)).ljust(80))
-
-                sys.stderr.write('\n')
-                break
-
-user.refresh()
-
-def humanize(nbytes):
-    if nbytes >= 10**9:
-        return '%.2f GB' % (nbytes / 10**9)
-    if nbytes >= 10**6:
-        return '%.2f MB' % (nbytes / 10**6)
-    if nbytes >= 10**3:
-        return '%.2f KB' % (nbytes / 10**3)
-
-    return '%.2f B' % nbytes
-
-print('Storage used : %s out of %s (%d %%)' % (
-        humanize(user.storage_used),
-        humanize(user.storage_limit),
-        int(100 * user.storage_used / user.storage_limit)))