From 3d6e3d45a1635a7291add670608c162064968bd3 Mon Sep 17 00:00:00 2001 From: SXP-Simon Date: Mon, 13 Apr 2026 22:13:36 +0800 Subject: [PATCH] =?UTF-8?q?fix(=5Fget=5Fmanifest=5Fprofile=5Fitem=5Fby=5Fm?= =?UTF-8?q?bti):=20=E6=AD=A3=E7=A1=AE=E7=9A=84=20fallback=20=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/infrastructure/reporting/generators.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/infrastructure/reporting/generators.py b/src/infrastructure/reporting/generators.py index c51e525..668d65a 100644 --- a/src/infrastructure/reporting/generators.py +++ b/src/infrastructure/reporting/generators.py @@ -219,7 +219,13 @@ class ReportGenerator(IReportGenerator): if not name_zh: name_zh = str(asset_item.get("name", "")).strip() - # B. 对于 acgti 模式,如果没找到,尝试通过 MBTI 反查第一个匹配的资源 + # B. 按照 asset_code 的资源规律推导图片地址 (尝试根据同目录下其他资源的规律猜测当前角色的 CDN 地址) + if not image: + image = self._build_profile_image_from_manifest_pattern( + profile_mode, asset_code + ) + + # C. 对于 acgti 模式,如果没找到明确映射也没能推导出图片,尝试通过 MBTI 反查该类型下的第一个可用资源作为兜底 if not image and profile_mode == "acgti": fallback_item = self._get_manifest_profile_item_by_mbti( profile_mode, normalized_mbti @@ -231,12 +237,6 @@ class ReportGenerator(IReportGenerator): if not code or code == normalized_mbti: code = str(fallback_item.get("code", code)).strip() - # C. 最后底线:根据 manifest 路径模式推导 - if not image: - image = self._build_profile_image_from_manifest_pattern( - profile_mode, asset_code - ) - # 3. 构造显示文本 (Code + 中文名) display = str(base_info.get("display", "")).strip() if not display: