SXP-Simon
|
031c91940e
|
fix: resolve code duplication and on_platform_loaded signature in main.py
|
2026-02-07 23:54:34 +08:00 |
|
SXP-Simon
|
0c9c20f537
|
docs: remove legacy PDF guide from root
|
2026-02-07 23:51:04 +08:00 |
|
SXP-Simon
|
3b59321b11
|
test: add verification and Docker test suite
|
2026-02-07 23:50:13 +08:00 |
|
SXP-Simon
|
5ebe211791
|
docs: update documentation and project structure
|
2026-02-07 23:50:13 +08:00 |
|
SXP-Simon
|
58c27f9136
|
feat: integrate with AstrBot lifecycle events and update config schema
|
2026-02-07 23:49:51 +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
|
3f7a92e660
|
fix(workflow): auto-release message
|
2026-02-05 22:02:09 +08:00 |
|
SXP-Simon
|
29039186ef
|
[v4.6.9] 🛠️ 健壮性增强:增加友好提示,增强性处理,优化用户体验
|
2026-02-05 21:54:54 +08:00 |
|
SXP-Simon
|
53be552be1
|
fix(AutoScheduler): 增强性处理,保持代码健壮性,增加友好提示
|
2026-02-05 21:51:59 +08:00 |
|
SXP-Simon
|
781e4e6fe6
|
[v4.6.8] ✨ 新功能:支持配置每日多个时间点总结
|
2026-02-05 21:38:25 +08:00 |
|
SXP-Simon
|
fe2c9d74c4
|
feat(auto_analysis_time): 将 auto_analysis_time 配置改为 list,满足支持配置每日多个时间点总结的需求 (#79)
|
2026-02-05 21:35:45 +08:00 |
|
SXP-Simon
|
b85139d138
|
fix(auto-release): 修复 commit hash 和 url 提取存在的问题,完善 release 消息
|
2026-02-05 21:12:15 +08:00 |
|
SXP-Simon
|
f99a61ae75
|
[v4.6.7] 修复定时分析发送后台不完全静默的 Bug
|
2026-01-31 16:14:58 +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
|
8bb059be52
|
[v4.6.6] fix(pdf): 迁移为 playwright
|
2026-01-20 20:29:18 +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
|
68a5922c3b
|
[v4.6.5] feat(ReportGenerator): 优化 t2i 参数
|
2026-01-20 14:37:40 +08:00 |
|
SXP-Simon
|
80cbe786bf
|
feat(ReportGenerator): 优化 t2i 参数
|
2026-01-20 14:34:42 +08:00 |
|
SXP-Simon
|
5bc6c07aa8
|
fix(conf): PDF 输出目录路径 pdf_output_dir 修正
|
2026-01-18 13:57:27 +08:00 |
|
SXP-Simon
|
164a5bd5cc
|
[v4.6.4] 重试管理器优化和业务逻辑调整
|
2026-01-18 00:56:42 +08:00 |
|
SXP-Simon
|
e13907949c
|
fix(群分析): 解决在 NTQQ 内核尝试上传图片并将其推送到腾讯服务器时,超过了预设的时间限制(通常是 120 毫秒或更久),导致连接断开。的 aiocqhttp.exceptions.ActionFailed 问题
如果手动命令 /群分析 发送图片失败(例如遇到你之前遇到的 Timeout 超时错误),插件现在会捕获此错误,而不会直接崩溃或无响应。自动触发重试 (Automatic Retry)一旦捕获到发送失败的错误,系统会立即将该任务添加到 RetryManager(重试管理器)中。Base64 备选方案 (Base64 Fallback)
RetryManager 会接管该任务,并改用我们刚刚实现的 Base64 方法重新发送图片。在原始 URL 方法失败的情况下,这种方式的成功率极高。
|
2026-01-18 00:52:19 +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
|
b9b09699e7
|
chore(assets): 更新 scrapbook 示例排版图
|
2026-01-18 00:23:07 +08:00 |
|
SXP-Simon
|
fc88065d1f
|
[v4.6.3] scrapbook activity_chart 排版调整为横向
|
2026-01-18 00:04:30 +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
|
7c3a86fdff
|
fix(pre-commit): code quality
|
2026-01-17 00:04:14 +08:00 |
|
SXP-Simon
|
7450d76178
|
fix(pre-commit): code quality
|
2026-01-16 23:59:45 +08:00 |
|
SXP-Simon
|
8270bf994f
|
[v4.6.1] Linux 下的 /安装PDF 指令简易修复,纠正头像获取的处理;PDF 格式在 Linux 环境下占用过大,原因还在排查中,暂时不推荐使用
|
2026-01-16 23:49:31 +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
|
0b6f2b6969
|
[v4.6.0] 通过 AstrBot 配置文件来判断账号启用插件 (#72)
|
2026-01-16 18:39:27 +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
|
fb65d14d9d
|
chore(CHANGELOG.md): 更新日志
|
2026-01-13 16:54:59 +08:00 |
|
SXP-Simon
|
89bb78640d
|
chore(assets): 更新 scrapbook 示例排版图
|
2026-01-13 16:35:41 +08:00 |
|
SXP-Simon
|
76c5157f30
|
[v4.5.8] 群贤毕至添加头像
|
2026-01-13 16:32:36 +08:00 |
|
SXP-Simon
|
fd5d4b978d
|
feat(scrapbook): 群贤毕至添加头像
|
2026-01-13 16:29:34 +08:00 |
|
SXP-Simon
|
131a411a70
|
[4.5.7] scrapbook 模板 footer 的 token 描述调整,仓库地址更新
|
2026-01-13 15:27:04 +08:00 |
|
SXP-Simon
|
3f1e406670
|
fix: 调整排版
- feat(template): scrapbook footer 使用更全面的 token 描述
- chore(template): 仓库名称
|
2026-01-13 15:22:01 +08:00 |
|
SXP-Simon
|
3e62f5d879
|
[v4.5.6] 更新 scrapbook 模板排版
|
2026-01-07 16:51:23 +08:00 |
|
SXP-Simon
|
4b4f4545db
|
feat(scrapbook): 更新 scrapbook 模板
|
2026-01-07 16:50:29 +08:00 |
|
SXP-Simon
|
251eb2ca0d
|
[v4.5.5] 性能优化,CPU 密集型计算(统计和分析)已卸载到各线程池,避免阻塞事件循环;修复 Jinja2 模板渲染线程安全问题
|
2026-01-07 00:38:11 +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
|
3840e84b93
|
Merge branch 'main' of github.com:SXP-Simon/astrbot-qq-group-daily-analysis
|
2026-01-07 00:30:14 +08:00 |
|
SXP-Simon
|
2af39fa3b5
|
fix(debug): 删除一些不必要的 debug 调试
|
2026-01-07 00:28:35 +08:00 |
|
SXP-Simon
|
3ca7f71376
|
fix(typo): 调整文档
|
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
|
5b72997a28
|
refactor: 全局变量重构,受保护成员访问修复,同步 I/O 操作异步化
|
2026-01-06 23:07:03 +08:00 |
|
SXP-Simon
|
64ae5e1a6d
|
[v4.5.4] 更新插件 metadata 描述,为了使用户更容易搜索到此插件,重新在插件市场提交
|
2026-01-06 22:20:55 +08:00 |
|
SXP-Simon
|
c562cd49ca
|
fix(typo): metadata
|
2026-01-06 22:14:02 +08:00 |
|
Helian Nuits
|
d1a3de9e21
|
[v4.5.3] 更新版本号,处理 rebase 合并 PR 导致自动 release 发版 workflow 失效的问题
|
2026-01-03 01:34:09 +08:00 |
|
Helian Nuits
|
f458bcfefa
|
[v4.5.2] 添加查看模板指令,合并转发模板图片供用户查看,优化选择模板命令 (@clown145)
|
2026-01-03 01:30:52 +08:00 |
|
SXP-Simon
|
099421931e
|
fix(typo): 增加 readme 新模板 retro_futurism 演示
|
2025-12-31 14:50:21 +08:00 |
|
SXP-Simon
|
d339f1b7c0
|
[v4.5.0] 添加新的模板主题 retro_futurism, 灵感来源明日方舟 孤星 未来复古主义主题;添加模板调试工具 scripts/debug_render.py,方便用户在不启动 AstrBot 的情况下调试模板效果 (@Saramanda9988)
|
2025-12-31 14:44:23 +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 |
|
SXP-Simon
|
8f107f6c05
|
[v4.3.0] 纠正关闭特定分析区但是基础样式没有去除的 bug
|
2025-11-29 00:19:02 +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
|
a81640c289
|
[v4.2.6] fix(延迟启动调度器失败): 'xxxPlatformAdapter' object has no attribute 'metadata'
|
2025-11-26 00:42:40 +08:00 |
|
SXP-Simon
|
1a08d6cb59
|
fix(延迟启动调度器失败): PlatformAdapter' object has no attribute 'metadata'
|
2025-11-26 00:35:04 +08:00 |
|
SXP-Simon
|
bb124a96f6
|
[v4.2.5] 正确获取 platform_id
|
2025-11-25 23:42:41 +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
|
3d60a14445
|
[v4.2.0] (!!!要求:AstrBot v4.5.7+!!!) 适配 AstrBot v4.5.7+ 的新 LLM API 标准,支持多套主题模板切换使用,欢迎为插件贡献新的报告模板
|
2025-11-25 21:12:30 +08:00 |
|
SXP-Simon
|
6ca52e24ee
|
fix(auto-release): 迁移到 main
|
2025-11-25 20:59:39 +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
|
c211ea7050
|
chore(copilot_instructions.md): 插件开发文档写入 copilot instructions, 更新 README.
|
2025-11-25 20:55:33 +08:00 |
|
SXP-Simon
|
9db57a9adb
|
feat(mascot): 为 template footer 添加吉祥物 base64 图片
|
2025-11-23 20:05:07 +08:00 |
|
SXP-Simon
|
7132acdcb9
|
[v4.1.0] 群黑白名单机制;使用信号量(Semaphore)并发限制和弱引用字典(WeakValueDictionary)优化锁管理
|
2025-11-23 13:29:12 +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 |
|
SXP-Simon
|
06290b8118
|
chore(demo): 更新 demo 图
|
2025-11-22 15:37:20 +08:00 |
|
SXP-Simon
|
e5256027a6
|
[v4.0.1] 纠正字体情况,调整字号
|
2025-11-22 15:32:44 +08:00 |
|
SXP-Simon
|
2da97dd5d2
|
fix(pdf): 同步更新 PDF 模板
|
2025-11-22 15:32:44 +08:00 |
|
SXP-Simon
|
8715db4f31
|
fix(font-family): 使用 Patrick Hand,避免使用英文难以辨识的 Indie Flower,调整字体大小
|
2025-11-22 15:32:44 +08:00 |
|
Helian Nuits
|
bfd74ac54c
|
feat(report/template): 全新设计的报告模板,采用卡通手账日记风格设计,灵感来源于 GalGame 《五彩斑斓的世界》女主二阶堂真红和男主悠马每天晚上写日记的场景 (#48)
* feat(template): 尝试采用卡通手账日记形式的设计风格
* fix(topic): 正确使用样式
* fix(template): 活跃时间段样式调整
* fix(template): 辨识度增强
* fix(head): 五彩斑斓的一天,来看看群里发生了什么吧!
* fix(h1): 五彩斑斓的一天,来看看群里发生了什么吧!
* [v4.0.0] feat(report/template): 全新设计的报告模板,采用卡通手账日记风格设计,灵感来源于 GalGame 《五彩斑斓的世界》女主二阶堂真红和男主悠马每天晚上写日记的场景
* fix(cr): 在Google Fonts链接中添加了Indie+Flower字体,确保--font-hand变量中使用的'Indie Flower'字体能够正确加载。
* fix(pre-commit): 修复了 pre-commit 检查失败的问题。移除了所有未使用的 level 变量赋值
|
2025-11-22 13:19:07 +08:00 |
|
SXP-Simon
|
2a1dcb3db0
|
[v3.9.5] fix(report/template): 迁移到应该使用的 jinja2 模板引擎, HTML 文件方便调试和修改
|
2025-11-22 01:46:58 +08:00 |
|
Helian Nuits
|
e12b8d56e0
|
fix(report/template): 迁移到应该使用的 jinja2 (#47)
* fix(report/template): 迁移到应该使用的 jinja2
* fix(topic): 纠正 topic jinja2 模板
* log(generate): debug
* fix(generator): 之前的代码直接将原始模板字符串和渲染数据分开传递给 html_render_func,但 html_render_func 期望接收的是已经渲染好的完整HTML内容
* fix(template): debug
* debug
* fix(debug): 删除冗余的日志调试
* fix(code quality): cr
|
2025-11-22 01:43:27 +08:00 |
|
SXP-Simon
|
8287452688
|
chore(assets): 整理 assets 资源
|
2025-11-21 23:14:20 +08:00 |
|
SXP-Simon
|
ea775b11ba
|
feat(pre-commit): 每次推送代码或创建 PR 时都会自动运行 pre-commit 检查,确保代码质量
|
2025-11-21 22:54:43 +08:00 |
|