Compare commits

..

No commits in common. "7e72cfd163d9fc868f79f0ae928fc8f926106926" and "0df326eaf8221017cef4861b86cd2dbd42f557e4" have entirely different histories.

5 changed files with 10 additions and 20 deletions

View file

@ -151,8 +151,7 @@ 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:
@ -189,31 +188,26 @@ class API(object):
try: try:
data = self._json_request(uploadUrl, form) data = self._json_request(uploadUrl, form)
except KeyboardInterrupt: except KeyboardInterrupt:
if not slient: print("\ninterrupted by user.")
print("\ninterrupted by user.")
sys.exit(1) sys.exit(1)
except: except:
if not slient: print("uploading chunk failed, will try again in 5 seconds\r", end='')
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:
if not slient: print("login required")
print("login required")
return False return False
if data['status']['code'] != 200: if data['status']['code'] != 200:
if not slient: print("request returned error, will try again in 5 seconds")
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):
if not slient: print('server offset out of sync, continue from', data['offset'])
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)

View file

@ -32,8 +32,7 @@ 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
], ],
} }

View file

@ -290,10 +290,8 @@ def sanitize_html(html, tags=None, global_attributes=[]):
{ {
'name': 'a', 'name': 'a',
'required': ['href'], 'required': ['href'],
'optional': ['target'],
'validation': { 'validation': {
'href': valid_url, 'href': valid_url
'target': '^_blank$',
} }
}, },
{'name': 'br'}, {'name': 'br'},

View file

@ -55,8 +55,7 @@ def get_torrent_info(data=None, file=None):
tinfo[key] = metainfo[key] tinfo[key] = metainfo[key]
tinfo['size'] = file_length tinfo['size'] = file_length
tinfo['hash'] = sha1(bencode(info)).hexdigest() tinfo['hash'] = sha1(bencode(info)).hexdigest()
if 'announce' in metainfo: tinfo['announce'] = metainfo['announce']
tinfo['announce'] = metainfo['announce']
if file: if file:
tinfo['timestamp'] = os.stat(file).st_ctime tinfo['timestamp'] = os.stat(file).st_ctime
return tinfo return tinfo

View file

@ -1 +1 @@
nosetests3 --with-doctest ox nosetests --with-doctest ox