diff --git a/sickbeard/providers/alpharatio.py b/sickbeard/providers/alpharatio.py index fe036380a44e8679aeab3d322844957e7219513e..75ed395860363cb7495b38958176e4131de93642 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 ae7a64efd8053c8b10e558085160fccaa6ad71d9..23a656718a92f189989061c4b9da60c52e272f37 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 c84e7e64a71f29e0c6371217af4fd2b69d673a27..c98e0e761d4a57fa5f7842a2199bb14fa4a75840 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 8239cd91e5b4db6e4e90b3ed4a595347ba705f8d..6c36beae663b0626728ee85c7c049871b1864d81 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 5a7da1f3d660e6febd64706d862cce78a5a8836b..ba8e35887eb48ab7a21ed70f18a1f8263a737e35 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 349a77b2daf20c1f8c80bc395c3fc1d72c159f49..c09b9ceac3f603a46fcd7a71de3d0c3ff6350a64 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 6a8640404c47ae996cb7c754f01c7f200d0dd55b..cd8d2e39a4db8e823acbb594e2557e2e808ca16a 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 f3192ff29df51ea8a0b7381299023910828ac98b..a476a1a12e8f5c0822920de1508259ead021a209 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 4d80496419c2c3b0889576fccdc7bbff6acb1efe..70a79799b1eaa382e43c122b022319bf996d2411 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 aef704283d4b62cf11bc46d905ce37d39f8554e2..fbb4fe87dde86f6b7e25f203a5f60f0070e7cf29 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 21cda3b43ca2d12c5348d9eca3455fd548777a25..8f608e12634d56458b6d7bc74910779bd9d12beb 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 4ff0277dc7773a01eb854bf1a074631b8415902c..a819dfd01a029c9ec2ec4a0667a1dbe8d2ce3905 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 888426c31221d6ac5f3a5686fc1da9697e047dd7..b26dabfd64e57d283a9cd75961f0856929dd106a 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 80700de509cd48187c31fcfa5228c598ce7a8184..8770073c620e1db2c8f7854a4d602169ba51efc7 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 d186ddd1d442b180c6ab8bf5d3efd7ef52613711..1118a40b89c529c81da2d76f61109b31e73c7ab4 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 7fe30484a05c34580a08c54d3a4d083b5581255d..81e8bd01194769816da82cbac4d634149535f086 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 74757f70373bed922e6658ac74ecfb4ffdc4862b..498dbf90eff0dcd50812b6a489582cf9107ee1c5 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 d9abd5b00e56af0725e30ecf260ba25fc1414f11..cae9bf2f4c4da65afbb5b9fa759622e610b25f81 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 5262b6db9111174df02234ae9d8cd60a31a00307..c0a5a759a16301a7adade164f5f9d98f773cb54e 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 d9abea5bed718aa68ecfb74b2643e113f3a68d84..3acbb8e2ab909d45a87b49631475efbd0fabddf7 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 d1b8476034ba92bcf1532186d82d046aa0be6265..bbf4592b25ec13425443ee1e1d775db09dafc901 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 b1dba3c91aa54e5d14c4bf681188566f793e0174..7f718de06306f01d4f40af5e86f32ee3f4e53ebd 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 0c3e96c1fa7d375dd7e47f875b59963f6b630e45..91d6fc0cfa604c12ce38bfc34630908779ed9fef 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 851a3def1ac5e64a5f61b86208ac76f79232f9a5..c05e9d027730f8a6c0d0aa485716af0f265a3ab8 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 bc6b46a667431e931bbe0e797d65e42f9582561d..b914bc9509665f09402168f3a975266d2f75daf4 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 9d57d04ae1991f61dcca08342db56d5ce369f329..8258707654c61e75a2142aa163934e6d6fc23660 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 1d5113835efb5d2462aed9d316dfc8d1500bae12..bb00ce887b1b1746565e49d89d56bbe5e3489203 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 749fb07fb978d95210454919f3c7dd0010a37bdb..76246f17c666ff42c7e02d16ee2d13b398496f7f 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 af3c34b24772916e76fc839162f9981a2fd3b897..f3ce6aada9f055475ea343de7bddae90f18f548f 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 ccdc22920367fef51060946f37e7b082683c3c07..8544b76d1ede78f433857bf9ad40d00aa763e292 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 c795e2dbaf5b51a9efb4444e81feacb73c6594a5..ae3117ee9c0774700d1977ffe33effd5883ee0ca 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 f4c2167dfe3a2c36e6e58116f6b2bcfe441b32d7..e8dfd0af468a356f3e74d583da4c0936d5d11b20 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 4a799d2bedc791f27c92afa0d58714780de72f5d..9b9008f0586ccf81c76bb95615f3b37cebc37da7 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 d758d985e8ea41e9f333ce11a8f79577ff69fb28..08d2d7742ae2b89cfd4648146458c8f3d64f49b2 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 ba5ebf2bcfc7371446325ed0ba0ef7db3c673ab7..a654dc2ecc2f39e56e0b98a62eab06e35244aa77 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 82402022766a2bd89f5441b8cd8c07093b212ab7..d9b89a9079e01a56ede050a015e7cf891a3ea865 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 40fdd7c0d50db6615d42d127b98dffb0380e6dbd..c825fee54998f6b12b9b5f4d051b20edda20470a 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 174a0ee48fd02366012e97614ce2080a2a38994a..f7ee3e7c40eccea83656e4a11ea91277f5def1df 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 3dd680b592e5d3b007135a214837c88fd990ca58..bc611fb281d4df271e9987fbac1c9c4a1fb0bc57 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 6e9bbce4879f851d3ac6885ab60fa5ce05b8efce..85bd246acb618cca59dcc83f80ceaaf93c5b9b4e 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