aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/8chan.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/8chan.py')
-rw-r--r--gallery_dl/extractor/8chan.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/gallery_dl/extractor/8chan.py b/gallery_dl/extractor/8chan.py
index a5e8b27..afa3a69 100644
--- a/gallery_dl/extractor/8chan.py
+++ b/gallery_dl/extractor/8chan.py
@@ -9,9 +9,9 @@
"""Extractors for https://8chan.moe/"""
from .common import Extractor, Message
-from .. import text
+from .. import text, util
from ..cache import memcache
-from datetime import datetime, timedelta
+from datetime import timedelta
import itertools
BASE_PATTERN = r"(?:https?://)?8chan\.(moe|se|cc)"
@@ -27,21 +27,23 @@ class _8chanExtractor(Extractor):
Extractor.__init__(self, match)
def _init(self):
- self.cookies.set(
- "TOS20240718", "1", domain=self.root.rpartition("/")[2])
+ now = util.datetime_utcnow()
+ domain = self.root.rpartition("/")[2]
+ self.cookies.set("TOS20240928", "1", domain=domain)
+ self.cookies.set(now.strftime("TOS%Y%m%d"), "1", domain=domain)
@memcache()
def cookies_prepare(self):
# fetch captcha cookies
# (necessary to download without getting interrupted)
- now = datetime.utcnow()
+ now = util.datetime_utcnow()
url = self.root + "/captcha.js"
params = {"d": now.strftime("%a %b %d %Y %H:%M:%S GMT+0000 (UTC)")}
self.request(url, params=params).content
# adjust cookies
# - remove 'expires' timestamp
- # - move 'captchaexpiration' value forward by 1 month)
+ # - move 'captchaexpiration' value forward by 1 month
domain = self.root.rpartition("/")[2]
for cookie in self.cookies:
if cookie.domain.endswith(domain):
@@ -79,7 +81,7 @@ class _8chanThreadExtractor(_8chanExtractor):
self.cookies = self.cookies_prepare()
except Exception as exc:
self.log.debug("Failed to fetch captcha cookies: %s: %s",
- exc.__class__.__name__, exc, exc_info=True)
+ exc.__class__.__name__, exc, exc_info=exc)
# download files
posts = thread.pop("posts", ())