diff options
| author | 2022-06-05 00:33:56 -0400 | |
|---|---|---|
| committer | 2022-06-05 00:33:56 -0400 | |
| commit | 25442ea49f031d4d2df3353dd7e9ad2080e332da (patch) | |
| tree | 14c2ee86b8d10cf0f79b4cd3ce8d6a34ebe52eba /gallery_dl/extractor/common.py | |
| parent | ad61a6d8122973534ab63df48f6090954bc73db6 (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.py | 27 |
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 = { |
