Commit Graph
143 Commits
Author SHA1 Message Date
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
SXP-Simon 964f8478ea [v4.2.7] 模板文档更新 2025-11-26 13:07:49 +08:00
SXP-Simon 0d62985e51 fix(template/simple): 纠正 simple 符合规范 2025-11-26 12:48:16 +08:00
SXP-Simon 1a08d6cb59 fix(延迟启动调度器失败): PlatformAdapter' object has no attribute 'metadata' 2025-11-26 00:35:04 +08:00
Helian Nuits 03c35f49d0 Fix(bot manager): _get_platform_id_for_group 是一个异步方法(async def),但在 main.py 中调用时忘记加 await (#54)
* fix(bot-manager): 正确处理实例获取

* fix(import); AiocqhttpAdapter 导入

* fix: 通过 meta 实现 aiocqhttp 判断

* fix(_get_platform_id_for_group): _get_platform_id_for_group 是一个异步方法(async def),但在 main.py 中调用时忘记加 await 了,导致它返回了一个协程对象而不是字符串 ID

* fix(pre-commit)
2025-11-25 23:37:13 +08:00
SXP-Simon 5a0731e492 fix(bot_manager): get_bot_instance 2025-11-25 21:59:41 +08:00
SXP-Simon 41f49ee6b3 fix(cr): pre-commit 2025-11-25 20:55:33 +08:00
SXP-Simon d942a5a2eb docs(templates-customization): 欢迎为插件贡献新的报告模板!!! 2025-11-25 20:55:33 +08:00
SXP-Simon 89d79a5491 fix(old): 调整 old 样式 2025-11-25 20:55:33 +08:00
SXP-Simon de31c0514f refactor(chart): 拆分 chart 部分到 template 2025-11-25 20:55:33 +08:00
SXP-Simon aba98cbd05 feat(old): 恢复 old 版本 HTML template 2025-11-25 20:55:33 +08:00
SXP-Simon 150f6c37a9 feat(mutli-templates): 适配多套排版选择 2025-11-25 20:55:33 +08:00
SXP-Simon e385c294a1 feat(llm_utils): 更新了
src/analysis/utils/llm_utils.py
 文件,以适配 AstrBot v4.5.7+ 的新 API 标准。

 主要更改如下:

重构了 Provider 选择逻辑:
将 get_provider_with_fallback 重命名并修改为
get_provider_id_with_fallback
。
现在它返回的是 Provider ID (字符串),而不是 Provider 对象实例。这是因为新的 llm_generate 接口需要通过 ID 来指定使用的模型。
使用了新的 await context.get_current_chat_provider_id(umo=umo) 方法来获取当前会话的模型 ID。
更新了 LLM 调用方式:
在
call_provider_with_retry
 函数中,不再直接调用 provider.text_chat(...)。
改为使用统一的 await context.llm_generate(...) 接口。这是 AstrBot 推荐的新方式,更加简洁且统一。
兼容性调整:
更新了
extract_token_usage
 函数,使其能够从 llm_generate 返回的新响应格式中正确提取 Token 使用统计(优先检查
usage
 属性)。
这些更改确保了插件能够利用 AstrBot 新版本的特性,同时保持了原有的多级回退(配置 -> 主模型 -> 会话模型 -> 任意可用)逻辑不变。
2025-11-25 20:55:33 +08:00
SXP-Simon 9db57a9adb feat(mascot): 为 template footer 添加吉祥物 base64 图片 2025-11-23 20:05:07 +08:00
Helian Nuits e5320969ee feat(auto_scheduler): 添加自动调度器,使用信号量(Semaphore)并发限制和弱引用字典(WeakValueDictionary)优化锁管理;群黑白名单机制。 (#50)
* feat(auto_scheduler): 添加自动调度器,使用信号量(Semaphore)并发限制和弱引用字典(WeakValueDictionary)优化锁管理。

* feat(auto_scheduler): 群黑白名单机制

* feat(自动分析最大并发数): 可配置项添加信号量自定义控制

* debug(获取群)

* fix(config)

* fix(pre-commit): cr
2025-11-23 13:26:09 +08:00