style: 代码格式化,修复缩进问题
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -418,13 +418,12 @@ class ChatBot:
|
||||
# 用户屏蔽,不区分私聊/群聊
|
||||
if event.user_id in global_config.ban_user_id:
|
||||
return
|
||||
|
||||
|
||||
if isinstance(event, GroupMessageEvent):
|
||||
if event.group_id:
|
||||
if event.group_id not in global_config.talk_allowed_groups:
|
||||
return
|
||||
|
||||
|
||||
# 获取合并转发消息的详细信息
|
||||
forward_info = await bot.get_forward_msg(message_id=event.message_id)
|
||||
messages = forward_info["messages"]
|
||||
@@ -434,17 +433,17 @@ class ChatBot:
|
||||
for node in messages:
|
||||
# 提取发送者昵称
|
||||
nickname = node["sender"].get("nickname", "未知用户")
|
||||
|
||||
|
||||
# 递归处理消息内容
|
||||
message_content = await self.process_message_segments(node["message"],layer=0)
|
||||
|
||||
message_content = await self.process_message_segments(node["message"], layer=0)
|
||||
|
||||
# 拼接为【昵称】+ 内容
|
||||
processed_messages.append(f"【{nickname}】{message_content}")
|
||||
|
||||
# 组合所有消息
|
||||
combined_message = "\n".join(processed_messages)
|
||||
combined_message = f"合并转发消息内容:\n{combined_message}"
|
||||
|
||||
|
||||
# 构建用户信息(使用转发消息的发送者)
|
||||
user_info = UserInfo(
|
||||
user_id=event.user_id,
|
||||
@@ -456,11 +455,7 @@ class ChatBot:
|
||||
# 构建群聊信息(如果是群聊)
|
||||
group_info = None
|
||||
if isinstance(event, GroupMessageEvent):
|
||||
group_info = GroupInfo(
|
||||
group_id=event.group_id,
|
||||
group_name=None,
|
||||
platform="qq"
|
||||
)
|
||||
group_info = GroupInfo(group_id=event.group_id, group_name=None, platform="qq")
|
||||
|
||||
# 创建消息对象
|
||||
message_cq = MessageRecvCQ(
|
||||
@@ -475,19 +470,19 @@ class ChatBot:
|
||||
# 进入标准消息处理流程
|
||||
await self.message_process(message_cq)
|
||||
|
||||
async def process_message_segments(self, segments: list,layer:int) -> str:
|
||||
async def process_message_segments(self, segments: list, layer: int) -> str:
|
||||
"""递归处理消息段"""
|
||||
parts = []
|
||||
for seg in segments:
|
||||
part = await self.process_segment(seg,layer+1)
|
||||
part = await self.process_segment(seg, layer + 1)
|
||||
parts.append(part)
|
||||
return "".join(parts)
|
||||
|
||||
async def process_segment(self, seg: dict , layer:int) -> str:
|
||||
async def process_segment(self, seg: dict, layer: int) -> str:
|
||||
"""处理单个消息段"""
|
||||
seg_type = seg["type"]
|
||||
if layer > 3 :
|
||||
#防止有那种100层转发消息炸飞麦麦
|
||||
if layer > 3:
|
||||
# 防止有那种100层转发消息炸飞麦麦
|
||||
return "【转发消息】"
|
||||
if seg_type == "text":
|
||||
return seg["data"]["text"]
|
||||
@@ -504,13 +499,14 @@ class ChatBot:
|
||||
nested_messages.append("合并转发消息内容:")
|
||||
for node in nested_nodes:
|
||||
nickname = node["sender"].get("nickname", "未知用户")
|
||||
content = await self.process_message_segments(node["message"],layer=layer)
|
||||
content = await self.process_message_segments(node["message"], layer=layer)
|
||||
# nested_messages.append('-' * layer)
|
||||
nested_messages.append(f"{'--' * layer}【{nickname}】{content}")
|
||||
# nested_messages.append(f"{'--' * layer}合并转发第【{layer}】层结束")
|
||||
return "\n".join(nested_messages)
|
||||
else:
|
||||
return f"[{seg_type}]"
|
||||
|
||||
|
||||
|
||||
# 创建全局ChatBot实例
|
||||
chat_bot = ChatBot()
|
||||
|
||||
Reference in New Issue
Block a user