Compare commits
2 commits
2ebc6ffd3a
...
7e72cfd163
| Author | SHA1 | Date | |
|---|---|---|---|
| 7e72cfd163 | |||
| f7c7a6689b |
2 changed files with 14 additions and 7 deletions
18
ox/api.py
18
ox/api.py
|
|
@ -151,7 +151,8 @@ class API(object):
|
||||||
fd.write(chunk)
|
fd.write(chunk)
|
||||||
shutil.move(tmpname, filename)
|
shutil.move(tmpname, filename)
|
||||||
|
|
||||||
def upload_chunks(self, url, filename, data=None):
|
|
||||||
|
def upload_chunks(self, url, filename, data=None, silent=False):
|
||||||
form = MultiPartForm()
|
form = MultiPartForm()
|
||||||
if data:
|
if data:
|
||||||
for key in data:
|
for key in data:
|
||||||
|
|
@ -188,26 +189,31 @@ class API(object):
|
||||||
try:
|
try:
|
||||||
data = self._json_request(uploadUrl, form)
|
data = self._json_request(uploadUrl, form)
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print("\ninterrupted by user.")
|
if not slient:
|
||||||
|
print("\ninterrupted by user.")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
except:
|
except:
|
||||||
print("uploading chunk failed, will try again in 5 seconds\r", end='')
|
if not slient:
|
||||||
|
print("uploading chunk failed, will try again in 5 seconds\r", end='')
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
data = {'result': -1}
|
data = {'result': -1}
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
if data and 'status' in data:
|
if data and 'status' in data:
|
||||||
if data['status']['code'] == 403:
|
if data['status']['code'] == 403:
|
||||||
print("login required")
|
if not slient:
|
||||||
|
print("login required")
|
||||||
return False
|
return False
|
||||||
if data['status']['code'] != 200:
|
if data['status']['code'] != 200:
|
||||||
print("request returned error, will try again in 5 seconds")
|
if not slient:
|
||||||
|
print("request returned error, will try again in 5 seconds")
|
||||||
if self.DEBUG:
|
if self.DEBUG:
|
||||||
print(data)
|
print(data)
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
if data and data.get('result') == 1:
|
if data and data.get('result') == 1:
|
||||||
done += len(chunk)
|
done += len(chunk)
|
||||||
if data.get('offset') not in (None, done):
|
if data.get('offset') not in (None, done):
|
||||||
print('server offset out of sync, continue from', data['offset'])
|
if not slient:
|
||||||
|
print('server offset out of sync, continue from', data['offset'])
|
||||||
done = data['offset']
|
done = data['offset']
|
||||||
f.seek(done)
|
f.seek(done)
|
||||||
chunk = f.read(CHUNK_SIZE)
|
chunk = f.read(CHUNK_SIZE)
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,8 @@ EXTENSIONS = {
|
||||||
'avi', 'divx', 'dv', 'flv', 'm2t', 'm2ts', 'm4v', 'mkv', 'mov', 'mp4',
|
'avi', 'divx', 'dv', 'flv', 'm2t', 'm2ts', 'm4v', 'mkv', 'mov', 'mp4',
|
||||||
'mpeg', 'mpg', 'mts', 'ogm', 'ogv', 'rm', 'rmvb', 'vob', 'webm', 'wmv', 'asf',
|
'mpeg', 'mpg', 'mts', 'ogm', 'ogv', 'rm', 'rmvb', 'vob', 'webm', 'wmv', 'asf',
|
||||||
'mod', 'tod', # http://en.wikipedia.org/wiki/MOD_and_TOD
|
'mod', 'tod', # http://en.wikipedia.org/wiki/MOD_and_TOD
|
||||||
'mxf', 'ts'
|
'mxf', 'ts',
|
||||||
|
'dat', # VOD files
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue