Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff -rNup a/gett-cli/gett/gett.py b/gett-cli/gett/gett.py
- --- a/gett-cli/gett/gett.py 2017-04-18 00:21:57.697918273 +0800
- +++ b/gett-cli/gett/gett.py 2017-04-18 00:18:29.653921999 +0800
- @@ -32,7 +32,6 @@ from http.client import HTTPConnection
- logger = logging.getLogger(__name__)
- API_BASE = 'https://open.ge.tt/1/'
- -API_KEY = 't05kormjprb2o6rm8f8wmts2thjjor'
- class APIError(Exception):
- @@ -52,7 +51,7 @@ def _post_request(path, **kwargs):
- url += '?' + urlencode(qskeys)
- input_data = json.dumps(kwargs).encode('utf-8')
- - request = Request(url, input_data)
- + request = Request(url, input_data, {"Content-Type":" application/json;charset=UTF-8"})
- return _request(request)
- @@ -117,7 +116,7 @@ class User(object):
- def login_auth(self, email, password):
- logger.debug("Logging-in user %r", email)
- result = _post_request('users/login',
- - apikey=API_KEY, email=email, password=password
- + email=email, password=password
- )
- self._load(result)
- @@ -180,11 +179,12 @@ class Share(object):
- if not self.url:
- self.url = 'http://ge.tt/%s' % self.name
- - for file_result in result['files']:
- - f = File(self)
- - f._load(file_result)
- + if 'files' in result:
- + for file_result in result['files']:
- + f = File(self)
- + f._load(file_result)
- - self.files[f.id] = f
- + self.files[f.id] = f
- def refresh(self):
- logger.debug("Refreshing share %r", self.name)
- @@ -209,15 +209,25 @@ class UserShare(Share):
- _accesstoken=self.user.atoken
- )
- - def create_file(self, filename, size=None):
- + def create_file(self, filename, filesize=None, fileid=None):
- logger.debug("Creating file %r in user share %r", filename, self.name)
- - result = _post_request('files/%s/create' % self.name,
- - _accesstoken=self.user.atoken, filename=filename
- - )
- - file = File(self)
- - file._load(result)
- - file.size = size
- - self.files[file.id] = file
- + file = None
- + if fileid is not None:
- + result = _get_request('files/%s/%s/upload' % (self.name, fileid),
- + accesstoken=self.user.atoken
- + )
- + file = self.files[fileid]
- + file._load(result, fileid)
- + file.name = filename
- + file.size = filesize
- + else:
- + result = _post_request('files/%s/create' % self.name,
- + _accesstoken=self.user.atoken, filename=filename, size=filesize
- + )
- + file = File(self)
- + file._load(result)
- + file.size = filesize
- + self.files[file.id] = file
- return file
- @@ -225,14 +235,17 @@ class File(object):
- def __init__(self, share):
- self.share = share
- - def _load(self, result):
- - self.name = result['filename']
- - self.id = result['fileid']
- - self.size = result.get('size')
- - self.downloads = result['downloads']
- - self.readystate = result['readystate']
- - self.created = datetime.datetime.fromtimestamp(result['created'])
- - self.url = result.get('getturl')
- + def _load(self, result, fileid=None):
- + if fileid is None:
- + self.name = result['filename']
- + self.id = result['fileid']
- + self.size = result.get('size')
- + self.downloads = result['downloads']
- + self.readystate = result['readystate']
- + self.created = datetime.datetime.fromtimestamp(result['created'])
- + self.url = result.get('getturl')
- + else:
- + self.id = fileid
- # FIXME: work around API omission
- if not self.url:
- @@ -240,6 +253,8 @@ class File(object):
- if 'upload' in result:
- self.put_url = result['upload']['puturl']
- + elif 'puturl' in result:
- + self.put_url = result['puturl']
- else:
- self.put_url = None
- diff -rNup a/gett-cli/gett/uploader.py b/gett-cli/gett/uploader.py
- --- a/gett-cli/gett/uploader.py 2017-04-18 00:21:57.697918273 +0800
- +++ b/gett-cli/gett/uploader.py 2017-04-12 23:56:35.937965886 +0800
- @@ -347,6 +347,8 @@ def main():
- # File uploads
- if args.file:
- + fileid = None
- +
- if args.share:
- # Upload to existing share
- @@ -354,6 +356,8 @@ def main():
- if match:
- share = user.get_share(match.group(1))
- + if match.group(2):
- + fileid = match.group(2)
- else:
- parser.error("argument --list: invalid share name, please supply either URL or name")
- else:
- @@ -372,7 +376,7 @@ def main():
- for fp in chain.from_iterable(args.file):
- name = os.path.basename(fp.name)
- - file = share.create_file(name, os.path.getsize(fp.name))
- + file = share.create_file(name, os.path.getsize(fp.name), fileid)
- upload = FileUpload(file, fp)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement