diff --git a/CHANGES.md b/CHANGES.md index 869d518d..77bc5649 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -60,6 +60,11 @@ * Change restart/shutdown to use updated jQuery +### 0.12.12 (2017-03-30 03:15:00 UTC) + +* Change search of SpeedCD, TVChaos and parse of TorrentDay. + + ### 0.12.11 (2017-03-17 02:00:00 UTC) * Change SpeedCD to cookie auth as username/password is not reliable diff --git a/sickbeard/helpers.py b/sickbeard/helpers.py index 7a76d825..df6e44fe 100644 --- a/sickbeard/helpers.py +++ b/sickbeard/helpers.py @@ -614,7 +614,7 @@ def sanitizeSceneName(name): """ if name: - bad_chars = u",:()'!?\u2019" + bad_chars = u",:()£'!?\u2019" # strip out any bad chars for x in bad_chars: diff --git a/sickbeard/providers/speedcd.py b/sickbeard/providers/speedcd.py index f09a259f..af02f9f3 100644 --- a/sickbeard/providers/speedcd.py +++ b/sickbeard/providers/speedcd.py @@ -62,7 +62,6 @@ class SpeedCDProvider(generic.TorrentProvider): for mode in search_params.keys(): rc['cats'] = re.compile('(?i)cat=(?:%s)' % self._categories_string(mode, template='', delimiter='|')) for search_string in search_params[mode]: - search_string = '+'.join(search_string.split()) post_data = dict((x.split('=') for x in self._categories_string(mode).split('&')), search=search_string, jxt=2, jxw='b', freeleech=('on', None)[not self.freeleech]) @@ -116,7 +115,7 @@ class SpeedCDProvider(generic.TorrentProvider): def _episode_strings(self, ep_obj, **kwargs): - return generic.TorrentProvider._episode_strings(self, ep_obj, sep_date='.', **kwargs) + return generic.TorrentProvider._episode_strings(self, ep_obj, scene=False, sep_date='.', **kwargs) @staticmethod def ui_string(key): diff --git a/sickbeard/providers/torrentday.py b/sickbeard/providers/torrentday.py index cac0ef36..a28c1e84 100644 --- a/sickbeard/providers/torrentday.py +++ b/sickbeard/providers/torrentday.py @@ -79,7 +79,7 @@ class TorrentDayProvider(generic.TorrentProvider): if not html or self._has_no_results(html): raise generic.HaltParseException - with BS4Parser(html, features=['html5lib', 'permissive']) as soup: + with BS4Parser(html, features=['html5lib', 'permissive'], tag='table', attr='torrentTable') as soup: torrent_table = soup.find('table', id='torrentTable') torrent_rows = [] if not torrent_table else torrent_table.find_all('tr') diff --git a/sickbeard/providers/tvchaosuk.py b/sickbeard/providers/tvchaosuk.py index 6ad9a224..d4cfcb31 100644 --- a/sickbeard/providers/tvchaosuk.py +++ b/sickbeard/providers/tvchaosuk.py @@ -59,6 +59,7 @@ class TVChaosUKProvider(generic.TorrentProvider): rc = dict((k, re.compile('(?i)' + v)) for (k, v) in {'info': 'detail', 'get': 'download', 'fl': 'free'}.items()) for mode in search_params.keys(): for search_string in search_params[mode]: + search_string = search_string.replace(u'£', '%') search_string = isinstance(search_string, unicode) and unidecode(search_string) or search_string kwargs = dict(post_data={'keywords': search_string, 'do': 'quick_sort', 'page': '0',