Merge pull request #2756 from Betree/fix_rutracker_login

Fix Rutracker loggin by looking for the cookie in request history
This commit is contained in:
AdeHub
2016-10-20 22:51:23 +13:00
committed by GitHub

View File

@@ -46,10 +46,10 @@ class Rutracker(object):
try:
r = self.session.post(loginpage, data=post_params, timeout=self.timeout, allow_redirects=False)
# try again
if 'bb_data' not in r.cookies.keys():
if not self.has_bb_data_cookie(r):
time.sleep(10)
r = self.session.post(loginpage, data=post_params, timeout=self.timeout, allow_redirects=False)
if 'bb_data' in r.cookies.keys():
if self.has_bb_data_cookie(r):
self.loggedin = True
logger.info("Successfully logged in to rutracker")
else:
@@ -62,6 +62,12 @@ class Rutracker(object):
self.loggedin = False
return self.loggedin
def has_bb_data_cookie(self, response):
if 'bb_data' in response.cookies.keys():
return True
# Rutracker randomly send a 302 redirect code, cookie may be present in response history
return next(('bb_data' in r.cookies.keys() for r in response.history), False)
def searchurl(self, artist, album, year, format):
"""
Return the search url