diff options
Diffstat (limited to 'gallery_dl/extractor/common.py')
| -rw-r--r-- | gallery_dl/extractor/common.py | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/gallery_dl/extractor/common.py b/gallery_dl/extractor/common.py index 32c8e67..2146fa6 100644 --- a/gallery_dl/extractor/common.py +++ b/gallery_dl/extractor/common.py @@ -185,7 +185,9 @@ class Extractor(): self._dump_response(response) if ( code < 400 or - code < 500 and (not fatal and code != 429 or fatal is None) + code < 500 and ( + not fatal and code != 429 or fatal is None) or + fatal is ... ): if encoding: response.encoding = encoding @@ -454,46 +456,49 @@ class Extractor(): cookies = random.choice(cookies) self.cookies_load(cookies) - def cookies_load(self, cookies): - if isinstance(cookies, dict): - self.cookies_update_dict(cookies, self.cookies_domain) + def cookies_load(self, cookies_source): + if isinstance(cookies_source, dict): + self.cookies_update_dict(cookies_source, self.cookies_domain) - elif isinstance(cookies, str): - path = util.expand_path(cookies) + elif isinstance(cookies_source, str): + path = util.expand_path(cookies_source) try: with open(path) as fp: - util.cookiestxt_load(fp, self.cookies) + cookies = util.cookiestxt_load(fp) except Exception as exc: self.log.warning("cookies: %s", exc) else: - self.log.debug("Loading cookies from '%s'", cookies) + self.log.debug("Loading cookies from '%s'", cookies_source) + set_cookie = self.cookies.set_cookie + for cookie in cookies: + set_cookie(cookie) self.cookies_file = path - elif isinstance(cookies, (list, tuple)): - key = tuple(cookies) - cookiejar = _browser_cookies.get(key) + elif isinstance(cookies_source, (list, tuple)): + key = tuple(cookies_source) + cookies = _browser_cookies.get(key) - if cookiejar is None: + if cookies is None: from ..cookies import load_cookies - cookiejar = self.cookies.__class__() try: - load_cookies(cookiejar, cookies) + cookies = load_cookies(cookies_source) except Exception as exc: self.log.warning("cookies: %s", exc) + cookies = () else: - _browser_cookies[key] = cookiejar + _browser_cookies[key] = cookies else: self.log.debug("Using cached cookies from %s", key) set_cookie = self.cookies.set_cookie - for cookie in cookiejar: + for cookie in cookies: set_cookie(cookie) else: self.log.warning( "Expected 'dict', 'list', or 'str' value for 'cookies' " "option, got '%s' (%s)", - cookies.__class__.__name__, cookies) + cookies_source.__class__.__name__, cookies_source) def cookies_store(self): """Store the session's cookies in a cookies.txt file""" |
