Commit Graph
32 Commits
Author SHA1 Message Date
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 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 5b72997a28 refactor: 全局变量重构,受保护成员访问修复,同步 I/O 操作异步化 2026-01-06 23:07:03 +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
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
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 14377b278a pre-commit 2025-11-21 21:09:05 +08:00
SXP-Simon 49bda3231d fix(分析发送处理正确匹配): 正确处理群聊分析文件的发送匹配,与消息获取时的逻辑一致 2025-11-18 20:45:22 +08:00
SXP-Simon d18f45aaec fix(分析发送处理正确匹配): 正确处理群聊分析文件的发送匹配,与消息获取时的逻辑一致 2025-11-18 20:45:22 +08:00
SXP-Simon 12d0b5061c fix(多消息平台): 获取所有可用的平台,依次尝试获取消息 2025-11-18 20:45:22 +08:00
SXP-Simon 6c282cceb5 fix(平台识别逻辑): 正确处理群不在此平台的情况 2025-11-18 20:45:22 +08:00
SXP-Simon 453483fb5b fix(多适配器支持): 处理 Bot 实例与平台 ID 2025-11-18 14:38:52 +08:00
SXP-Simon c5ca2a8393 fix(多适配器支持): 处理 Bot 实例与平台 ID 2025-11-18 14:38:52 +08:00
SXP-Simon 64ac6c429b fix(多适配器支持): 处理 Bot 实例与平台 ID 2025-11-18 14:38:52 +08:00
SXP-Simon 4f2f5a83af fix(多适配器支持):
1. BotManager 多实例管理 (src/core/bot_manager.py)
将单实例存储改为字典:self._bot_instances = {} (platform_id -> bot_instance)
添加 platform_id 参数支持:set_bot_instance(bot_instance, platform_id=None)
修改 get_bot_instance(platform_id=None) 支持按平台获取实例
更新 auto_discover_bot_instances() 发现并注册所有适配器
改进状态信息,显示发现的平台数量
2. AutoScheduler 多平台支持 (src/scheduler/auto_scheduler.py)
添加 _get_platform_id_for_group(group_id) 方法,根据群ID查找对应平台
修改消息获取逻辑,使用正确的平台和bot实例
更新 unified_msg_origin 构造,使用正确的平台ID
3. main.py 初始化逻辑更新
修改 _delayed_start_scheduler() 显示发现的适配器数量
日志输出每个平台的详细信息

现在插件可以:

自动发现所有适配器:启动时扫描所有平台,注册每个适配器的bot实例
智能路由:根据群ID自动选择正确的适配器获取消息
避免重复:每个群只通过其所属的适配器获取一次消息
完整日志:显示发现的适配器数量和平台信息
2025-11-18 14:38:52 +08:00
SXP-Simon acca39a162 fix(typo): bot_qq_id 更新配置说明 2025-11-18 00:17:04 +08:00
SXP-Simon eb16f78b15 feat(multi-qq-platforms): 尝试适配多个适配器实例,支持填入多个QQ bot账号 (#42) 2025-11-18 00:17:04 +08:00
xiaoxi68 4f509ae5f9 ruff 2025-11-09 20:28:51 +08:00
SXP-Simon 78dd2e4e68 [fix] (自动分析处理) 纠正分析日期处理情况
#18
2025-10-01 23:53:43 +08:00
SXP-Simon afe569d1e3 [fix] (umo) 纠正自动分析器中传递的 umo 2025-09-23 23:49:59 +08:00
SXP-Simon 9602b31014 [fix] (debug) 纠正日志等级情况,纠正不能适配低版本的的 async timeout 方法 2025-09-23 23:26:12 +08:00
SXP-Simon 29921ae5ae [feat] (自动分析器的群聊并发处理) 将原本的串行分析逻辑调整为并行任务 2025-09-23 22:36:23 +08:00
SXP-Simon de12e8253a [fix] (LLM 提供商) 传递 unified_msg_origin 以获取正确的 LLM 提供商 2025-09-16 12:08:56 +08:00
SXP-Simon 9443953c94 [fix] 将 AutoScheduler 中残留的 self.bot_instance 全部改为通过 BotManager 获取实例
报错 “‘AutoScheduler’ object has no attribute ‘bot_instance’” 的原因是:我们在解耦后移除了 AutoScheduler 上的 bot_instance 成员,但 AutoScheduler 中发送消息的方法仍然使用了 self.bot_instance。
2025-09-15 22:17:16 +08:00
SXP-Simon 53a21f7642 [fix] (bot-instance) 尝试采用手动配置QQ号的方式,用于定时自动分析 2025-09-15 22:05:52 +08:00
SXP-Simon 8f7af1ed81 [fix] (scheduler\auto_scheduler) 消除了重复代码,增强错误处理 2025-09-14 22:23:40 +08:00
回归天空 84c663df44 [v1.7.0] (解耦化) 优化项目结构,修复部分提示内容 2025-09-02 23:30:37 +08:00