SXP-Simon
39cc318d9b
feat: 完善 DDD 架构 - 添加领域分析器服务适配层
...
- 添加 src/__init__.py 作为源码包入口
- 添加 domain/services 分析器适配层:
- topic_analyzer.py: 话题分析领域服务
- user_title_analyzer.py: 用户称号分析领域服务
- golden_quote_analyzer.py: 金句分析领域服务
- 更新 domain/entities/__init__.py 导出更多实体类
- 更新 shared/constants.py 添加枚举类 (Platform, TaskStatus, ContentType, ReportFormat)
- 所有新代码使用中文注释
2026-02-08 15:12:52 +08:00
SXP-Simon
39e5d6169d
chore: 注释
2026-02-08 15:06:33 +08:00
SXP-Simon
7ef58f9d53
feat: complete DDD Phase 2 - add domain services, infrastructure layers, and shared components
...
- domain/value_objects: Add Topic, UserTitle, GoldenQuote, Statistics value objects
- domain/services: Add StatisticsCalculator, ReportGenerator domain services
- domain/exceptions: Add comprehensive domain exception hierarchy
- infrastructure/persistence: Add HistoryRepository for data storage
- infrastructure/llm: Add LLMClient wrapper for AstrBot providers
- infrastructure/config: Add ConfigManager for centralized configuration
- infrastructure/resilience: Add CircuitBreaker, RateLimiter, retry utilities
- application: Add SchedulingService, ReportingService application services
- shared: Add constants and TraceContext for request tracing
All imports verified in Docker container.
2026-02-08 14:39:19 +08:00
SXP-Simon
62a91a914a
refactor: integrate PlatformAdapterFactory into BotManager
...
- BotManager now creates PlatformAdapter alongside bot instances
- Added get_adapter(), has_adapter(), can_analyze() methods for DDD access
- Added _detect_platform_name() for automatic platform detection
- Fixed incorrect relative imports in message_handler.py and helpers.py
- Updated get_status_info() to include adapter information
2026-02-08 14:22:48 +08:00
SXP-Simon
c1d3bf5ece
feat: add DDD architecture layers (domain, infrastructure, application)
...
- Domain layer: UnifiedMessage, PlatformCapabilities, repository interfaces
- Infrastructure layer: PlatformAdapter base, OneBotAdapter, factory
- Application layer: AnalysisOrchestrator, MessageConverter
This provides cross-platform abstraction for group analysis plugin.
2026-02-08 14:13:09 +08:00
SXP-Simon
9534d4ea68
feat: implement sub-daily history tracking for analysis results
2026-02-08 00:24:09 +08:00
SXP-Simon
4477c8b862
style: apply ruff linting and pyupgrade fixes
2026-02-07 23:58:41 +08:00
SXP-Simon
b551abd2db
refactor: update ConfigManager with provider selection logic
2026-02-07 23:49:33 +08:00
SXP-Simon
1c317b16df
refactor: use AstrBot native APScheduler in AutoScheduler
2026-02-07 23:49:18 +08:00
SXP-Simon
5930cfd804
feat: extract ReportDispatcher for report delivery
2026-02-07 23:49:03 +08:00
SXP-Simon
7e0455c454
feat: extract MessageSender for multi-platform message handling
2026-02-07 23:49:03 +08:00
SXP-Simon
22dc0bf59f
feat: add trace context and resilience utilities for LLM calls
2026-02-07 23:48:34 +08:00
SXP-Simon
df4236baa9
fix(RetryManager): 'RetryManager' object has no attribute '_notify_failure'
2026-02-05 23:15:19 +08:00
SXP-Simon
53be552be1
fix(AutoScheduler): 增强性处理,保持代码健壮性,增加友好提示
2026-02-05 21:51:59 +08:00
SXP-Simon
fe2c9d74c4
feat(auto_analysis_time): 将 auto_analysis_time 配置改为 list,满足支持配置每日多个时间点总结的需求 ( #79 )
2026-02-05 21:35:45 +08:00
SXP-Simon
2a98df85c5
fix(scheduler): 修复定时分析发送后台不完全静默的 Bug,正确处理文本发送回退时机
2026-01-31 16:12:50 +08:00
SXP-Simon
86178743d5
fix: 删除未使用的引入
2026-01-20 20:35:11 +08:00
SXP-Simon
2438ab5b98
fix(pdf): 迁移为 playwright
2026-01-20 20:26:20 +08:00
SXP-Simon
b5e094ff1a
feat(ReportGenerator): 优化 t2i 参数
2026-01-20 15:56:39 +08:00
SXP-Simon
80cbe786bf
feat(ReportGenerator): 优化 t2i 参数
2026-01-20 14:34:42 +08:00
SXP-Simon
164a5bd5cc
[v4.6.4] 重试管理器优化和业务逻辑调整
2026-01-18 00:56:42 +08:00
SXP-Simon
a0b0c3e0d1
fix(RetryManager): 重试管理器直接从渲染器请求原始图像字节,QQ 客户端不再需要从本地服务器下载图片,从而绕过了导致超时的网络传输层
...
直接字节获取(Direct Byte Retrieval): 重试管理器现在直接从渲染器请求原始图像字节(Bytes),而不是通过 URL。这使得 QQ 客户端不再需要从本地服务器下载图片,从而绕过了导致超时的网络传输层。Base64 编码: 图像字节现在被编码为 Base64 字符串。协议兼容性: 消息负载(Payload)现在使用 base64:// 前缀构建,这是 OneBot/AstrBot 协议中发送 Base64 图片的标准方式。
2026-01-18 00:52:08 +08:00
SXP-Simon
8c0801d4d9
fix(scrapbook): activity_chart 排版调整为横向,减小没有实质内容的 activity_chart 对排版的空间占用
2026-01-18 00:01:57 +08:00
SXP-Simon
7e70a6532c
[v4.6.2] 新增图片报告重试机制并优化调度稳定性
2026-01-17 23:54:39 +08:00
SXP-Simon
e78c827857
feat(RetryManager): 新增图片报告重试机制并优化调度稳定性
...
新增重试管理器 (src/scheduler/retry.py):
实现基于内存的延迟队列与死信队列,支持指数退避 + 随机抖动 (Jitter) 重试策略。
增强容错性:处理渲染服务宕机、网络超时及 Bot API 逻辑错误 (如 retcode=1200)。
兼容性优化:使用 call_action 通用接口适配 OneBot v11。
生命周期管理:增加自动启动保护,防止任务丢失。
2026-01-17 23:39:17 +08:00
SXP-Simon
7450d76178
fix(pre-commit): code quality
2026-01-16 23:59:45 +08:00
SXP-Simon
b3a39f1f6c
fix(reports): 修复 generators.py 中 _get_user_avatar 的 TypeError。将 aiohttp 请求重构为异步上下文模式,确保 response.read() 被正确等待,并增加了网络连接失败处理
2026-01-16 23:43:46 +08:00
SXP-Simon
c54d001f2a
fix: 初步完成 PDF 生成,后续继续排查优化
2026-01-16 23:41:13 +08:00
SXP-Simon
eeb9461c2f
fix(PDFInstaller): 字体处理和友好提示
2026-01-16 21:06:43 +08:00
SXP-Simon
b1c889343c
fix(PDFInstaller): linux 环境下的安装 PDF 命令修复
2026-01-16 20:30:58 +08:00
SXP-Simon
9ee0662484
fix(is_plugin_enabled): 检查该平台是否包含该插件的配置文件 plugin_set,通过 AstrBot 配置文件来判断账号启用插件
...
解决关联 issue
`[Bug] 定时分析会直接检测某个群所有支持的平台,而不会检查该平台是否包含该插件的配置文件 #72`
2026-01-16 18:31:03 +08:00
SXP-Simon
fd5d4b978d
feat(scrapbook): 群贤毕至添加头像
2026-01-13 16:29:34 +08:00
SXP-Simon
3f1e406670
fix: 调整排版
...
- feat(template): scrapbook footer 使用更全面的 token 描述
- chore(template): 仓库名称
2026-01-13 15:22:01 +08:00
SXP-Simon
4b4f4545db
feat(scrapbook): 更新 scrapbook 模板
2026-01-07 16:50:29 +08:00
SXP-Simon
022dd77ea9
fix(thread-safety): 已为
...
templates.py
中的 Jinja2 环境缓存添加线程安全保护,具体改动如下:
使用双重检查锁定(Double-Checked Locking)保护缓存访问
读取缓存时加锁,避免多线程同时读取时的数据竞争
创建新环境后再次加锁检查,防止高并发下重复创建相同模板的环境
原代码中 _envs 字典会通过 asyncio.to_thread(self._get_env_sync) 被多个线程同时访问和修改,存在数据竞争风险。现在通过 threading.Lock 确保了线程安全。
2026-01-07 00:35:40 +08:00
SXP-Simon
2af39fa3b5
fix(debug): 删除一些不必要的 debug 调试
2026-01-07 00:28:35 +08:00
SXP-Simon
9a09e56f13
fix: 性能优化,CPU 密集型计算(统计和分析)已卸载到各线程池,避免阻塞事件循环
...
feat: 存储路径规范化:PDF 报告现在存储在 data/plugin_data/astrbot_plugin_qq_group_daily_analysis/reports
2026-01-07 00:28:35 +08:00
SXP-Simon
4297bf4f99
refactor: 全局变量重构,受保护成员访问修复,同步 I/O 操作异步化
2026-01-07 00:28:35 +08:00
SXP-Simon
d339f1b7c0
[v4.5.0] 添加新的模板主题 retro_futurism, 灵感来源明日方舟 孤星 未来复古主义主题;添加模板调试工具 scripts/debug_render.py,方便用户在不启动 AstrBot 的情况下调试模板效果 (@Saramanda9988)
2025-12-31 14:44:23 +08:00
Saramanda9988
8ddfa7e713
feat: Update report templates and improved layout
2025-12-31 13:56:35 +08:00
Saramanda9988
fa89e4b8ed
feat: Improve styling and lenhanced font properties
2025-12-31 13:56:35 +08:00
Saramanda9988
777469c2e6
feat: Update Retro Futurism templates with enhanced styling and layout adjustments
2025-12-31 13:56:35 +08:00
Saramanda9988
0d704e8ed6
feat: Enhance Retro Futurism templates with new header icons and layout adjustments
2025-12-31 13:56:35 +08:00
Saramanda9988
59b82a29c9
feat: Add Retro Futurism report templates and components
2025-12-31 13:56:35 +08:00
SXP-Simon
4ca8180933
[v4.4.0] 修复可能的图片生成成功但是发送失败的情况,增加 Fallback 的 BASE64 编码的图片发送方式 @Heximiao
2025-12-20 21:10:56 +08:00
SXP-Simon
c216ccb009
fix(auto_scheduler): 设置请求超时和响应大小限制,避免卡死或下载过大,增加过程的健壮性
2025-12-20 21:01:55 +08:00
liuchunyu44
926ec65b59
修改发送图片的逻辑
2025-12-20 20:42:10 +08:00
SXP-Simon
23ca2f9ade
fix(simple): 提取排版,纠正关闭分析分区但是基础样式没有去除的 bug
2025-11-29 00:07:14 +08:00
SXP-Simon
122a2fa36a
fix(scrapbook): 提取排版,纠正关闭分析分区但是基础样式没有去除的 bug
2025-11-29 00:04:53 +08:00
SXP-Simon
3d6378792e
fix(format): 提取排版,纠正关闭分析分区但是基础样式没有去除的 bug
2025-11-29 00:04:36 +08:00