fix(scrapbook): pdf 版本排版调整

This commit is contained in:
SXP-Simon
2026-03-25 15:46:38 +08:00
parent 664918e28f
commit 58615d2752
3 changed files with 463 additions and 495 deletions
+4 -1
View File
@@ -307,10 +307,13 @@ src/infrastructure/reporting/templates/your_theme_name/
#### 5. 模板调试工具
PDF 调试模板命令 Docker 下
PDF 调试模板命令:
```bash
# docker
docker exec -it astrbot python data/plugins/astrbot_plugin_qq_group_daily_analysis/scripts/mock_pdf_gen.py
# uv
uv run --with playwright --with diskcache data\plugins\astrbot_plugin_qq_group_daily_analysis\scripts\mock_pdf_gen.py
```
Image 模板调试:
+28 -4
View File
@@ -92,6 +92,9 @@ class MockConfigManager:
def get_enable_user_card(self):
return True
def get_t2i_max_concurrent(self):
return 2
@property
def playwright_available(self):
return True
@@ -100,9 +103,9 @@ class MockConfigManager:
return ""
async def mock_get_user_avatar(user_id: str) -> str:
async def mock_get_user_avatar(avatar_id: str, avatar_url_getter=None) -> str:
# Return a known avatar URL for testing
return f"https://q4.qlogo.cn/headimg_dl?dst_uin={user_id}&spec=640"
return f"https://q4.qlogo.cn/headimg_dl?dst_uin={avatar_id}&spec=640"
# ==========================================
@@ -111,10 +114,11 @@ async def mock_get_user_avatar(user_id: str) -> str:
async def main():
print("Initializing ReportGenerator...")
config_manager = MockConfigManager()
generator = ReportGenerator(config_manager)
data_dir = Path(current_dir) / "data"
generator = ReportGenerator(config_manager, data_dir)
# Override avatar fetching to avoid real network calls during testing
generator._get_user_avatar_data = mock_get_user_avatar
generator._get_user_avatar = mock_get_user_avatar
# 1. Mock Analysis Result using Entities
stats = GroupStatistics(
@@ -236,6 +240,26 @@ async def main():
),
}
class MockDimension:
def __init__(self, name, percentage, comment, color):
self.name = name
self.percentage = percentage
self.comment = comment
self.color = color
class MockChatQualityReview:
def __init__(self):
self.title = "今日群聊质量分析"
self.subtitle = "基于AI的深度神经网络评估"
self.dimensions = [
MockDimension("讨论活跃度", 85, "大家讨论非常热烈", "#FF5722"),
MockDimension("知识共享度", 70, "分享了很多有用的技术信息", "#4CAF50"),
MockDimension("情感温度", 92, "群内氛围非常融洽", "#E91E63")
]
self.summary = "整体聊天的质量很高,技术讨论和日常闲聊达到了完美的平衡。"
analysis_result["chat_quality_review"] = MockChatQualityReview()
print("Generating PDF Report...")
group_id = "test_group_mock"
File diff suppressed because one or more lines are too long