diff --git a/gallery_dl/extractor/chevereto.py b/gallery_dl/extractor/chevereto.py index de22a7b0..dfd65d12 100644 --- a/gallery_dl/extractor/chevereto.py +++ b/gallery_dl/extractor/chevereto.py @@ -10,6 +10,7 @@ from .common import BaseExtractor, Message from .. import text +import binascii class CheveretoExtractor(BaseExtractor): @@ -32,6 +33,18 @@ class CheveretoExtractor(BaseExtractor): url = text.extr(page, '<') + def _decrypt_url(self, encrypted_b64): + encrypted_hex = binascii.a2b_base64(encrypted_b64) + encrypted_bytes = bytes.fromhex(encrypted_hex.decode()) + + key = b"seltilovessimpcity@simpcityhatesscrapers" + div = len(key) + + return bytes([ + encrypted_bytes[i] ^ key[i % div] + for i in range(len(encrypted_bytes)) + ]).decode() + BASE_PATTERN = CheveretoExtractor.update({ "jpgfish": { @@ -53,12 +66,20 @@ class CheveretoImageExtractor(CheveretoExtractor): def items(self): url = self.root + self.path - extr = text.extract_from(self.request(url).text) + page = self.request(url).text + extr = text.extract_from(page) + + url = (extr('"), ">", "<"), "user" : extr('username: "', '"'), }