SXP-Simon
5e2da8c852
fix(get_astrbot_data_path): fallback 到 get_astrbot_data_path 方法
2026-04-02 15:25:07 +08:00
SXP-Simon
e503e7ad63
[v4.9.11] - feat(HTML): HTML 报告与自建外链吗,将群分析变成可以点击跳转的精美网页链接
2026-04-01 22:19:00 +08:00
clown145
befcc2ad49
fix: force desktop viewport for exported html reports ( #147 )
2026-04-01 21:45:58 +08:00
SXP-Simon
692df4b0c9
chore: docs
2026-04-01 21:23:02 +08:00
SXP-Simon
05836f64f2
fix: 定时任务超时问题优化
...
Fixes #141
定时分析任务间隔启动,放宽超时配置限制
2026-04-01 21:14:00 +08:00
leko and SXP-Simon
8ba5f69788
feat: 檔案名稱模板支援 ULID 和資料夾路徑 ( #146 @lekoOwO)
...
* feat: Enhance HTML report generation and dispatching with captions
* chore: apply ruff fixes
* fix(ReportGenerator): update HTML caption for report generation
* fix(ReportGenerator): encode filename in HTML report caption URL
* fix(ReportGenerator): refactor golden quotes handling for clarity and consistency
* feat(ReportGenerator): enhance filename formatting with ulid support and path sanitization
* fix(ReportGenerator): enhance path validation and filename uniqueness in report generation
* fix: pylance type error and ruff
* fix: 路径默认使用 ulid 变量
---------
Co-authored-by: SXP-Simon <sxp20061207@163.com >
2026-04-01 20:38:57 +08:00
SXP-Simon
1fa1ebe5ca
[v4.9.10] - fix: 解决 TG 未贴表情的 bug,HTML 输出模式,优化渲染
2026-03-31 21:17:31 +08:00
clown145 and SXP-Simon
98df26b88e
fix(ReportGenerator): mark t2i mention capsules as safe html ( #144 )
...
* fix: mark t2i mention capsules as safe html
* fix: 优化PDF和HTML输出目录的获取逻辑
* fix(ReportGenerator): 确保返回正确的 Markup 类型
---------
Co-authored-by: SXP-Simon <sxp20061207@163.com >
2026-03-31 20:44:25 +08:00
3662ac3d75
feat(html): Add HTML output format support ( #143 @lekoOwO)
...
* feat: add HTML output format support
- Add HTML settings section to _conf_schema.json with base URL and output directory configuration
- Add HTML configuration methods to ConfigManager (get_html_output_dir, get_html_base_url, get_html_filename_format)
- Create html_template.html files for all themes (fallback to image_template.html)
- Implement generate_html_report method in ReportGenerator to save HTML and JSON files
- Update main.py to handle HTML output format and send both file and URL if base_url is configured
- Update set_output_format command to include HTML as a valid format option
Co-authored-by: lekoOwO <20151124+lekoOwO@users.noreply.github.com >
* feat: enhance JSON serialization in HTML report generation
* fix: 优化输出目录获取逻辑
---------
Co-authored-by: anthropic-code-agent[bot] <242468646+Claude@users.noreply.github.com >
Co-authored-by: lekoOwO <20151124+lekoOwO@users.noreply.github.com >
Co-authored-by: SXP-Simon <sxp20061207@163.com >
2026-03-31 20:06:57 +08:00
clown145
697213826c
fix: align reaction mapping across platforms ( #139 )
...
解决 TG 无法贴表情的 bug
2026-03-31 00:04:13 +08:00
SXP-Simon
b041a7ca9e
[v4.9.9] - feat(feishu): 尝试接入飞书并且回退黑白名单逻辑,保持旧版本逻辑,插件统一管理
2026-03-29 01:08:00 +08:00
SXP-Simon
43f80d24f8
feat(feishu): 完善日志和健壮性
2026-03-29 01:02:15 +08:00
SXP-Simon
bc916e259d
Revert "fix: 统一定时分析名单准入并修复白名单绕过问题 (情况如 #133 所述)"
...
This reverts commit a3d72e43ab .
2026-03-29 00:36:08 +08:00
SXP-Simon
0cba280a82
feat(feishu): 尝试接入飞书
2026-03-29 00:29:37 +08:00
SXP-Simon
6d40745e79
[v4.9.8] - feat(HatsuneMiku): 新增了一个名为 HatsuneMiku 的模板 ( #134 @Shiitin)
2026-03-28 22:45:47 +08:00
SXP-Simon
d3eb9b51f5
fix(retry): 降低重试重复并强化 OneBot 假超时拦截
...
- `onebot_adapter.py#L547-L609` 的路径发送失败逻辑改为:遇到 `timeout/1200/网络错误` 不再立即 Base64 回退,而是继续抛错,由上层进入 10+20+30 秒的多轮观察;每轮都通过 `was_image_sent_recently` 确认后台是否真的已发成功,确认后立刻拦截重试,避免 “假超时” 导致连发。
- `retry.py#L20-L210` 中去重注释已全部换成中文,并补全了 `_cleanup_expired_task_keys`、`_build_task_key`、`_mark_task_finished` 等说明,说明当前去重键由 caption TraceToken 或 html hash 构成,维护两个集合 `_active_task_keys`/`_recent_task_key_ts` 防止同一报告短时间再次入队,构造 task_key 后再 enqueue 并在完成后刷新冷却;`max_retries` 也降到 2 次,并且同群任务会 `sleep(5)` 重新排队,链路上最多留存一份 retry 任务。
2026-03-28 22:33:29 +08:00
SXP-Simon
a3d72e43ab
fix: 统一定时分析名单准入并修复白名单绕过问题 (情况如 #133 所述)
2026-03-28 21:53:01 +08:00
SXP-Simon
4200631f17
fix(HatsuneMiku): 完善
2026-03-28 21:18:50 +08:00
Shiitin
ae96ea9c93
新增了一个名为HatsuneMiku的模板 ( #134 )
...
* Add HatsuneMiku template with a placeholder file
* Add files via upload
* Delete src/infrastructure/reporting/templates/HatsuneMiku/nothing
* Add files via upload
* 重新替换了所有文件并增加了之前忘记的PDF模板文件
* Add files via upload
* 将Spring Festival模板预览图替换HatsuneMiku模板预览图
* 更改了HatsuneMiku模板的预览图片的引用方式
* 将HatsuneMiku模板的地址替换为国内可以访问的中转
2026-03-28 12:25:19 +08:00
SXP-Simon
03f2f066b3
fix typo
2026-03-27 13:01:27 +08:00
SXP-Simon
b29327674f
[v4.9.7] - feat(分析配置细粒度化): 引入三层黑白名单机制(基础群分析开关、定时分析、增量分析),支持更细粒度的群级分析控制;修复自动分析生命周期管理情况避免任务被静默跳过
2026-03-26 23:32:32 +08:00
SXP-Simon
3df898ca69
feat(response_validation): 新增 Pydantic 校验层,健壮化处理 LLM 生成内容
2026-03-26 22:58:04 +08:00
SXP-Simon
7e741854a9
feat(response_format): 使用 OpenAI 格式的 response_format 参数约束 json 格式化数据生成,并且兼容旧版本逻辑,等待本体合并相关参数的传入
2026-03-26 22:56:02 +08:00
SXP-Simon
93704a5d4d
fix: 统一表情统计口径并修复用户活跃分析类型标注
...
- 对齐表情统计规则,确保“报告总表情数”与“用户画像表情数”使用同一判定逻辑。
- 针对 OneBot 适配器已引入的 QQ 表情包信号(sub_type=1):
- 统计时优先使用 raw_data.sub_type == 1 判定图片型表情。
- 仅在缺少 sub_type 时,回退到 summary 文本匹配(兼容历史数据)。
- 修复用户画像统计偏差:
- 移除文本正则(Unicode/Discord)额外计数,避免与报告总数口径不一致。
- 增加 IMAGE 段表情识别,和群组统计保持一致。
- 修复 basedpyright 类型告警:
- 为用户活跃结构引入 UserActivityStats TypedDict。
- 将 analyze_user_activity / get_top_users / get_user_activity_pattern 改为显式类型。
- 将 bot_self_ids 参数标注调整为 list[str] | None。
- 新增并扩展回归测试:
- 验证群总表情数与用户表情汇总一致。
- 验证 sub_type 优先级(sub_type=0 不被 summary 误判)。
- 已通过 ruff check 与相关 pytest 用例。
2026-03-26 19:37:33 +08:00
SXP-Simon
9ed4771730
feat: 完善自动分析名单调度与面板配置说明
...
- 重构自动分析调度流程:以分层名单解析目标群组,统一报告入口,并按群组模式分发传统/增量任务。
- 新增定时名单与增量名单配置能力:补充 scheduled_group_list(_mode)、incremental_group_list(_mode)、incremental_fallback_enabled。
- 优化失败兜底策略:增量最终报告在超时、异常或无有效结果时,可回退至传统全量分析。
- 完善配置与文档说明:在 _conf_schema.json 与 README 中补充面板操作指引、判定顺序与边界场景说明。
- 兼容旧配置行为:保留废弃接口,并在配置管理中统一名单匹配语义(UMO/群号兼容)。
2026-03-26 19:23:49 +08:00
SXP-Simon
aa3ae494ce
fix(tg): 修复 Telegram 平台自动分析就绪检查失败以及 ID 匹配诊断逻辑
...
- 优化 BotManager 的 is_ready_for_auto_analysis 逻辑:将其改为非硬性限制。即使未成功提取机器人 ID (bot_self_ids),也允许定时任务继续运行,从而解决了 Telegram 在 Docker 部署下因 ID 获取延迟导致报告被跳过的问题。
- 强化日志诊断:在 Telegram 消息拦截 (save)、平台发现 (discovery) 和消息拉取 (fetch) 的关键路径中增加 platform_id 显式日志,方便排查多账号环境下的 ID 冲突。
- 在 BotManager 就绪检查中加入调试输出,明确告知分析任务被跳过的具体原因。
2026-03-26 13:33:09 +08:00
SXP-Simon
2539063a3e
fix(增量分析): 增量分析任务的生命周期检查,与定时分析保持一致
2026-03-26 13:02:44 +08:00
Dongmay
a814c09232
fix(scheduler): schedule_jobs 后重置 _terminating 标志位,修复分析任务静默跳过 ( #130 @Dongmayyys)
2026-03-26 00:59:17 +08:00
SXP-Simon
90908cefcb
[v4.9.6] - fix(provider): 优化 PDF 模板生成情况,基础设施健壮性增强
2026-03-25 17:43:35 +08:00
SXP-Simon
d03b3d5b42
fix: 修复插件任务生命周期管理,避免用户困惑的报错行为 (#125)
...
- 修复 'NoneType' 报错 (Fix #125 ): 引入插件终止标志位并完善任务生命周期清理逻辑。
- 强化资源清理:重载时主动取消并等待所有运行中的异步任务(包括手动分析、自动调度和依赖安装),移除危险的属性置空操作,彻底消除重载时的属性访问竞态。
2026-03-25 16:49:14 +08:00
SXP-Simon
1ab409a49e
fix(tg): 尝试修复 Telegram 平台自动分析就绪检查失败问题 (#128)
...
- 在 BotManager 中增加对 Telegram 机器人 ID 提取的支持(支持 `bot.id` 属性),解决 Telegram 环境下因无法识别 Bot ID 导致的自动分析任务跳过问题。
2026-03-25 16:31:42 +08:00
SXP-Simon
82c5cc4cef
fix: 修复 JSON 解析中正则贪婪匹配导致的数组截断问题 ( #126 )
...
- 将解析 JSON 数组的正则模式从非贪婪 `.*?` 改为贪婪匹配 `.*`,防止内容中包含方括号(如 [UID])时导致 JSON 截断。
- 优化话题、称号、金句等分析逻辑中的正则表达式,使用更严谨的模式处理转义双引号和特殊格式。
2026-03-25 16:15:51 +08:00
SXP-Simon
72ead04182
fix(pdf): 优化 PDF 模板生成情况
2026-03-25 16:09:54 +08:00
SXP-Simon
58615d2752
fix(scrapbook): pdf 版本排版调整
2026-03-25 15:46:38 +08:00
lingyun14
664918e28f
feat: 新增文本/表情回复模式开关) ( #123 @lingyun14beta)
...
fixes #115
2026-03-24 00:03:29 +08:00
SXP-Simon
74c292b591
fix(assets): scrapbook 模板图
2026-03-23 17:33:36 +08:00
SXP-Simon
2120800abd
[v4.9.5] - fix(chat_quality_analysis 模块): 优化增量分析逻辑,优化提示词
2026-03-23 17:28:17 +08:00
SXP-Simon
fcffe7d35a
fix(quality_summary): 优化增量分析逻辑,优化提示词
2026-03-23 13:38:12 +08:00
SXP-Simon
91692170a0
[v4.9.4] - feat(chat_quality_analysis 模块): 新增群聊质量锐评功能(灵感来源:感谢 @Nagi-ovo)
2026-03-23 00:53:05 +08:00
oculr
7c749c811e
amend: generate_image_report上层抽象接口参数名对齐
2026-03-23 00:42:18 +08:00
oculr
d56fd216c2
fix: 修复定时群总结时avatar_getter参数名错误导致图片渲染失败
2026-03-23 00:42:18 +08:00
SXP-Simon
5701599a14
feat: 同步更新其他模板
2026-03-23 00:42:18 +08:00
SXP-Simon
09f3517c69
fix(pdf): 活动图表
2026-03-23 00:42:18 +08:00
SXP-Simon
c65d26b4ba
fix(close): 统一为异步方法以正确清理 aiohttp 会话和 diskcache 缓存
2026-03-23 00:42:18 +08:00
NyaaByte
4ffcb3065f
fix: 修改提示词同时添加后端校验,保证总占比不超过 100% ( #119 @J621111)
...
* fix: 修改提示词同时添加后端校验,保证总占比不超过 100%
* fix: 将 ai 返回的占比限制在 [0, 100]
2026-03-23 00:42:18 +08:00
翎
ca104f2503
Feat/chat quality analysis ( #117 @Snow-kal)
...
* style: 更改模板的显示
* style: 修复显示
* fix: 已按评论建议完成最小修改
2026-03-23 00:42:18 +08:00
SXP-Simon
9a35ed9600
feat(chat_quality_analysis): chat_quality_analysis 模块
2026-03-23 00:42:18 +08:00
oculr and SXP-Simon
f40243492f
refactor: 报告中的群员头像重构为 diskcache 缓存,过期时间3天;优化代码可读性; ( #118 @oculr)
...
* refactor: 报告中的群员头像重构为diskcache缓存,过期时间3天;优化代码可读性;
* refactor: 进一步优化头像处理逻辑与资源管理生命周期
- **头像处理性能优化**:
- 将 Base64 转换重构为同步方法,消除微型 CPU 计算任务的异步上下文切换开销。
- 增强图片 MIME 类型识别能力,通过分析文件头支持 WebP 和 JPEG 魔数检测。
- 改善下载失败处理:移除了失败结果的持久化缓存(Negative Caching),确保在网络波动恢复后能自动重新尝试获取。
- **资源与生命周期管理**:
- 完善插件终止流程:增加了显式的缓存关闭逻辑,并与插件卸载钩子集成,确保正确释放持久化层的文件句柄。
- **鲁棒性与调试增强**:
- 加强对第三方头像获取器返回值的 URL 协议校验,并补充了相应的警告日志。
- 优化了 Base64 转换等环节的异常日志记录格式,增加了对堆栈追踪的支持。
- **代码整洁度**:
- 统一并清理了重复的模块导入,移除了方法内部冗余的库导入。
- 全量应用 Ruff 格式化规范,优化了导入顺序及整体代码布局。
---------
Co-authored-by: SXP-Simon <sxp20061207@163.com >
2026-03-22 23:36:28 +08:00
SXP-Simon
51d14dad0b
[v4.9.3] - feat(增量分析): 更新增量分析配置,增加安全上限并优化消息拉取逻
2026-03-21 00:54:00 +08:00
SXP-Simon
b2101c3a15
fix(assets): 使用 fastly.jsdelivr.net cdn 实现呈现插件文档页面的图片
2026-03-21 00:13:42 +08:00