hotfix!!!!!!

This commit is contained in:
2026-01-06 23:51:09 +08:00
parent e50679eac2
commit afd2c36f88
2 changed files with 39 additions and 9 deletions

View File

@@ -19,7 +19,8 @@ async def broadcast_message(event: MessageEvent):
:param event: 消息事件对象。
"""
# 1. 检查是否为私聊消息
if event.group_id:
# 使用 hasattr 安全地检查 group_id 属性,避免 AttributeError
if hasattr(event, 'group_id') and event.group_id:
# 在群聊中调用时,静默处理,不予响应
return
@@ -41,7 +42,19 @@ async def broadcast_message(event: MessageEvent):
await event.reply(f"获取群聊列表时发生错误,无法广播。错误信息: {e}")
return
# 4. 遍历所有群聊并转发消息
# 4. 获取被回复的消息内容
try:
message_data = await bot.get_msg(reply.message_id)
message_content = message_data.get("message", "")
if not message_content:
await event.reply("无法获取被回复的消息内容,广播失败。")
return
except Exception as e:
logger.error(f"[Broadcast] 获取消息内容失败: {e}")
await event.reply(f"获取消息内容时发生错误: {e}")
return
# 5. 遍历所有群聊并发送消息
success_count = 0
failed_count = 0
total_groups = len(group_list)
@@ -49,23 +62,23 @@ async def broadcast_message(event: MessageEvent):
await event.reply(f"准备向 {total_groups} 个群聊广播消息,请稍候...")
for group in group_list:
group_id = group.get("group_id")
group_id = group.group_id
if not group_id:
continue
try:
# 直接转发被回复的消息
await bot.forward_message(
# 发送消息到群聊
await bot.send_group_msg(
group_id=group_id,
message_id=reply.message_id
message=message_content
)
success_count += 1
logger.info(f"[Broadcast] 已成功将消息发至群聊: {group_id}")
logger.info(f"[Broadcast] 已成功将消息发至群聊: {group_id}")
except Exception as e:
failed_count += 1
logger.error(f"[Broadcast] 发消息至群聊 {group_id} 失败: {e}")
logger.error(f"[Broadcast] 发消息至群聊 {group_id} 失败: {e}")
# 5. 向管理员报告结果
# 6. 向管理员报告结果
report_message = (
f"广播任务完成。\n"
f"总群聊数: {total_groups}\n"