From 9fd7159bcb5f0b770991b823cb9fff4e8c98684e Mon Sep 17 00:00:00 2001 From: JackDandy Date: Fri, 26 Jun 2015 01:25:29 +0100 Subject: [PATCH] Change provider SCD PEP8 and code convention cleanup. --- CHANGES.md | 1 + sickbeard/providers/speedcd.py | 74 ++++++++++++++++------------------ 2 files changed, 36 insertions(+), 39 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 996e1e45..fbab3939 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -28,6 +28,7 @@ * Change provider KAT to use mediaExtensions from common instead of private list * Change provider KAT provider PEP8 and code convention cleanup * Change refactor and code simplification for torrent providers +* Change provider SCD PEP8 and code convention cleanup * Remove HDTorrents torrent provider * Remove NextGen torrent provider * Add Rarbg torrent provider diff --git a/sickbeard/providers/speedcd.py b/sickbeard/providers/speedcd.py index ee443e22..7bd7c028 100644 --- a/sickbeard/providers/speedcd.py +++ b/sickbeard/providers/speedcd.py @@ -30,12 +30,12 @@ from lib.requests import exceptions class SpeedCDProvider(generic.TorrentProvider): + urls = {'base_url': 'http://speed.cd/', 'login': 'http://speed.cd/take_login.php', 'detail': 'http://speed.cd/t/%s', 'search': 'http://speed.cd/V3/API/API.php', - 'download': 'http://speed.cd/download.php?torrent=%s', - } + 'download': 'http://speed.cd/download.php?torrent=%s'} def __init__(self): generic.TorrentProvider.__init__(self, 'Speedcd', True, False) @@ -57,8 +57,7 @@ class SpeedCDProvider(generic.TorrentProvider): def _doLogin(self): login_params = {'username': self.username, - 'password': self.password - } + 'password': self.password} try: response = self.session.post(self.urls['login'], data=login_params, timeout=30, verify=False) @@ -73,23 +72,23 @@ class SpeedCDProvider(generic.TorrentProvider): return True - def _get_season_search_strings(self, ep_obj): + def _get_season_search_strings(self, ep_obj, **kwargs): - #If Every episode in Season is a wanted Episode then search for Season first + # If Every episode in Season is a wanted Episode then search for Season first search_string = {'Season': []} for show_name in set(show_name_helpers.allPossibleShowNames(self.show)): if ep_obj.show.air_by_date or ep_obj.show.sports: ep_string = show_name + ' ' + str(ep_obj.airdate).split('-')[0] elif ep_obj.show.anime: - ep_string = show_name + ' ' + "%d" % ep_obj.scene_absolute_number + ep_string = show_name + ' ' + '%d' % ep_obj.scene_absolute_number else: - ep_string = show_name + ' S%02d' % int(ep_obj.scene_season) #1) showName SXX + ep_string = show_name + ' S%02d' % int(ep_obj.scene_season) # 1) showName SXX search_string['Season'].append(ep_string) return [search_string] - def _get_episode_search_strings(self, ep_obj, add_string=''): + def _get_episode_search_strings(self, ep_obj, add_string='', **kwargs): search_string = {'Episode': []} @@ -98,25 +97,25 @@ class SpeedCDProvider(generic.TorrentProvider): if self.show.air_by_date: for show_name in set(show_name_helpers.allPossibleShowNames(self.show)): - ep_string = sanitizeSceneName(show_name) + ' ' + \ - str(ep_obj.airdate).replace('-', '|') + ep_string = sanitizeSceneName(show_name) \ + + ' ' + str(ep_obj.airdate).replace('-', '|') search_string['Episode'].append(ep_string) elif self.show.sports: for show_name in set(show_name_helpers.allPossibleShowNames(self.show)): - ep_string = sanitizeSceneName(show_name) + ' ' + \ - str(ep_obj.airdate).replace('-', '|') + '|' + \ - ep_obj.airdate.strftime('%b') + ep_string = sanitizeSceneName(show_name) \ + + ' ' + str(ep_obj.airdate).replace('-', '|') + '|'\ + + ep_obj.airdate.strftime('%b') search_string['Episode'].append(ep_string) elif self.show.anime: for show_name in set(show_name_helpers.allPossibleShowNames(self.show)): ep_string = sanitizeSceneName(show_name) + ' ' + \ - "%i" % int(ep_obj.scene_absolute_number) + '%i' % int(ep_obj.scene_absolute_number) search_string['Episode'].append(ep_string) else: for show_name in set(show_name_helpers.allPossibleShowNames(self.show)): ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \ - sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season, - 'episodenumber': ep_obj.scene_episode} + sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season, + 'episodenumber': ep_obj.scene_episode} search_string['Episode'].append(re.sub('\s+', ' ', ep_string)) @@ -133,19 +132,19 @@ class SpeedCDProvider(generic.TorrentProvider): for mode in search_params.keys(): for search_string in search_params[mode]: - logger.log(u"Search string: " + search_string, logger.DEBUG) + logger.log(u'Search string: ' + search_string, logger.DEBUG) search_string = '+'.join(search_string.split()) post_data = dict({'/browse.php?': None, 'cata': 'yes', 'jxt': 4, 'jxw': 'b', 'search': search_string}, **self.categories[mode]) - parsedJSON = self.getURL(self.urls['search'], post_data=post_data, json=True) - if not parsedJSON: + parsed_json = self.getURL(self.urls['search'], post_data=post_data, json=True) + if not parsed_json: continue try: - torrents = parsedJSON.get('Fs', [])[0].get('Cn', {}).get('torrents', []) + torrents = parsed_json.get('Fs', [])[0].get('Cn', {}).get('torrents', []) except: continue @@ -159,7 +158,7 @@ class SpeedCDProvider(generic.TorrentProvider): seeders = int(torrent['seed']) leechers = int(torrent['leech']) - if mode != 'RSS' and (seeders < self.minseed or leechers < self.minleech): + if 'RSS' != mode and (seeders < self.minseed or leechers < self.minleech): continue if not title or not url: @@ -168,7 +167,6 @@ class SpeedCDProvider(generic.TorrentProvider): item = title, url, seeders, leechers items[mode].append(item) - #For each search mode sort all the items by seeders items[mode].sort(key=lambda tup: tup[2], reverse=True) results += items[mode] @@ -186,14 +184,14 @@ class SpeedCDProvider(generic.TorrentProvider): if url: url = str(url).replace('&', '&') - return (title, url) + return title, url def findPropers(self, search_date=datetime.datetime.today()): results = [] - myDB = db.DBConnection() - sqlResults = myDB.select( + my_db = db.DBConnection() + sql_results = my_db.select( 'SELECT s.show_name, e.showid, e.season, e.episode, e.status, e.airdate FROM tv_episodes AS e' + ' INNER JOIN tv_shows AS s ON (e.showid = s.indexer_id)' + ' WHERE e.airdate >= ' + str(search_date.toordinal()) + @@ -201,17 +199,17 @@ class SpeedCDProvider(generic.TorrentProvider): ' OR (e.status IN (' + ','.join([str(x) for x in Quality.SNATCHED]) + ')))' ) - if not sqlResults: - return [] + if not sql_results: + return results - for sqlshow in sqlResults: - self.show = helpers.findCertainShow(sickbeard.showList, int(sqlshow["showid"])) + for sqlshow in sql_results: + self.show = helpers.findCertainShow(sickbeard.showList, int(sqlshow['showid'])) if self.show: - curEp = self.show.getEpisode(int(sqlshow["season"]), int(sqlshow["episode"])) + cur_ep = self.show.getEpisode(int(sqlshow['season']), int(sqlshow['episode'])) - searchString = self._get_episode_search_strings(curEp, add_string='PROPER|REPACK') + search_string = self._get_episode_search_strings(cur_ep, add_string='PROPER|REPACK') - for item in self._doSearch(searchString[0]): + for item in self._doSearch(search_string[0]): title, url = self._get_title_and_url(item) results.append(classes.Proper(title, url, datetime.datetime.today(), self.show)) @@ -222,18 +220,16 @@ class SpeedCDProvider(generic.TorrentProvider): class SpeedCDCache(tvcache.TVCache): - def __init__(self, provider): - tvcache.TVCache.__init__(self, provider) + def __init__(self, this_provider): + tvcache.TVCache.__init__(self, this_provider) - # only poll Speedcd every 20 minutes max - self.minTime = 20 + self.minTime = 20 # cache update frequency def _getRSSData(self): + search_params = {'RSS': ['']} return self.provider._doSearch(search_params) - provider = SpeedCDProvider() -