aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/common.py')
-rw-r--r--gallery_dl/extractor/common.py39
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"""