Commit Graph
12 Commits
Author SHA1 Message Date
SXP-Simon e73fd99e26 feat(logger) 2026-02-08 23:28:56 +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 5b72997a28 refactor: 全局变量重构,受保护成员访问修复,同步 I/O 操作异步化 2026-01-06 23:07:03 +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 41f49ee6b3 fix(cr): pre-commit 2025-11-25 20:55:33 +08:00
SXP-Simon 150f6c37a9 feat(mutli-templates): 适配多套排版选择 2025-11-25 20:55:33 +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
xiaoxi68 4f509ae5f9 ruff 2025-11-09 20:28:51 +08:00
SXP-Simon ae4937d829 [style] (template) 报告模板代码格式化 2025-09-28 17:31:27 +08:00
SXP-Simon 09a16d63ab [fix] (reports\templates.py) 调整字体大小,但是效果其实没有特别好,可能需要彻底改变排版后再进行调整 2025-09-14 23:41:50 +08:00
回归天空 a2bebc257a [v1.9.0] (活跃度可视化) 生成 24h 时间段活跃情况分析 2025-09-03 16:38:56 +08:00
回归天空 84c663df44 [v1.7.0] (解耦化) 优化项目结构,修复部分提示内容 2025-09-02 23:30:37 +08:00