From 0086980b1b4a8d5d2e98b8ff081ad66baafc94a6 Mon Sep 17 00:00:00 2001 From: Benjamin Piouffle Date: Wed, 19 Oct 2016 12:41:46 +1100 Subject: [PATCH] Fix Rutracker loggin by looking for the cookie in request history --- headphones/rutracker.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/headphones/rutracker.py b/headphones/rutracker.py index a4141c38..b80685cf 100644 --- a/headphones/rutracker.py +++ b/headphones/rutracker.py @@ -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