diff --git a/gallery_dl/extractor/common.py b/gallery_dl/extractor/common.py index f81d93a3..d9f69abc 100644 --- a/gallery_dl/extractor/common.py +++ b/gallery_dl/extractor/common.py @@ -339,6 +339,11 @@ class Extractor(): return True return False + def _prepare_ddosguard_cookies(self): + if not self._cookiejar.get("__ddg2", domain=self.cookiedomain): + self._cookiejar.set( + "__ddg2", util.generate_token(), domain=self.cookiedomain) + def _get_date_min_max(self, dmin=None, dmax=None): """Retrieve and parse 'date-min' and 'date-max' config values""" def get(key, default): diff --git a/gallery_dl/extractor/kemonoparty.py b/gallery_dl/extractor/kemonoparty.py index 972316be..a911d35b 100644 --- a/gallery_dl/extractor/kemonoparty.py +++ b/gallery_dl/extractor/kemonoparty.py @@ -24,13 +24,9 @@ class KemonopartyExtractor(Extractor): filename_fmt = "{id}_{title}_{num:>02}_{filename}.{extension}" archive_fmt = "{service}_{user}_{id}_{num}" cookiedomain = ".kemono.party" - _warning = True def items(self): - if self._warning: - if not self._check_cookies(("__ddg1", "__ddg2")): - self.log.warning("no DDoS-GUARD cookies set (__ddg1, __ddg2)") - KemonopartyExtractor._warning = False + self._prepare_ddosguard_cookies() find_inline = re.compile(r'src="(/inline/[^"]+)').findall skip_service = \ diff --git a/gallery_dl/extractor/seisoparty.py b/gallery_dl/extractor/seisoparty.py index b736b4ba..feda7f1e 100644 --- a/gallery_dl/extractor/seisoparty.py +++ b/gallery_dl/extractor/seisoparty.py @@ -21,7 +21,6 @@ class SeisopartyExtractor(Extractor): filename_fmt = "{id}_{title}_{num:>02}_{filename}.{extension}" archive_fmt = "{service}_{user}_{id}_{num}" cookiedomain = ".seiso.party" - _warning = True def __init__(self, match): Extractor.__init__(self, match) @@ -30,10 +29,7 @@ class SeisopartyExtractor(Extractor): r'href="(https://cdn(?:-\d)?\.seiso\.party/files/[^"]+)').findall def items(self): - if self._warning: - if not self._check_cookies(("__ddg1", "__ddg2")): - self.log.warning("no DDoS-GUARD cookies set (__ddg1, __ddg2)") - SeisopartyExtractor._warning = False + self._prepare_ddosguard_cookies() for post in self.posts(): files = post.pop("files") diff --git a/test/test_results.py b/test/test_results.py index c36b6dd3..8a20e6bf 100644 --- a/test/test_results.py +++ b/test/test_results.py @@ -314,11 +314,6 @@ def setup_test_config(): "e621", "inkbunny", "tapas", "pillowfort", "mangadex"): config.set(("extractor", category), "username", None) - config.set(("extractor", "kemonoparty"), "cookies", { - "__ddg1": "0gBDGpJ3KZQmA4B9QH25", "__ddg2": "lmj5s1jnJOvhPXCX"}) - config.set(("extractor", "seisoparty"), "cookies", { - "__ddg1": "Y8rBxSDHO5UCEtQvzyI9", "__ddg2": "lmj5s1jnJOvhPXCX"}) - config.set(("extractor", "mastodon.social"), "access-token", "Blf9gVqG7GytDTfVMiyYQjwVMQaNACgf3Ds3IxxVDUQ")