From 244444b194ef7176530394fdff4e571ff8822528 Mon Sep 17 00:00:00 2001 From: Tobi823 Date: Sun, 10 Dec 2023 16:22:32 +0100 Subject: [PATCH] - adapt code to current code style --- gallery_dl/extractor/patreon.py | 37 ++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/gallery_dl/extractor/patreon.py b/gallery_dl/extractor/patreon.py index 2ff1e9e45e..0b0e9ebd55 100644 --- a/gallery_dl/extractor/patreon.py +++ b/gallery_dl/extractor/patreon.py @@ -249,21 +249,28 @@ def _build_file_generators(self, filetypes): return [genmap[ft] for ft in filetypes] def _extract_bootstrap(self, page): - if "window.patreon.bootstrap," in page: - content_begin = "window.patreon.bootstrap," - content_end = "});" - json_string = text.extr(page, content_begin, content_end) + "}" - elif 'window.patreon = {"bootstrap":' in page: - content_begin = 'window.patreon = {"bootstrap":' - content_end = '},"apiServer"' - json_string = text.extr(page, content_begin, content_end) + "}" - elif 'window.patreon = wrapInProxy({"bootstrap":' in page: - content_begin = 'window.patreon = wrapInProxy({"bootstrap":' - content_end = '},"apiServer"' - json_string = text.extr(page, content_begin, content_end) + "}" - else: - raise Exception("Unknown HTML and JS structure. Page:" + page) - return util.json_loads(json_string) + bootstrap = text.extr( + page, 'window.patreon = {"bootstrap":', '},"apiServer"') + if bootstrap: + return util.json_loads(bootstrap + "}") + + bootstrap = text.extr( + page, 'window.patreon = wrapInProxy({"bootstrap":', '},"apiServer"') + if bootstrap: + return util.json_loads(bootstrap + "}") + + bootstrap = text.extr(page, "window.patreon.bootstrap,", "});") + if bootstrap: + return util.json_loads(bootstrap + "}") + + data = text.extr(page, "window.patreon = {", "};\n") + if data: + try: + return util.json_loads("{" + data + "}")["bootstrap"] + except Exception: + pass + + raise exception.StopExtraction("Unable to extract bootstrap data") class PatreonCreatorExtractor(PatreonExtractor):