aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/bcy.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/bcy.py')
-rw-r--r--gallery_dl/extractor/bcy.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/gallery_dl/extractor/bcy.py b/gallery_dl/extractor/bcy.py
index 4eb446d..44d6065 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):