From f15538938e4f0ebc147b15b28dcbc014792cc975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Sun, 2 Mar 2025 15:17:07 +0100 Subject: [PATCH] [jpgfish] decrypt file URLs (#7073 #7079) --- gallery_dl/extractor/chevereto.py | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) 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: "', '"'), }