automatically set required DDoS-GUARD cookies (#1779)
for kemono.party and seiso.party
This commit is contained in:
@@ -339,6 +339,11 @@ class Extractor():
|
|||||||
return True
|
return True
|
||||||
return False
|
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):
|
def _get_date_min_max(self, dmin=None, dmax=None):
|
||||||
"""Retrieve and parse 'date-min' and 'date-max' config values"""
|
"""Retrieve and parse 'date-min' and 'date-max' config values"""
|
||||||
def get(key, default):
|
def get(key, default):
|
||||||
|
|||||||
@@ -24,13 +24,9 @@ class KemonopartyExtractor(Extractor):
|
|||||||
filename_fmt = "{id}_{title}_{num:>02}_{filename}.{extension}"
|
filename_fmt = "{id}_{title}_{num:>02}_{filename}.{extension}"
|
||||||
archive_fmt = "{service}_{user}_{id}_{num}"
|
archive_fmt = "{service}_{user}_{id}_{num}"
|
||||||
cookiedomain = ".kemono.party"
|
cookiedomain = ".kemono.party"
|
||||||
_warning = True
|
|
||||||
|
|
||||||
def items(self):
|
def items(self):
|
||||||
if self._warning:
|
self._prepare_ddosguard_cookies()
|
||||||
if not self._check_cookies(("__ddg1", "__ddg2")):
|
|
||||||
self.log.warning("no DDoS-GUARD cookies set (__ddg1, __ddg2)")
|
|
||||||
KemonopartyExtractor._warning = False
|
|
||||||
|
|
||||||
find_inline = re.compile(r'src="(/inline/[^"]+)').findall
|
find_inline = re.compile(r'src="(/inline/[^"]+)').findall
|
||||||
skip_service = \
|
skip_service = \
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ class SeisopartyExtractor(Extractor):
|
|||||||
filename_fmt = "{id}_{title}_{num:>02}_{filename}.{extension}"
|
filename_fmt = "{id}_{title}_{num:>02}_{filename}.{extension}"
|
||||||
archive_fmt = "{service}_{user}_{id}_{num}"
|
archive_fmt = "{service}_{user}_{id}_{num}"
|
||||||
cookiedomain = ".seiso.party"
|
cookiedomain = ".seiso.party"
|
||||||
_warning = True
|
|
||||||
|
|
||||||
def __init__(self, match):
|
def __init__(self, match):
|
||||||
Extractor.__init__(self, match)
|
Extractor.__init__(self, match)
|
||||||
@@ -30,10 +29,7 @@ class SeisopartyExtractor(Extractor):
|
|||||||
r'href="(https://cdn(?:-\d)?\.seiso\.party/files/[^"]+)').findall
|
r'href="(https://cdn(?:-\d)?\.seiso\.party/files/[^"]+)').findall
|
||||||
|
|
||||||
def items(self):
|
def items(self):
|
||||||
if self._warning:
|
self._prepare_ddosguard_cookies()
|
||||||
if not self._check_cookies(("__ddg1", "__ddg2")):
|
|
||||||
self.log.warning("no DDoS-GUARD cookies set (__ddg1, __ddg2)")
|
|
||||||
SeisopartyExtractor._warning = False
|
|
||||||
|
|
||||||
for post in self.posts():
|
for post in self.posts():
|
||||||
files = post.pop("files")
|
files = post.pop("files")
|
||||||
|
|||||||
@@ -314,11 +314,6 @@ def setup_test_config():
|
|||||||
"e621", "inkbunny", "tapas", "pillowfort", "mangadex"):
|
"e621", "inkbunny", "tapas", "pillowfort", "mangadex"):
|
||||||
config.set(("extractor", category), "username", None)
|
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",
|
config.set(("extractor", "mastodon.social"), "access-token",
|
||||||
"Blf9gVqG7GytDTfVMiyYQjwVMQaNACgf3Ds3IxxVDUQ")
|
"Blf9gVqG7GytDTfVMiyYQjwVMQaNACgf3Ds3IxxVDUQ")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user