aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/common.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2022-06-05 00:33:56 -0400
committerLibravatarUnit 193 <unit193@unit193.net>2022-06-05 00:33:56 -0400
commit25442ea49f031d4d2df3353dd7e9ad2080e332da (patch)
tree14c2ee86b8d10cf0f79b4cd3ce8d6a34ebe52eba /gallery_dl/extractor/common.py
parentad61a6d8122973534ab63df48f6090954bc73db6 (diff)
New upstream version 1.22.1.upstream/1.22.1
Diffstat (limited to 'gallery_dl/extractor/common.py')
-rw-r--r--gallery_dl/extractor/common.py27
1 files changed, 22 insertions, 5 deletions
diff --git a/gallery_dl/extractor/common.py b/gallery_dl/extractor/common.py
index cac8c2d..9cd9059 100644
--- a/gallery_dl/extractor/common.py
+++ b/gallery_dl/extractor/common.py
@@ -302,6 +302,7 @@ class Extractor():
if cookies:
if isinstance(cookies, dict):
self._update_cookies_dict(cookies, self.cookiedomain)
+
elif isinstance(cookies, str):
cookiefile = util.expand_path(cookies)
try:
@@ -311,12 +312,27 @@ class Extractor():
self.log.warning("cookies: %s", exc)
else:
self._cookiefile = cookiefile
+
elif isinstance(cookies, (list, tuple)):
- from ..cookies import load_cookies
- try:
- load_cookies(self._cookiejar, cookies)
- except Exception as exc:
- self.log.warning("cookies: %s", exc)
+ key = tuple(cookies)
+ cookiejar = _browser_cookies.get(key)
+
+ if cookiejar is None:
+ from ..cookies import load_cookies
+ cookiejar = self._cookiejar.__class__()
+ try:
+ load_cookies(cookiejar, cookies)
+ except Exception as exc:
+ self.log.warning("cookies: %s", exc)
+ else:
+ _browser_cookies[key] = cookiejar
+ else:
+ self.log.debug("Using cached cookies from %s", key)
+
+ setcookie = self._cookiejar.set_cookie
+ for cookie in cookiejar:
+ setcookie(cookie)
+
else:
self.log.warning(
"Expected 'dict', 'list', or 'str' value for 'cookies' "
@@ -692,6 +708,7 @@ def _build_requests_adapter(ssl_options, ssl_ciphers, source_address):
_adapter_cache = {}
+_browser_cookies = {}
HTTP_HEADERS = {