mirror of
https://github.com/Nezumi-2711/astrbot_plugin_qq_group_daily_analysis.git
synced 2026-09-22 13:38:43 +00:00
[fix] 自动分析器获取群聊消息
This commit is contained in:
@@ -75,15 +75,40 @@ class MessageHandler:
|
|||||||
|
|
||||||
while len(messages) < max_messages and query_rounds < max_rounds:
|
while len(messages) < max_messages and query_rounds < max_rounds:
|
||||||
try:
|
try:
|
||||||
|
# 构造请求参数
|
||||||
payloads = {
|
payloads = {
|
||||||
"group_id": group_id,
|
"group_id": int(group_id) if group_id.isdigit() else group_id,
|
||||||
"message_seq": message_seq,
|
|
||||||
"count": 200,
|
"count": 200,
|
||||||
"reverseOrder": True,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 添加 message_seq(如果不是第一轮)
|
||||||
|
if message_seq:
|
||||||
|
payloads["message_seq"] = message_seq
|
||||||
|
|
||||||
|
# 尝试调用 API
|
||||||
result = await bot_instance.call_action("get_group_msg_history", **payloads)
|
result = None
|
||||||
|
api_error = None
|
||||||
|
|
||||||
|
if hasattr(bot_instance, 'call_action'):
|
||||||
|
try:
|
||||||
|
# aiocqhttp (CQHttp) 方式
|
||||||
|
result = await bot_instance.call_action("get_group_msg_history", **payloads)
|
||||||
|
except Exception as api_err:
|
||||||
|
api_error = api_err
|
||||||
|
logger.error(f"群 {group_id} API 调用失败: {api_err}")
|
||||||
|
|
||||||
|
# 第一次失败就放弃(该 API 不支持)
|
||||||
|
if query_rounds == 0:
|
||||||
|
logger.error(f"群 {group_id} 当前 OneBot 实现不支持 get_group_msg_history API")
|
||||||
|
return []
|
||||||
|
elif hasattr(bot_instance, 'api'):
|
||||||
|
# QQ官方 bot (botClient) 方式 - 官方API不支持历史消息
|
||||||
|
logger.error(f"群 {group_id} 检测到 QQ 官方 Bot,官方 API 不支持获取历史消息")
|
||||||
|
return []
|
||||||
|
else:
|
||||||
|
logger.error(f"群 {group_id} 未知的 bot_instance 类型,无法调用 API")
|
||||||
|
logger.error(f"bot_instance 类型: {type(bot_instance)}")
|
||||||
|
return []
|
||||||
|
|
||||||
if not result or "messages" not in result:
|
if not result or "messages" not in result:
|
||||||
logger.warning(f"群 {group_id} API返回无效结果: {result}")
|
logger.warning(f"群 {group_id} API返回无效结果: {result}")
|
||||||
|
|||||||
Reference in New Issue
Block a user