From f75105bd9f0d82423f1ead1025099b53b39a7483 Mon Sep 17 00:00:00 2001 From: labrys <labrys@users.noreply.github.com> Date: Thu, 7 Jan 2016 10:02:00 -0500 Subject: [PATCH] Fix file size conversion for btdigg --- sickbeard/providers/btdigg.py | 81 +++++++++++++++++++---------------- 1 file changed, 44 insertions(+), 37 deletions(-) diff --git a/sickbeard/providers/btdigg.py b/sickbeard/providers/btdigg.py index 099b7116b..81bca3e05 100644 --- a/sickbeard/providers/btdigg.py +++ b/sickbeard/providers/btdigg.py @@ -22,6 +22,7 @@ from urllib import urlencode from sickbeard import logger from sickbeard import tvcache +from sickrage.helper.common import convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider @@ -70,43 +71,49 @@ class BTDIGGProvider(TorrentProvider): logger.log(u"No data returned to be parsed!!!", logger.DEBUG) continue - for torrent in jdata: - if not torrent['name']: - logger.log(u"Ignoring result since it has no name", logger.DEBUG) - continue - - if torrent['ff']: - logger.log(u"Ignoring result for %s since it's a fake (level = %s)" % (torrent['name'], torrent['ff']), logger.DEBUG) - continue - - if not torrent['files']: - logger.log(u"Ignoring result for %s without files" % torrent['name'], logger.DEBUG) - continue - - download_url = torrent['magnet'] + self._custom_trackers - - if not download_url: - logger.log(u"Ignoring result for %s without a url" % torrent['name'], logger.DEBUG) - continue - - # FIXME - seeders = 1 - leechers = 0 - - # # Filter unseeded torrent (Unsupported) - # if seeders < self.minseed or leechers < self.minleech: - # if mode != 'RSS': - # logger.log(u"Discarding torrent because it doesn't meet the minimum seeders or leechers: {0} (S:{1} L:{2})".format(title, seeders, leechers), logger.DEBUG) - # continue - - if mode != 'RSS': - logger.log(u"Found result: %s" % torrent['name'], logger.DEBUG) - - item = torrent['name'], download_url, torrent['size'], seeders, leechers - items[mode].append(item) - - # # For each search mode sort all the items by seeders if available (Unsupported) - # items[mode].sort(key=lambda tup: tup[3], reverse=True) + try: + + for torrent in jdata: + if not torrent['name']: + logger.log(u"Ignoring result since it has no name", logger.DEBUG) + continue + + if torrent['ff']: + logger.log(u"Ignoring result for %s since it's a fake (level = %s)" % (torrent['name'], torrent['ff']), logger.DEBUG) + continue + + if not torrent['files']: + logger.log(u"Ignoring result for %s without files" % torrent['name'], logger.DEBUG) + continue + + download_url = torrent['magnet'] + self._custom_trackers if torrent['magnet'] else None + + # Provider doesn't provide seeders/leechers + seeders = 1 + leechers = 0 + torrent_size = torrent['size'] + size = convert_size(torrent_size) or -1 + + if not all([title, download_url]): + continue + + # Filter unseeded torrent (Unsupported) + #if seeders < self.minseed or leechers < self.minleech: + # if mode != 'RSS': + # logger.log(u"Discarding torrent because it doesn't meet the minimum seeders or leechers: {0} (S:{1} L:{2})".format(title, seeders, leechers), logger.DEBUG) + # continue + + item = title, download_url, size, seeders, leechers + if mode != 'RSS': + logger.log(u"Found result: %s " % title, logger.DEBUG) + + items[mode].append(item) + + except Exception: + logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.WARNING) + + # For each search mode sort all the items by seeders if available + #items[mode].sort(key=lambda tup: tup[3], reverse=True) results += items[mode] -- GitLab