1
0
Fork 0
mirror of https://gitlab.com/SIGBUS/nyaa.git synced 2024-12-22 14:49:59 +00:00

Handle qButtorrent empty url-list/webseeds

url-list is supposed to be omitted in case of no webseeds,
but qB will instead use an empty bytestring '' as the value.
This commit makes the validation more lenient regarding url-list.
This commit is contained in:
TheAMM 2017-07-30 11:32:17 +03:00
parent 1bc36c5a17
commit 987103b213
2 changed files with 4 additions and 2 deletions

View file

@ -140,7 +140,8 @@ def handle_torrent_upload(upload_form, uploading_user=None, fromAPI=False):
trackers.add(announce[0].decode('ascii')) trackers.add(announce[0].decode('ascii'))
# Store webseeds # Store webseeds
webseed_list = torrent_data.torrent_dict.get('url-list', []) # qBittorrent doesn't omit url-list but sets it as '' even when there are no webseeds
webseed_list = torrent_data.torrent_dict.get('url-list') or []
webseeds = OrderedSet(webseed.decode('utf-8') for webseed in webseed_list) webseeds = OrderedSet(webseed.decode('utf-8') for webseed in webseed_list)
# Remove our trackers, maybe? TODO ? # Remove our trackers, maybe? TODO ?

View file

@ -346,7 +346,8 @@ def _validate_trackers(torrent_dict, tracker_to_check_for=None):
# http://www.bittorrent.org/beps/bep_0019.html # http://www.bittorrent.org/beps/bep_0019.html
def _validate_webseeds(torrent_dict): def _validate_webseeds(torrent_dict):
webseed_list = torrent_dict.get('url-list') webseed_list = torrent_dict.get('url-list')
if webseed_list is not None: # qBittorrent has an empty field instead of omitting the key, so just check for truthiness
if webseed_list:
_validate_list(webseed_list, 'url-list') _validate_list(webseed_list, 'url-list')
for webseed_url in webseed_list: for webseed_url in webseed_list: