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 |
|