[patreon] refactor _extract_bootstrap()

pull/4755/head
Mike Fährmann 11 months ago
parent 28ada11cba
commit 4730de163f
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -249,14 +249,23 @@ class PatreonExtractor(Extractor):
return [genmap[ft] for ft in filetypes] return [genmap[ft] for ft in filetypes]
def _extract_bootstrap(self, page): def _extract_bootstrap(self, page):
if "window.patreon.bootstrap," in page: bootstrap = text.extr(
return util.json_loads(text.extr( page, 'window.patreon = {"bootstrap":', '},"apiServer"')
page, "window.patreon.bootstrap,", "});") + "}") if bootstrap:
elif 'window.patreon = {"bootstrap":' in page: return util.json_loads(bootstrap + "}")
return util.json_loads(text.extr(
page, 'window.patreon = {"bootstrap":', '},"apiServer"') + "}") bootstrap = text.extr(page, "window.patreon.bootstrap,", "});")
else: if bootstrap:
raise Exception("unknown HTML and JS structure") 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): class PatreonCreatorExtractor(PatreonExtractor):

Loading…
Cancel
Save