mirror of
https://github.com/Nezumi-2711/astrbot_plugin_qq_group_daily_analysis.git
synced 2026-09-22 13:38:43 +00:00
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自动选择正确的适配器获取消息
避免重复:每个群只通过其所属的适配器获取一次消息
完整日志:显示发现的适配器数量和平台信息
This commit is contained in:
@@ -70,17 +70,21 @@ class QQGroupDailyAnalysis(Star):
|
||||
async def _delayed_start_scheduler(self):
|
||||
"""延迟启动调度器,给系统时间初始化"""
|
||||
try:
|
||||
# 等待10秒让系统完全初始化
|
||||
await asyncio.sleep(10)
|
||||
|
||||
# 初始化bot管理器
|
||||
if await bot_manager.initialize_from_config():
|
||||
logger.info("Bot管理器初始化成功,启用自动分析功能")
|
||||
# 等待30秒让系统完全初始化
|
||||
await asyncio.sleep(30)
|
||||
|
||||
# 初始化所有bot实例
|
||||
discovered = await bot_manager.initialize_from_config()
|
||||
if discovered:
|
||||
platform_count = len(discovered)
|
||||
logger.info(f"Bot管理器初始化成功,发现 {platform_count} 个适配器")
|
||||
for platform_id, bot_instance in discovered.items():
|
||||
logger.info(f" - 平台 {platform_id}: {type(bot_instance).__name__}")
|
||||
|
||||
# 启动调度器
|
||||
await auto_scheduler.start_scheduler()
|
||||
else:
|
||||
logger.warning("Bot管理器初始化失败,无法启用自动分析功能")
|
||||
logger.warning("Bot管理器初始化失败,未发现任何适配器")
|
||||
status = bot_manager.get_status_info()
|
||||
logger.info(f"Bot管理器状态: {status}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user