From 40d8d05ee9a20a5317b783a9742fd64d4b1489a0 Mon Sep 17 00:00:00 2001 From: miigotu <miigotu@gmail.com> Date: Fri, 8 Jan 2016 13:20:38 -0800 Subject: [PATCH] Stop using the `items = {'Season': [], 'Episode': [], 'RSS': []}` format, because it keeps all results from all modes duplicated along with the results Lint all changed providers --- sickbeard/providers/alpharatio.py | 13 ++++----- sickbeard/providers/bitcannon.py | 14 ++++----- sickbeard/providers/bitsnoop.py | 18 ++++-------- sickbeard/providers/bitsoup.py | 17 +++++------ sickbeard/providers/bluetigers.py | 35 +++++++--------------- sickbeard/providers/btdigg.py | 19 ++++++------ sickbeard/providers/cpasbien.py | 18 +++++------- sickbeard/providers/danishbits.py | 19 +++++------- sickbeard/providers/elitetorrent.py | 15 ++++------ sickbeard/providers/extratorrent.py | 13 ++++----- sickbeard/providers/fnt.py | 20 +++++-------- sickbeard/providers/freshontv.py | 21 ++++++-------- sickbeard/providers/gftracker.py | 16 +++++----- sickbeard/providers/hd4free.py | 16 +++++----- sickbeard/providers/hdspace.py | 18 +++++------- sickbeard/providers/hdtorrents.py | 12 ++++---- sickbeard/providers/hounddawgs.py | 12 ++++---- sickbeard/providers/iptorrents.py | 20 ++++++------- sickbeard/providers/kat.py | 14 ++++----- sickbeard/providers/limetorrents.py | 12 ++++---- sickbeard/providers/morethantv.py | 22 +++++++------- sickbeard/providers/newpct.py | 42 +++++++++++++-------------- sickbeard/providers/nyaatorrents.py | 20 ++++++------- sickbeard/providers/pretome.py | 18 +++++------- sickbeard/providers/rarbg.py | 31 ++++++++++---------- sickbeard/providers/scc.py | 14 ++++----- sickbeard/providers/scenetime.py | 16 +++++----- sickbeard/providers/speedcd.py | 18 +++++------- sickbeard/providers/strike.py | 16 +++++----- sickbeard/providers/t411.py | 20 ++++++------- sickbeard/providers/thepiratebay.py | 16 +++++----- sickbeard/providers/tntvillage.py | 32 ++++++++++---------- sickbeard/providers/torrentbytes.py | 30 +++++++++---------- sickbeard/providers/torrentday.py | 16 +++++----- sickbeard/providers/torrentleech.py | 16 +++++----- sickbeard/providers/torrentproject.py | 16 +++++----- sickbeard/providers/torrentz.py | 13 ++++----- sickbeard/providers/transmitthenet.py | 16 +++++----- sickbeard/providers/tvchaosuk.py | 16 +++++----- sickbeard/providers/xthor.py | 13 ++++----- 40 files changed, 324 insertions(+), 419 deletions(-) diff --git a/sickbeard/providers/alpharatio.py b/sickbeard/providers/alpharatio.py index fe036380a..75ed39586 100644 --- a/sickbeard/providers/alpharatio.py +++ b/sickbeard/providers/alpharatio.py @@ -71,10 +71,7 @@ class AlphaRatioProvider(TorrentProvider): # pylint: disable=too-many-instance- return True def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-branches - results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results @@ -87,8 +84,9 @@ class AlphaRatioProvider(TorrentProvider): # pylint: disable=too-many-instance- 'filter_cat[5]':1 } - for mode in search_strings.keys(): + for mode in search_strings: logger.log(u"Search Mode: %s" % mode, logger.DEBUG) + items = [] for search_string in search_strings[mode]: if mode != 'RSS': @@ -150,12 +148,11 @@ class AlphaRatioProvider(TorrentProvider): # pylint: disable=too-many-instance- if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) # 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] + items.sort(key=lambda tup: tup[3], reverse=True) + results += items return results diff --git a/sickbeard/providers/bitcannon.py b/sickbeard/providers/bitcannon.py index ae7a64efd..23a656718 100644 --- a/sickbeard/providers/bitcannon.py +++ b/sickbeard/providers/bitcannon.py @@ -26,7 +26,7 @@ from sickrage.helper.common import convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class BitCannonProvider(TorrentProvider): +class BitCannonProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): TorrentProvider.__init__(self, "BitCannon") @@ -47,13 +47,12 @@ class BitCannonProvider(TorrentProvider): 'apiKey': '' } - def search(self, search_strings, age=0, ep_obj=None): + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-branches, too-many-statements, too-many-locals # search_strings comes in one of these formats: # {'Episode': ['Italian Works S05E10']} # {'Season': ['Italian Works S05']} # {'RSS': ['tv', 'anime']} results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} # select the correct category (TODO: Add more categories?) anime = (self.show and self.show.anime) or (ep_obj and ep_obj.show and ep_obj.show.anime) or False @@ -63,7 +62,8 @@ class BitCannonProvider(TorrentProvider): if self.api_key: self.search_params['apiKey'] = self.api_key - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: @@ -115,14 +115,14 @@ class BitCannonProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) except Exception: logger.log(u"Failed parsing provider. Traceback: %r" % traceback.format_exc(), logger.ERROR) # 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] + items.sort(key=lambda tup: tup[3], reverse=True) + results += items return results diff --git a/sickbeard/providers/bitsnoop.py b/sickbeard/providers/bitsnoop.py index c84e7e64a..c98e0e761 100644 --- a/sickbeard/providers/bitsnoop.py +++ b/sickbeard/providers/bitsnoop.py @@ -48,11 +48,9 @@ class BitSnoopProvider(TorrentProvider): # pylint: disable=too-many-instance-at self.cache = BitSnoopCache(self) def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-branches,too-many-locals - results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: @@ -71,10 +69,7 @@ class BitSnoopProvider(TorrentProvider): # pylint: disable=too-many-instance-at continue data = BeautifulSoup(data, 'html5lib') - - entries = entries = data.findAll('item') - - for item in entries: + for item in data.findAll('item'): try: if not item.category.text.endswith(('TV', 'Anime')): continue @@ -112,15 +107,14 @@ class BitSnoopProvider(TorrentProvider): # pylint: disable=too-many-instance-at if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) except (AttributeError, TypeError, KeyError, ValueError): logger.log(u"Failed parsing provider. Traceback: %r" % traceback.format_exc(), logger.ERROR) # 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] + items.sort(key=lambda tup: tup[3], reverse=True) + results += items return results diff --git a/sickbeard/providers/bitsoup.py b/sickbeard/providers/bitsoup.py index 8239cd91e..6c36beae6 100644 --- a/sickbeard/providers/bitsoup.py +++ b/sickbeard/providers/bitsoup.py @@ -27,7 +27,7 @@ from sickrage.helper.common import convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class BitSoupProvider(TorrentProvider): +class BitSoupProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): TorrentProvider.__init__(self, "BitSoup") @@ -78,18 +78,15 @@ class BitSoupProvider(TorrentProvider): return True - def search(self, search_strings, age=0, ep_obj=None): - + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: - if mode != 'RSS': logger.log(u"Search string: %s " % search_string, logger.DEBUG) @@ -140,15 +137,15 @@ class BitSoupProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.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) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/bluetigers.py b/sickbeard/providers/bluetigers.py index 5a7da1f3d..ba8e35887 100644 --- a/sickbeard/providers/bluetigers.py +++ b/sickbeard/providers/bluetigers.py @@ -21,7 +21,6 @@ import traceback import requests import re -from requests.auth import AuthBase from sickbeard.bs4_parser import BS4Parser from sickbeard import logger @@ -29,7 +28,7 @@ from sickbeard import tvcache from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class BLUETIGERSProvider(TorrentProvider): +class BlueTigersProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): TorrentProvider.__init__(self, "BLUETIGERS") @@ -38,7 +37,7 @@ class BLUETIGERSProvider(TorrentProvider): self.ratio = None self.token = None - self.cache = BLUETIGERSCache(self) + self.cache = BlueTigersCache(self) self.urls = { 'base_url': 'https://www.bluetigers.ca/', @@ -79,15 +78,13 @@ class BLUETIGERSProvider(TorrentProvider): return True - def search(self, search_strings, age=0, ep_obj=None): - + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: @@ -131,15 +128,15 @@ class BLUETIGERSProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) - except Exception as e: + except Exception: logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.ERROR) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results @@ -147,17 +144,7 @@ class BLUETIGERSProvider(TorrentProvider): return self.ratio -class BLUETIGERSAuth(AuthBase): - """Attaches HTTP Authentication to the given Request object.""" - def __init__(self, token): - self.token = token - - def __call__(self, r): - r.headers['Authorization'] = self.token - return r - - -class BLUETIGERSCache(tvcache.TVCache): +class BlueTigersCache(tvcache.TVCache): def __init__(self, provider_obj): tvcache.TVCache.__init__(self, provider_obj) @@ -169,4 +156,4 @@ class BLUETIGERSCache(tvcache.TVCache): return {'entries': self.provider.search(search_strings)} -provider = BLUETIGERSProvider() +provider = BlueTigersProvider() diff --git a/sickbeard/providers/btdigg.py b/sickbeard/providers/btdigg.py index 349a77b2d..c09b9ceac 100644 --- a/sickbeard/providers/btdigg.py +++ b/sickbeard/providers/btdigg.py @@ -47,13 +47,12 @@ class BTDIGGProvider(TorrentProvider): self.cache = BTDiggCache(self) - def search(self, search_strings, age=0, ep_obj=None): - + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} search_params = {'p': 0} for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: search_params['q'] = search_string.encode('utf-8') @@ -95,29 +94,29 @@ class BTDIGGProvider(TorrentProvider): title = torrent['name'] 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) + + items.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) + #items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/cpasbien.py b/sickbeard/providers/cpasbien.py index 6a8640404..cd8d2e39a 100644 --- a/sickbeard/providers/cpasbien.py +++ b/sickbeard/providers/cpasbien.py @@ -42,14 +42,12 @@ class CpasbienProvider(TorrentProvider): self.cache = CpasbienCache(self) - def search(self, search_params, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-statements, too-many-branches - + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-statements, too-many-branches results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - - for mode in search_params.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) - for search_string in search_params[mode]: + for search_string in search_strings[mode]: if mode != 'RSS': logger.log(u"Search string: %s " % search_string, logger.DEBUG) @@ -59,7 +57,6 @@ class CpasbienProvider(TorrentProvider): logger.log(u"Search URL: %s" % searchURL, logger.DEBUG) data = self.get_url(searchURL) - if not data: continue @@ -101,15 +98,14 @@ class CpasbienProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) except Exception: logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.ERROR) # 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] + items.sort(key=lambda tup: tup[3], reverse=True) + results += items return results diff --git a/sickbeard/providers/danishbits.py b/sickbeard/providers/danishbits.py index f3192ff29..a476a1a12 100644 --- a/sickbeard/providers/danishbits.py +++ b/sickbeard/providers/danishbits.py @@ -59,10 +59,7 @@ class DanishbitsProvider(TorrentProvider): # pylint: disable=too-many-instance- @staticmethod def loginSuccess(output): - if not output or "<title>Login :: Danishbits.org</title>" in output: - return False - else: - return True + return output and "<title>Login :: Danishbits.org</title>" not in output def login(self): @@ -106,14 +103,12 @@ class DanishbitsProvider(TorrentProvider): # pylint: disable=too-many-instance- return False def search(self, search_params, age=0, ep_obj=None): # pylint: disable=too-many-branches,too-many-locals - results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_params.keys(): + for mode in search_params: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_params[mode]: if mode == 'RSS': @@ -129,7 +124,7 @@ class DanishbitsProvider(TorrentProvider): # pylint: disable=too-many-instance- continue try: - with BS4Parser(data,"html5lib") as html: + with BS4Parser(data, "html5lib") as html: # Collecting entries entries = html.find_all('tr', attrs={'class': 'torrent'}) @@ -170,15 +165,15 @@ class DanishbitsProvider(TorrentProvider): # pylint: disable=too-many-instance- if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) except Exception: logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.ERROR) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/elitetorrent.py b/sickbeard/providers/elitetorrent.py index 4d8049641..70a79799b 100644 --- a/sickbeard/providers/elitetorrent.py +++ b/sickbeard/providers/elitetorrent.py @@ -67,14 +67,12 @@ class elitetorrentProvider(TorrentProvider): } - def search(self, search_strings, age=0, ep_obj=None): - + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-branches results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - lang_info = '' if not ep_obj or not ep_obj.show else ep_obj.show.lang - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) # Only search if user conditions are true @@ -93,7 +91,6 @@ class elitetorrentProvider(TorrentProvider): logger.log(u"Search URL: %s" % searchURL, logger.DEBUG) data = self.get_url(searchURL, timeout=30) - if not data: continue @@ -135,15 +132,15 @@ class elitetorrentProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.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) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/extratorrent.py b/sickbeard/providers/extratorrent.py index aef704283..fbb4fe87d 100644 --- a/sickbeard/providers/extratorrent.py +++ b/sickbeard/providers/extratorrent.py @@ -49,11 +49,9 @@ class ExtraTorrentProvider(TorrentProvider): # pylint: disable=too-many-instanc self.search_params = {'cid': 8} def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-branches - results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: if mode != 'RSS': @@ -103,12 +101,11 @@ class ExtraTorrentProvider(TorrentProvider): # pylint: disable=too-many-instanc if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) # 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] + items.sort(key=lambda tup: tup[3], reverse=True) + results += items return results diff --git a/sickbeard/providers/fnt.py b/sickbeard/providers/fnt.py index 21cda3b43..8f608e126 100644 --- a/sickbeard/providers/fnt.py +++ b/sickbeard/providers/fnt.py @@ -27,7 +27,7 @@ from sickbeard.bs4_parser import BS4Parser from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class FNTProvider(TorrentProvider): +class FNTProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): TorrentProvider.__init__(self, "FNT") @@ -75,16 +75,13 @@ class FNTProvider(TorrentProvider): logger.log(u"Invalid username or password. Check your settings", logger.WARNING) return False - def search(self, search_strings, age=0, ep_obj=None): - + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-branches results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - - # check for auth if not self.login(): return results - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: @@ -141,15 +138,14 @@ class FNTProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) - except Exception as e: + except Exception: logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.ERROR) # 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] + items.sort(key=lambda tup: tup[3], reverse=True) + results += items return results diff --git a/sickbeard/providers/freshontv.py b/sickbeard/providers/freshontv.py index 4ff0277dc..a819dfd01 100644 --- a/sickbeard/providers/freshontv.py +++ b/sickbeard/providers/freshontv.py @@ -29,7 +29,7 @@ from sickrage.helper.common import try_int from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class FreshOnTVProvider(TorrentProvider): +class FreshOnTVProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): TorrentProvider.__init__(self, "FreshOnTV") @@ -101,17 +101,15 @@ class FreshOnTVProvider(TorrentProvider): return False - def search(self, search_params, age=0, ep_obj=None): - + def search(self, search_params, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-branches, too-many-statements results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - - freeleech = '3' if self.freeleech else '0' - if not self.login(): return results - for mode in search_params.keys(): + freeleech = '3' if self.freeleech else '0' + + for mode in search_params: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_params[mode]: @@ -220,15 +218,14 @@ class FreshOnTVProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) except Exception: logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.ERROR) # 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] + items.sort(key=lambda tup: tup[3], reverse=True) + results += items return results diff --git a/sickbeard/providers/gftracker.py b/sickbeard/providers/gftracker.py index 888426c31..b26dabfd6 100644 --- a/sickbeard/providers/gftracker.py +++ b/sickbeard/providers/gftracker.py @@ -29,7 +29,7 @@ from sickrage.helper.exceptions import AuthException from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class GFTrackerProvider(TorrentProvider): +class GFTrackerProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): @@ -84,15 +84,13 @@ class GFTrackerProvider(TorrentProvider): return True - def search(self, search_params, age=0, ep_obj=None): - + def search(self, search_params, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-branches results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_params.keys(): + for mode in search_params: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_params[mode]: @@ -145,15 +143,15 @@ class GFTrackerProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) except Exception: logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.ERROR) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/hd4free.py b/sickbeard/providers/hd4free.py index 80700de50..8770073c6 100644 --- a/sickbeard/providers/hd4free.py +++ b/sickbeard/providers/hd4free.py @@ -45,21 +45,19 @@ class HD4FREEProvider(TorrentProvider): # pylint: disable=too-many-instance-att logger.log('Your authentication credentials for %s are missing, check your config.' % self.name, logger.WARNING) return False - def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals - + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-branches results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self._check_auth: return results - + search_params = { 'tv': 'true', 'username': self.username, 'apikey': self.api_key } - for mode in search_strings.keys(): # Mode = RSS, Season, Episode + for mode in search_strings: # Mode = RSS, Season, Episode + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: if mode != 'RSS': @@ -106,12 +104,12 @@ class HD4FREEProvider(TorrentProvider): # pylint: disable=too-many-instance-att logger.log(u"Found result: %s " % title, logger.DEBUG) item = title, download_url, size, seeders, leechers - items[mode].append(item) + items.append(item) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/hdspace.py b/sickbeard/providers/hdspace.py index d186ddd1d..1118a40b8 100644 --- a/sickbeard/providers/hdspace.py +++ b/sickbeard/providers/hdspace.py @@ -30,7 +30,7 @@ from sickrage.helper.common import convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class HDSpaceProvider(TorrentProvider): +class HDSpaceProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): TorrentProvider.__init__(self, "HDSpace") @@ -82,18 +82,15 @@ class HDSpaceProvider(TorrentProvider): return True - def search(self, search_strings, age=0, ep_obj=None): - + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-branches, too-many-locals, too-many-statements results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: - if mode != 'RSS': searchURL = self.urls['search'] % (urllib.quote_plus(search_string.replace('.', ' ')),) else: @@ -155,15 +152,14 @@ class HDSpaceProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) except (AttributeError, TypeError, KeyError, ValueError): continue # 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] + items.sort(key=lambda tup: tup[3], reverse=True) + results += items return results diff --git a/sickbeard/providers/hdtorrents.py b/sickbeard/providers/hdtorrents.py index 7fe30484a..81e8bd011 100644 --- a/sickbeard/providers/hdtorrents.py +++ b/sickbeard/providers/hdtorrents.py @@ -82,14 +82,12 @@ class HDTorrentsProvider(TorrentProvider): # pylint: disable=too-many-instance- return True def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-branches, too-many-statements - results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: @@ -172,12 +170,12 @@ class HDTorrentsProvider(TorrentProvider): # pylint: disable=too-many-instance- if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/hounddawgs.py b/sickbeard/providers/hounddawgs.py index 74757f703..498dbf90e 100644 --- a/sickbeard/providers/hounddawgs.py +++ b/sickbeard/providers/hounddawgs.py @@ -90,14 +90,12 @@ class HoundDawgsProvider(TorrentProvider): # pylint: disable=too-many-instance- return True def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals,too-many-branches,too-many-statements - results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: @@ -169,15 +167,15 @@ class HoundDawgsProvider(TorrentProvider): # pylint: disable=too-many-instance- if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) except Exception: logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.ERROR) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/iptorrents.py b/sickbeard/providers/iptorrents.py index d9abd5b00..cae9bf2f4 100644 --- a/sickbeard/providers/iptorrents.py +++ b/sickbeard/providers/iptorrents.py @@ -26,7 +26,7 @@ from sickrage.helper.exceptions import AuthException, ex from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class IPTorrentsProvider(TorrentProvider): +class IPTorrentsProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): TorrentProvider.__init__(self, "IPTorrents") @@ -79,17 +79,15 @@ class IPTorrentsProvider(TorrentProvider): return True - def search(self, search_params, age=0, ep_obj=None): - + def search(self, search_params, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-branches, too-many-statements results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - - freeleech = '&free=on' if self.freeleech else '' - if not self.login(): return results - for mode in search_params.keys(): + freeleech = '&free=on' if self.freeleech else '' + + for mode in search_params: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_params[mode]: @@ -148,15 +146,15 @@ class IPTorrentsProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) except Exception as e: logger.log(u"Failed parsing provider. Error: %r" % ex(e), logger.ERROR) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/kat.py b/sickbeard/providers/kat.py index 5262b6db9..c0a5a759a 100644 --- a/sickbeard/providers/kat.py +++ b/sickbeard/providers/kat.py @@ -30,7 +30,7 @@ from sickrage.helper.common import try_int, convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class KATProvider(TorrentProvider): +class KATProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): TorrentProvider.__init__(self, "KickAssTorrents") @@ -62,15 +62,15 @@ class KATProvider(TorrentProvider): self.cache = KATCache(self) - def search(self, search_strings, age=0, ep_obj=None): + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-branches, too-many-locals, too-many-statements results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} # select the correct category anime = (self.show and self.show.anime) or (ep_obj and ep_obj.show and ep_obj.show.anime) or False self.search_params['category'] = ('tv', 'anime')[anime] - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: @@ -141,15 +141,15 @@ class KATProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) except Exception: logger.log(u"Failed parsing provider. Traceback: %r" % traceback.format_exc(), logger.ERROR) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/limetorrents.py b/sickbeard/providers/limetorrents.py index d9abea5be..3acbb8e2a 100644 --- a/sickbeard/providers/limetorrents.py +++ b/sickbeard/providers/limetorrents.py @@ -47,11 +47,9 @@ class LimeTorrentsProvider(TorrentProvider): # pylint: disable=too-many-instance self.cache = LimeTorrentsCache(self) def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-branches,too-many-locals - results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: @@ -115,15 +113,15 @@ class LimeTorrentsProvider(TorrentProvider): # pylint: disable=too-many-instance if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) except (AttributeError, TypeError, KeyError, ValueError): logger.log(u"Failed parsing provider. Traceback: %r" % traceback.format_exc(), logger.ERROR) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/morethantv.py b/sickbeard/providers/morethantv.py index d1b847603..bbf4592b2 100644 --- a/sickbeard/providers/morethantv.py +++ b/sickbeard/providers/morethantv.py @@ -33,7 +33,7 @@ from sickrage.helper.exceptions import AuthException from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class MoreThanTVProvider(TorrentProvider): +class MoreThanTVProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): @@ -92,17 +92,15 @@ class MoreThanTVProvider(TorrentProvider): return True - def search(self, search_params, age=0, ep_obj=None): - + def search(self, search_params, age=0, ep_obj=None): # pylint: disable=too-many-branches, too-many-locals results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - - # freeleech = '3' if self.freeleech else '0' - if not self.login(): return results - for mode in search_params.keys(): + # freeleech = '3' if self.freeleech else '0' + + for mode in search_params: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_params[mode]: @@ -167,15 +165,15 @@ class MoreThanTVProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) - except Exception as e: + except Exception: logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.ERROR) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/newpct.py b/sickbeard/providers/newpct.py index b1dba3c91..7f718de06 100644 --- a/sickbeard/providers/newpct.py +++ b/sickbeard/providers/newpct.py @@ -69,15 +69,15 @@ class newpctProvider(TorrentProvider): 'bus_de_': 'All' } - def search(self, search_strings, age=0, ep_obj=None): + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} # Only search if user conditions are true lang_info = '' if not ep_obj or not ep_obj.show else ep_obj.show.lang - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) # Only search if user conditions are true @@ -142,19 +142,19 @@ class newpctProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.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 (Unsupported) - # items[mode].sort(key=lambda tup: tup[3], reverse=True) + # items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results - def get_url(self, url, post_data=None, params=None, timeout=30, json=False, need_bytes=False): + def get_url(self, url, post_data=None, params=None, timeout=30, json=False, need_bytes=False): # pylint: disable=too-many-arguments """ need_bytes=True when trying access to torrent info (For calling torrent client). Previously we must parse the URL to get torrent file @@ -208,23 +208,23 @@ class newpctProvider(TorrentProvider): title = title[22:] # Quality - Use re module to avoid case sensitive problems with replace - title = re.sub('\[HDTV 1080p[^\[]*]', '1080p HDTV x264', title, flags=re.IGNORECASE) - title = re.sub('\[HDTV 720p[^\[]*]', '720p HDTV x264', title, flags=re.IGNORECASE) - title = re.sub('\[ALTA DEFINICION 720p[^\[]*]', '720p HDTV x264', title, flags=re.IGNORECASE) - title = re.sub('\[HDTV]', 'HDTV x264', title, flags=re.IGNORECASE) - title = re.sub('\[DVD[^\[]*]', 'DVDrip x264', title, flags=re.IGNORECASE) - title = re.sub('\[BluRay 1080p[^\[]*]', '1080p BlueRay x264', title, flags=re.IGNORECASE) - title = re.sub('\[BluRay MicroHD[^\[]*]', '1080p BlueRay x264', title, flags=re.IGNORECASE) - title = re.sub('\[MicroHD 1080p[^\[]*]', '1080p BlueRay x264', title, flags=re.IGNORECASE) - title = re.sub('\[BLuRay[^\[]*]', '720p BlueRay x264', title, flags=re.IGNORECASE) - title = re.sub('\[BRrip[^\[]*]', '720p BlueRay x264', title, flags=re.IGNORECASE) - title = re.sub('\[BDrip[^\[]*]', '720p BlueRay x264', title, flags=re.IGNORECASE) + title = re.sub(r'\[HDTV 1080p[^\[]*]', '1080p HDTV x264', title, flags=re.IGNORECASE) + title = re.sub(r'\[HDTV 720p[^\[]*]', '720p HDTV x264', title, flags=re.IGNORECASE) + title = re.sub(r'\[ALTA DEFINICION 720p[^\[]*]', '720p HDTV x264', title, flags=re.IGNORECASE) + title = re.sub(r'\[HDTV]', 'HDTV x264', title, flags=re.IGNORECASE) + title = re.sub(r'\[DVD[^\[]*]', 'DVDrip x264', title, flags=re.IGNORECASE) + title = re.sub(r'\[BluRay 1080p[^\[]*]', '1080p BlueRay x264', title, flags=re.IGNORECASE) + title = re.sub(r'\[BluRay MicroHD[^\[]*]', '1080p BlueRay x264', title, flags=re.IGNORECASE) + title = re.sub(r'\[MicroHD 1080p[^\[]*]', '1080p BlueRay x264', title, flags=re.IGNORECASE) + title = re.sub(r'\[BLuRay[^\[]*]', '720p BlueRay x264', title, flags=re.IGNORECASE) + title = re.sub(r'\[BRrip[^\[]*]', '720p BlueRay x264', title, flags=re.IGNORECASE) + title = re.sub(r'\[BDrip[^\[]*]', '720p BlueRay x264', title, flags=re.IGNORECASE) # Language - title = re.sub('\[Spanish[^\[]*]', 'SPANISH AUDIO', title, flags=re.IGNORECASE) - title = re.sub('\[Castellano[^\[]*]', 'SPANISH AUDIO', title, flags=re.IGNORECASE) + title = re.sub(r'\[Spanish[^\[]*]', 'SPANISH AUDIO', title, flags=re.IGNORECASE) + title = re.sub(r'\[Castellano[^\[]*]', 'SPANISH AUDIO', title, flags=re.IGNORECASE) title = re.sub(ur'\[Español[^\[]*]', 'SPANISH AUDIO', title, flags=re.IGNORECASE) - title = re.sub(u'\[AC3 5\.1 Español[^\[]*]', 'SPANISH AUDIO', title, flags=re.IGNORECASE) + title = re.sub(ur'\[AC3 5\.1 Español[^\[]*]', 'SPANISH AUDIO', title, flags=re.IGNORECASE) title += '-NEWPCT' diff --git a/sickbeard/providers/nyaatorrents.py b/sickbeard/providers/nyaatorrents.py index 0c3e96c1f..91d6fc0cf 100644 --- a/sickbeard/providers/nyaatorrents.py +++ b/sickbeard/providers/nyaatorrents.py @@ -26,7 +26,7 @@ from sickrage.helper.common import convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class NyaaProvider(TorrentProvider): +class NyaaProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): TorrentProvider.__init__(self, "NyaaTorrents") @@ -46,14 +46,13 @@ class NyaaProvider(TorrentProvider): self.minleech = 0 self.confirmed = False - def search(self, search_strings, age=0, ep_obj=None): - if self.show and not self.show.is_anime: - return [] - + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} + if self.show and not self.show.is_anime: + return results - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: if mode != 'RSS': @@ -98,12 +97,11 @@ class NyaaProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) # 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] + items.sort(key=lambda tup: tup[3], reverse=True) + results += items return results diff --git a/sickbeard/providers/pretome.py b/sickbeard/providers/pretome.py index 851a3def1..c05e9d027 100644 --- a/sickbeard/providers/pretome.py +++ b/sickbeard/providers/pretome.py @@ -28,7 +28,7 @@ from sickrage.helper.common import convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class PretomeProvider(TorrentProvider): +class PretomeProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): TorrentProvider.__init__(self, "Pretome") @@ -78,15 +78,13 @@ class PretomeProvider(TorrentProvider): return True - def search(self, search_params, age=0, ep_obj=None): - + def search(self, search_params, age=0, ep_obj=None): # pylint: disable=too-many-branches, too-many-statements, too-many-locals results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_params.keys(): + for mode in search_params: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_params[mode]: @@ -153,15 +151,15 @@ class PretomeProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) - except Exception as e: + except Exception: logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.ERROR) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/rarbg.py b/sickbeard/providers/rarbg.py index bc6b46a66..b914bc950 100644 --- a/sickbeard/providers/rarbg.py +++ b/sickbeard/providers/rarbg.py @@ -95,24 +95,25 @@ class RarbgProvider(TorrentProvider): # pylint: disable=too-many-instance-attri for mode in search_strings: items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) - for search_string in search_strings[mode]: - if mode == 'RSS': - search_params['sorting'] = 'last' - search_params['mode'] = 'list' - search_params.pop('search_string', None) - search_params.pop('search_tvdb', None) + if mode == 'RSS': + search_params['sorting'] = 'last' + search_params['mode'] = 'list' + search_params.pop('search_string', None) + search_params.pop('search_tvdb', None) + else: + + search_params['sorting'] = self.sorting if self.sorting else 'seeders' + search_params['mode'] = 'search' + + if ep_indexer == INDEXER_TVDB and ep_indexerid: + search_params['search_tvdb'] = ep_indexerid else: - logger.log(u"Search string: %s " % search_string, logger.DEBUG) - - search_params['sorting'] = self.sorting if self.sorting else 'seeders' - search_params['mode'] = 'search' - - if ep_indexer == INDEXER_TVDB and ep_indexerid: - search_params['search_tvdb'] = ep_indexerid - else: - search_params.pop('search_tvdb', None) + search_params.pop('search_tvdb', None) + for search_string in search_strings[mode]: + if mode != 'RSS': search_params['search_string'] = search_string + logger.log(u"Search string: %s " % search_string, logger.DEBUG) logger.log(u"Search URL: %s" % self.url_api + '?' + urlencode(search_params), logger.DEBUG) data = self.get_url(self.url_api, params=search_params, json=True) diff --git a/sickbeard/providers/scc.py b/sickbeard/providers/scc.py index 9d57d04ae..825870765 100644 --- a/sickbeard/providers/scc.py +++ b/sickbeard/providers/scc.py @@ -86,15 +86,13 @@ class SCCProvider(TorrentProvider): # pylint: disable=too-many-instance-attribu title = r'<title>.+? \| %s</title>' % section return re.search(title, text, re.IGNORECASE) - def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals,too-many-branches - - items = {'Season': [], 'Episode': [], 'RSS': []} + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals,too-many-branches, too-many-statements results = [] - if not self.login(): return results - for mode in search_strings.keys(): + for mode in search_strings: + items = [] if mode != 'RSS': logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: @@ -156,12 +154,12 @@ class SCCProvider(TorrentProvider): # pylint: disable=too-many-instance-attribu if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/scenetime.py b/sickbeard/providers/scenetime.py index 1d5113835..bb00ce887 100644 --- a/sickbeard/providers/scenetime.py +++ b/sickbeard/providers/scenetime.py @@ -29,7 +29,7 @@ from sickrage.providers.torrent.TorrentProvider import TorrentProvider from sickrage.helper.common import try_int -class SceneTimeProvider(TorrentProvider): +class SceneTimeProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): @@ -69,15 +69,13 @@ class SceneTimeProvider(TorrentProvider): return True - def search(self, search_params, age=0, ep_obj=None): - + def search(self, search_params, age=0, ep_obj=None): # pylint: disable=too-many-branches, too-many-locals results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_params.keys(): + for mode in search_params: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_params[mode]: @@ -139,12 +137,12 @@ class SceneTimeProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/speedcd.py b/sickbeard/providers/speedcd.py index 749fb07fb..76246f17c 100644 --- a/sickbeard/providers/speedcd.py +++ b/sickbeard/providers/speedcd.py @@ -25,7 +25,7 @@ from sickrage.helper.common import convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class SpeedCDProvider(TorrentProvider): +class SpeedCDProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): @@ -68,18 +68,15 @@ class SpeedCDProvider(TorrentProvider): return True - def search(self, search_params, age=0, ep_obj=None): - + def search(self, search_params, age=0, ep_obj=None): # pylint: disable=too-many-locals results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_params.keys(): + for mode in search_params: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_params[mode]: - if mode != 'RSS': logger.log(u"Search string: %s " % search_string, logger.DEBUG) @@ -123,12 +120,11 @@ class SpeedCDProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) # 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] + items.sort(key=lambda tup: tup[3], reverse=True) + results += items return results diff --git a/sickbeard/providers/strike.py b/sickbeard/providers/strike.py index af3c34b24..f3ce6aada 100644 --- a/sickbeard/providers/strike.py +++ b/sickbeard/providers/strike.py @@ -23,7 +23,7 @@ from sickrage.helper.common import convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class STRIKEProvider(TorrentProvider): +class StrikeProvider(TorrentProvider): def __init__(self): TorrentProvider.__init__(self, "Strike") @@ -35,11 +35,9 @@ class STRIKEProvider(TorrentProvider): self.minseed, self.minleech = 2 * [None] def search(self, search_strings, age=0, ep_obj=None): - results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - - for mode in search_strings.keys(): # Mode = RSS, Season, Episode + for mode in search_strings: # Mode = RSS, Season, Episode + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: @@ -76,12 +74,12 @@ class STRIKEProvider(TorrentProvider): logger.log(u"Found result: %s " % title, logger.DEBUG) item = title, download_url, size, seeders, leechers - items[mode].append(item) + items.append(item) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results @@ -103,4 +101,4 @@ class StrikeCache(tvcache.TVCache): search_params = {'RSS': ['x264']} return {'entries': self.provider.search(search_params)} -provider = STRIKEProvider() +provider = StrikeProvider() diff --git a/sickbeard/providers/t411.py b/sickbeard/providers/t411.py index ccdc22920..8544b76d1 100644 --- a/sickbeard/providers/t411.py +++ b/sickbeard/providers/t411.py @@ -28,7 +28,7 @@ from sickrage.helper.common import convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class T411Provider(TorrentProvider): +class T411Provider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): TorrentProvider.__init__(self, "T411") @@ -73,22 +73,20 @@ class T411Provider(TorrentProvider): if response and 'token' in response: self.token = response['token'] self.tokenLastUpdate = time.time() - self.uid = response['uid'].encode('ascii', 'ignore') + # self.uid = response['uid'].encode('ascii', 'ignore') self.session.auth = T411Auth(self.token) return True else: logger.log(u"Token not found in authentication response", logger.WARNING) return False - def search(self, search_params, age=0, ep_obj=None): - + def search(self, search_params, age=0, ep_obj=None): # pylint: disable=too-many-branches, too-many-locals, too-many-statements results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_params.keys(): + for mode in search_params: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_params[mode]: @@ -144,7 +142,7 @@ class T411Provider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) except Exception: logger.log(u"Invalid torrent data, skipping result: %s" % torrent, logger.DEBUG) @@ -155,9 +153,9 @@ class T411Provider(TorrentProvider): logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.ERROR) # For each search mode sort all the items by seeders if available if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results @@ -165,7 +163,7 @@ class T411Provider(TorrentProvider): return self.ratio -class T411Auth(AuthBase): +class T411Auth(AuthBase): # pylint: disable=too-few-public-methods """Attaches HTTP Authentication to the given Request object.""" def __init__(self, token): self.token = token diff --git a/sickbeard/providers/thepiratebay.py b/sickbeard/providers/thepiratebay.py index c795e2dba..ae3117ee9 100644 --- a/sickbeard/providers/thepiratebay.py +++ b/sickbeard/providers/thepiratebay.py @@ -27,7 +27,7 @@ from sickrage.helper.common import convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class ThePirateBayProvider(TorrentProvider): +class ThePirateBayProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): TorrentProvider.__init__(self, "ThePirateBay") @@ -66,12 +66,10 @@ class ThePirateBayProvider(TorrentProvider): self.re_title_url = r'/torrent/(?P<id>\d+)/(?P<title>.*?)".+?(?P<url>magnet.*?)".+?Size (?P<size>[\d\.]* [TGKMiB]{2,3}).+?(?P<seeders>\d+)</td>.+?(?P<leechers>\d+)</td>' - def search(self, search_strings, age=0, ep_obj=None): - + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: @@ -121,12 +119,12 @@ class ThePirateBayProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/tntvillage.py b/sickbeard/providers/tntvillage.py index f4c2167df..e8dfd0af4 100644 --- a/sickbeard/providers/tntvillage.py +++ b/sickbeard/providers/tntvillage.py @@ -57,7 +57,7 @@ category_excluded = {'Sport': 22, 'Mobile': 37} -class TNTVillageProvider(TorrentProvider): +class TNTVillageProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): TorrentProvider.__init__(self, "TNTVillage") @@ -137,7 +137,8 @@ class TNTVillageProvider(TorrentProvider): return True - def _reverseQuality(self, quality): + @staticmethod + def _reverseQuality(quality): quality_string = '' @@ -162,7 +163,8 @@ class TNTVillageProvider(TorrentProvider): return quality_string - def _episodeQuality(self, torrent_rows): + @staticmethod + def _episodeQuality(torrent_rows): # pylint: disable=too-many-return-statements, too-many-branches """ Return The quality from the scene episode HTML row. """ @@ -238,7 +240,8 @@ class TNTVillageProvider(TorrentProvider): return italian - def _is_english(self, torrent_rows): + @staticmethod + def _is_english(torrent_rows): name = str(torrent_rows.find_all('td')[1].find('b').find('span')) if not name or name == 'None': @@ -251,7 +254,8 @@ class TNTVillageProvider(TorrentProvider): return english - def _is_season_pack(self, name): + @staticmethod + def _is_season_pack(name): try: myParser = NameParser(tryIndexers=True) @@ -269,17 +273,15 @@ class TNTVillageProvider(TorrentProvider): if int(episodes[0]['count']) == len(parse_result.episode_numbers): return True - def search(self, search_params, age=0, ep_obj=None): - + def search(self, search_params, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-branches, too-many-statements results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - - self.categories = "cat=" + str(self.cat) - if not self.login(): return results - for mode in search_params.keys(): + self.categories = "cat=" + str(self.cat) + + for mode in search_params: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_params[mode]: @@ -386,15 +388,15 @@ class TNTVillageProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) except Exception: logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.ERROR) # For each search mode sort all the items by seeders if available if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/torrentbytes.py b/sickbeard/providers/torrentbytes.py index 4a799d2be..9b9008f05 100644 --- a/sickbeard/providers/torrentbytes.py +++ b/sickbeard/providers/torrentbytes.py @@ -28,7 +28,7 @@ from sickrage.helper.common import convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class TorrentBytesProvider(TorrentProvider): +class TorrentBytesProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): @@ -41,11 +41,13 @@ class TorrentBytesProvider(TorrentProvider): self.minleech = None self.freeleech = False - self.urls = {'base_url': 'https://www.torrentbytes.net', - 'login': 'https://www.torrentbytes.net/takelogin.php', - 'detail': 'https://www.torrentbytes.net/details.php?id=%s', - 'search': 'https://www.torrentbytes.net/browse.php?search=%s%s', - 'download': 'https://www.torrentbytes.net/download.php?id=%s&name=%s'} + self.urls = { + 'base_url': 'https://www.torrentbytes.net', + 'login': 'https://www.torrentbytes.net/takelogin.php', + 'detail': 'https://www.torrentbytes.net/details.php?id=%s', + 'search': 'https://www.torrentbytes.net/browse.php?search=%s%s', + 'download': 'https://www.torrentbytes.net/download.php?id=%s&name=%s' + } self.url = self.urls['base_url'] @@ -72,15 +74,13 @@ class TorrentBytesProvider(TorrentProvider): return True - def search(self, search_params, age=0, ep_obj=None): - + def search(self, search_params, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-branches, too-many-statements results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_params.keys(): + for mode in search_params: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_params[mode]: @@ -153,15 +153,15 @@ class TorrentBytesProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) - except Exception as e: + except Exception: logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.ERROR) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/torrentday.py b/sickbeard/providers/torrentday.py index d758d985e..08d2d7742 100644 --- a/sickbeard/providers/torrentday.py +++ b/sickbeard/providers/torrentday.py @@ -24,7 +24,7 @@ from sickrage.helper.common import convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class TorrentDayProvider(TorrentProvider): +class TorrentDayProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): @@ -94,15 +94,13 @@ class TorrentDayProvider(TorrentProvider): logger.log(u"Unable to obtain cookie", logger.WARNING) return False - def search(self, search_params, age=0, ep_obj=None): - + def search(self, search_params, age=0, ep_obj=None): # pylint: disable=too-many-locals results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_params.keys(): + for mode in search_params: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_params[mode]: @@ -150,12 +148,12 @@ class TorrentDayProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) # For each search mode sort all the items by seeders if available if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/torrentleech.py b/sickbeard/providers/torrentleech.py index ba5ebf2bc..a654dc2ec 100644 --- a/sickbeard/providers/torrentleech.py +++ b/sickbeard/providers/torrentleech.py @@ -27,7 +27,7 @@ from sickrage.helper.common import try_int, convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class TorrentLeechProvider(TorrentProvider): +class TorrentLeechProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): @@ -72,15 +72,13 @@ class TorrentLeechProvider(TorrentProvider): return True - def search(self, search_params, age=0, ep_obj=None): - + def search(self, search_params, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-branches results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_params.keys(): + for mode in search_params: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_params[mode]: @@ -134,12 +132,12 @@ class TorrentLeechProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/torrentproject.py b/sickbeard/providers/torrentproject.py index 824020227..d9b89a907 100644 --- a/sickbeard/providers/torrentproject.py +++ b/sickbeard/providers/torrentproject.py @@ -38,14 +38,12 @@ class TORRENTPROJECTProvider(TorrentProvider): self.headers.update({'User-Agent': USER_AGENT}) self.minseed = None self.minleech = None - self.cache = TORRENTPROJECTCache(self) + self.cache = TorrentProjectCache(self) def search(self, search_strings, age=0, ep_obj=None): - results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - - for mode in search_strings.keys(): # Mode = RSS, Season, Episode + for mode in search_strings: # Mode = RSS, Season, Episode + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: if mode != 'RSS': @@ -98,12 +96,12 @@ class TORRENTPROJECTProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s" % title, logger.DEBUG) - items[mode].append(item) + items.append(item) # For each search mode sort all the items by seeders - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results @@ -111,7 +109,7 @@ class TORRENTPROJECTProvider(TorrentProvider): return self.ratio -class TORRENTPROJECTCache(tvcache.TVCache): +class TorrentProjectCache(tvcache.TVCache): def __init__(self, provider_obj): tvcache.TVCache.__init__(self, provider_obj) diff --git a/sickbeard/providers/torrentz.py b/sickbeard/providers/torrentz.py index 40fdd7c0d..c825fee54 100644 --- a/sickbeard/providers/torrentz.py +++ b/sickbeard/providers/torrentz.py @@ -28,7 +28,7 @@ from sickrage.helper.common import convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class TORRENTZProvider(TorrentProvider): +class TORRENTZProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): @@ -53,11 +53,11 @@ class TORRENTZProvider(TorrentProvider): match = re.findall(r'[0-9]+', description) return int(match[0]) * 1024 ** 2, int(match[1]), int(match[2]) - def search(self, search_strings, age=0, ep_obj=None): + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} for mode in search_strings: + items = [] for search_string in search_strings[mode]: search_url = self.urls['verified'] if self.confirmed else self.urls['feed'] if mode != 'RSS': @@ -84,7 +84,6 @@ class TORRENTZProvider(TorrentProvider): if not all([title, t_hash]): continue - # TODO: Add method to generic provider for building magnet from hash. download_url = "magnet:?xt=urn:btih:" + t_hash + "&dn=" + title + self._custom_trackers torrent_size, seeders, leechers = self._split_description(item.find('description').text) size = convert_size(torrent_size) or -1 @@ -95,14 +94,14 @@ class TORRENTZProvider(TorrentProvider): 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 - items[mode].append((title, download_url, size, seeders, leechers)) + items.append((title, download_url, size, seeders, leechers)) except (AttributeError, TypeError, KeyError, ValueError): logger.log(u"Failed parsing provider. Traceback: %r" % traceback.format_exc(), logger.ERROR) # 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] + items.sort(key=lambda tup: tup[3], reverse=True) + results += items return results diff --git a/sickbeard/providers/transmitthenet.py b/sickbeard/providers/transmitthenet.py index 174a0ee48..f7ee3e7c4 100644 --- a/sickbeard/providers/transmitthenet.py +++ b/sickbeard/providers/transmitthenet.py @@ -26,7 +26,7 @@ from sickrage.helper.common import try_int, convert_size from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class TransmitTheNetProvider(TorrentProvider): +class TransmitTheNetProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): TorrentProvider.__init__(self, "TransmitTheNet") @@ -75,15 +75,13 @@ class TransmitTheNetProvider(TorrentProvider): return True - def search(self, search_strings, age=0, ep_obj=None): - + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-branches, too-many-locals, too-many-statements results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_strings.keys(): + for mode in search_strings: + items = [] for search_string in search_strings[mode]: if mode != 'RSS': @@ -157,15 +155,15 @@ class TransmitTheNetProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) except Exception: logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.ERROR) # For each search mode sort all the items by seeders - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/tvchaosuk.py b/sickbeard/providers/tvchaosuk.py index 3dd680b59..bc611fb28 100644 --- a/sickbeard/providers/tvchaosuk.py +++ b/sickbeard/providers/tvchaosuk.py @@ -28,7 +28,7 @@ from sickrage.helper.exceptions import AuthException from sickrage.providers.torrent.TorrentProvider import TorrentProvider -class TVChaosUKProvider(TorrentProvider): +class TVChaosUKProvider(TorrentProvider): # pylint: disable=too-many-instance-attributes def __init__(self): TorrentProvider.__init__(self, 'TvChaosUK') @@ -120,15 +120,13 @@ class TVChaosUKProvider(TorrentProvider): return True - def search(self, search_strings, age=0, ep_obj=None): - + def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-branches results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - if not self.login(): return results - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) for search_string in search_strings[mode]: @@ -187,15 +185,15 @@ class TVChaosUKProvider(TorrentProvider): if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) except Exception: continue # For each search mode sort all the items by seeders if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results diff --git a/sickbeard/providers/xthor.py b/sickbeard/providers/xthor.py index 6e9bbce48..85bd246ac 100644 --- a/sickbeard/providers/xthor.py +++ b/sickbeard/providers/xthor.py @@ -75,11 +75,7 @@ class XthorProvider(TorrentProvider): # pylint: disable=too-many-instance-attri return False def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-many-locals, too-many-branches - results = [] - items = {'Season': [], 'Episode': [], 'RSS': []} - - # check for auth if not self.login(): return results @@ -101,7 +97,8 @@ class XthorProvider(TorrentProvider): # pylint: disable=too-many-instance-attri 'c16': 1, 'c17': 1, 'c32': 1 } - for mode in search_strings.keys(): + for mode in search_strings: + items = [] logger.log(u"Search Mode: %s" % mode, logger.DEBUG) # Sorting: 1: Name, 3: Comments, 5: Size, 6: Completed, 7: Seeders, 8: Leechers (4: Time ?) @@ -155,12 +152,12 @@ class XthorProvider(TorrentProvider): # pylint: disable=too-many-instance-attri if mode != 'RSS': logger.log(u"Found result: %s " % title, logger.DEBUG) - items[mode].append(item) + items.append(item) # For each search mode sort all the items by seeders if available if available - items[mode].sort(key=lambda tup: tup[3], reverse=True) + items.sort(key=lambda tup: tup[3], reverse=True) - results += items[mode] + results += items return results -- GitLab