From 913986e7309411c3545ccd03515ed5f22967a587 Mon Sep 17 00:00:00 2001 From: P0psicles Date: Wed, 1 Jun 2016 16:11:19 +0200 Subject: [PATCH] Fixed bithdtv provider. * needed to use html.parser * need to explicitly get the second table. Not the table with the filters. --- sickbeard/providers/bithdtv.py | 42 +++++++++++++++++----------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/sickbeard/providers/bithdtv.py b/sickbeard/providers/bithdtv.py index aaf187528a..7a3fb158da 100644 --- a/sickbeard/providers/bithdtv.py +++ b/sickbeard/providers/bithdtv.py @@ -94,8 +94,9 @@ def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-man logger.log('No data returned from provider', logger.DEBUG) continue - with BS4Parser(response.text, 'html5lib') as html: - torrent_table = html.find('table', width='750') + # Need the html.parser, as the html5parser has issues with this site. + with BS4Parser(response.text, 'html.parser') as html: + torrent_table = html('table', width='750')[-1] # Get the last table with a width of 750px. torrent_rows = torrent_table('tr') if torrent_table else [] # Continue only if at least one Release is found @@ -155,29 +156,28 @@ def search(self, search_strings, age=0, ep_obj=None): # pylint: disable=too-man return results + def login(self): + """Login method used for logging in before doing search and torrent downloads""" + if any(dict_from_cookiejar(self.session.cookies).values()): + return True -def login(self): - """Login method used for logging in before doing search and torrent downloads""" - if any(dict_from_cookiejar(self.session.cookies).values()): - return True - - login_params = { - 'username': self.username.encode('utf-8'), - 'password': self.password.encode('utf-8'), - } + login_params = { + 'username': self.username.encode('utf-8'), + 'password': self.password.encode('utf-8'), + } - response = self.get_url(self.urls['login'], post_data=login_params, returns='text') - if not response: - logger.log(u'Unable to connect to provider', logger.WARNING) - self.session.cookies.clear() - return False + response = self.get_url(self.urls['login'], post_data=login_params, returns='text') + if not response: + logger.log(u'Unable to connect to provider', logger.WARNING) + self.session.cookies.clear() + return False - if '

Login failed!

' in response: - logger.log(u'Invalid username or password. Check your settings', logger.WARNING) - self.session.cookies.clear() - return False + if '

Login failed!

' in response: + logger.log(u'Invalid username or password. Check your settings', logger.WARNING) + self.session.cookies.clear() + return False - return True + return True provider = BithdtvProvider()