Compare commits

..

5 commits

Author SHA1 Message Date
j
7e72cfd163 support dat 2021-02-23 09:09:35 +01:00
j
f7c7a6689b don't print status during upload 2021-02-19 00:10:59 +01:00
j
2ebc6ffd3a use py3 tests 2021-01-28 12:56:41 +01:00
j
851204c619 allow target="_blank" for href 2020-10-15 11:39:19 +02:00
j
a2c9309808 not all torrents have announce 2020-07-28 11:36:20 +02:00
5 changed files with 20 additions and 10 deletions

View file

@ -151,7 +151,8 @@ class API(object):
fd.write(chunk)
shutil.move(tmpname, filename)
def upload_chunks(self, url, filename, data=None):
def upload_chunks(self, url, filename, data=None, silent=False):
form = MultiPartForm()
if data:
for key in data:
@ -188,18 +189,22 @@ class API(object):
try:
data = self._json_request(uploadUrl, form)
except KeyboardInterrupt:
if not slient:
print("\ninterrupted by user.")
sys.exit(1)
except:
if not slient:
print("uploading chunk failed, will try again in 5 seconds\r", end='')
sys.stdout.flush()
data = {'result': -1}
time.sleep(5)
if data and 'status' in data:
if data['status']['code'] == 403:
if not slient:
print("login required")
return False
if data['status']['code'] != 200:
if not slient:
print("request returned error, will try again in 5 seconds")
if self.DEBUG:
print(data)
@ -207,6 +212,7 @@ class API(object):
if data and data.get('result') == 1:
done += len(chunk)
if data.get('offset') not in (None, done):
if not slient:
print('server offset out of sync, continue from', data['offset'])
done = data['offset']
f.seek(done)

View file

@ -32,7 +32,8 @@ EXTENSIONS = {
'avi', 'divx', 'dv', 'flv', 'm2t', 'm2ts', 'm4v', 'mkv', 'mov', 'mp4',
'mpeg', 'mpg', 'mts', 'ogm', 'ogv', 'rm', 'rmvb', 'vob', 'webm', 'wmv', 'asf',
'mod', 'tod', # http://en.wikipedia.org/wiki/MOD_and_TOD
'mxf', 'ts'
'mxf', 'ts',
'dat', # VOD files
],
}

View file

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

View file

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

View file

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