From 20af1e2508bcff1f28813f5da7ea57c41a87ac37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Thu, 24 Jul 2025 16:24:04 +0200 Subject: [PATCH] [bilibili] warn about blocked articles (#7880) --- gallery_dl/extractor/bilibili.py | 23 ++++++++++++++--------- test/results/bilibili.py | 12 ++++++++++++ 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/gallery_dl/extractor/bilibili.py b/gallery_dl/extractor/bilibili.py index 10155187..b8b83198 100644 --- a/gallery_dl/extractor/bilibili.py +++ b/gallery_dl/extractor/bilibili.py @@ -45,12 +45,16 @@ class BilibiliArticleExtractor(BilibiliExtractor): archive_fmt = "{id}_{num}" def items(self): - article = self.api.article(self.groups[0]) + article_id = self.groups[0] + article = self.api.article(article_id) # Flatten modules list modules = {} for module in article["detail"]["modules"]: - del module['module_type'] + if module["module_type"] == "MODULE_TYPE_BLOCKED": + self.log.warning("%s: Blocked Article\n%s", article_id, + module["module_blocked"].get("hint_message")) + del module["module_type"] modules.update(module) article["detail"]["modules"] = modules @@ -64,14 +68,15 @@ class BilibiliArticleExtractor(BilibiliExtractor): except Exception: pass - for paragraph in modules['module_content']['paragraphs']: - if "pic" not in paragraph: - continue + if "module_content" in modules: + for paragraph in modules["module_content"]["paragraphs"]: + if "pic" not in paragraph: + continue - try: - pics.extend(paragraph["pic"]["pics"]) - except Exception: - pass + try: + pics.extend(paragraph["pic"]["pics"]) + except Exception: + pass article["count"] = len(pics) yield Message.Directory, article diff --git a/test/results/bilibili.py b/test/results/bilibili.py index b8c6775b..c615ca04 100644 --- a/test/results/bilibili.py +++ b/test/results/bilibili.py @@ -53,6 +53,18 @@ __tests__ = ( "username" : "诗月饼", }, +{ + "#url" : "https://www.bilibili.com/opus/1047501858770255875", + "#comment" : "blocked/paid article (#7880)", + "#class" : bilibili.BilibiliArticleExtractor, + "#count" : 0, + "#log" : """\ +1047501858770255875: Blocked Article +乌龙茶专属动态 +加入当前UP主的6元档包月充电即可解锁观看\ +""", +}, + { "#url" : "https://space.bilibili.com/405279279/article", "#class" : bilibili.BilibiliUserArticlesExtractor,