Commit Graph
567 Commits
Author SHA1 Message Date
SXP-Simon 0c1d9cff72 fix typo 2026-04-03 15:00:40 +08:00
SXP-Simon 3f3e60cbd0 feat(ATRI): 添加作者名称 Liangyu-G 2026-04-03 14:40:58 +08:00
SXP-Simon 45988cf419 [v4.9.13] - feat(ATRI): ATRI 模板 (@Liangyu-G) 2026-04-03 14:32:02 +08:00
凉雨 a5c3aa2af1 ATRI风格模板 (#154)
* Add files via upload

* Create test

* Add files via upload

* Delete src/infrastructure/reporting/templates/ATRI/test

* Add files via upload
2026-04-03 13:51:10 +08:00
SXP-Simon 5dd7cf1aa1 [v4.9.12] - 移除无效的重试器 2026-04-02 17:52:36 +08:00
SXP-Simon 59e9f06d0d fix: 移除发送重试模块 2026-04-02 17:45:56 +08:00
lekoandSXP-Simon 47eeff3f61 fix(template-utils): str.format -> string.Template (#149)
* feat: upgrade prompt templates from str.format to string.Template for improved compatibility

* fix(get_astrbot_data_path): fallback 到 get_astrbot_data_path 方法

* feat: upgrade prompt templates from str.format to string.Template for improved compatibility

* fix: strict mode

* fix: 补齐文件名格式的自动迁移

* fix(ChatQualityAnalyzer): 删除无效的 prompt 提示语句

* ruff

---------

Co-authored-by: SXP-Simon <sxp20061207@163.com>
2026-04-02 16:40:34 +08:00
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
lekoandSXP-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
clown145andSXP-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