From 86a396e08612bf847ec6282f00b546bb74926256 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Wed, 30 Nov 2022 14:44:19 +0100 Subject: [PATCH] [bcy] fix JSONDecodeError (#3321) --- gallery_dl/extractor/bcy.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/gallery_dl/extractor/bcy.py b/gallery_dl/extractor/bcy.py index 4eb446dc..44d60650 100644 --- a/gallery_dl/extractor/bcy.py +++ b/gallery_dl/extractor/bcy.py @@ -96,11 +96,13 @@ class BcyExtractor(Extractor): def _data_from_post(self, post_id): url = "{}/item/detail/{}".format(self.root, post_id) page = self.request(url, notfound="post").text - return json.loads( - text.extr(page, 'JSON.parse("', '");') - .replace('\\\\u002F', '/') - .replace('\\"', '"') - )["detail"] + data = (text.extr(page, 'JSON.parse("', '");') + .replace('\\\\u002F', '/') + .replace('\\"', '"')) + try: + return json.loads(data)["detail"] + except ValueError: + return json.loads(data.replace('\\"', '"'))["detail"] class BcyUserExtractor(BcyExtractor): @@ -187,6 +189,10 @@ class BcyPostExtractor(BcyExtractor): ("https://bcy.net/item/detail/6747523535150783495", { "count": 0, }), + # JSON decode error (#3321) + ("https://bcy.net/item/detail/7166939271872388110", { + "count": 0, + }), ) def posts(self):