fix: at和回复只显示qq号的问题
This commit is contained in:
@@ -536,7 +536,8 @@ class MessageHandler:
|
|||||||
logger.debug("机器人被at")
|
logger.debug("机器人被at")
|
||||||
self_info: dict = await get_self_info(self.get_server_connection())
|
self_info: dict = await get_self_info(self.get_server_connection())
|
||||||
if self_info:
|
if self_info:
|
||||||
return Seg(type="text", data=f"@<{self_info.get('nickname')}:{self_info.get('user_id')}>")
|
# 返回包含昵称和用户ID的at格式,便于后续处理
|
||||||
|
return Seg(type="at", data=f"{self_info.get('nickname')}:{self_info.get('user_id')}")
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
else:
|
else:
|
||||||
@@ -544,7 +545,8 @@ class MessageHandler:
|
|||||||
self.get_server_connection(), group_id=group_id, user_id=qq_id
|
self.get_server_connection(), group_id=group_id, user_id=qq_id
|
||||||
)
|
)
|
||||||
if member_info:
|
if member_info:
|
||||||
return Seg(type="text", data=f"@<{member_info.get('nickname')}:{member_info.get('user_id')}>")
|
# 返回包含昵称和用户ID的at格式,便于后续处理
|
||||||
|
return Seg(type="at", data=f"{member_info.get('nickname')}:{member_info.get('user_id')}")
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@@ -688,7 +690,7 @@ class MessageHandler:
|
|||||||
logger.warning("无法获取被引用的人的昵称,返回默认值")
|
logger.warning("无法获取被引用的人的昵称,返回默认值")
|
||||||
seg_message.append(Seg(type="text", data="[回复 未知用户:"))
|
seg_message.append(Seg(type="text", data="[回复 未知用户:"))
|
||||||
else:
|
else:
|
||||||
seg_message.append(Seg(type="text", data=f"[回复<{sender_nickname}:{sender_id}>:"))
|
seg_message.append(Seg(type="text", data=f"[回复<{sender_nickname}>:"))
|
||||||
seg_message += reply_message
|
seg_message += reply_message
|
||||||
seg_message.append(Seg(type="text", data="],说:"))
|
seg_message.append(Seg(type="text", data="],说:"))
|
||||||
return seg_message
|
return seg_message
|
||||||
|
|||||||
@@ -149,6 +149,15 @@ class MessageRecv(Message):
|
|||||||
self.is_emoji = False
|
self.is_emoji = False
|
||||||
self.is_video = False
|
self.is_video = False
|
||||||
return segment.data # type: ignore
|
return segment.data # type: ignore
|
||||||
|
elif segment.type == "at":
|
||||||
|
self.is_picid = False
|
||||||
|
self.is_emoji = False
|
||||||
|
self.is_video = False
|
||||||
|
# 处理at消息,格式为"昵称:QQ号"
|
||||||
|
if segment.data and ":" in segment.data:
|
||||||
|
nickname, qq_id = segment.data.split(":", 1)
|
||||||
|
return f"@{nickname}"
|
||||||
|
return f"@{segment.data}" if segment.data else "@未知用户"
|
||||||
elif segment.type == "image":
|
elif segment.type == "image":
|
||||||
# 如果是base64图片数据
|
# 如果是base64图片数据
|
||||||
if isinstance(segment.data, str):
|
if isinstance(segment.data, str):
|
||||||
@@ -503,12 +512,16 @@ class MessageProcessBase(Message):
|
|||||||
return await get_voice_text(seg.data)
|
return await get_voice_text(seg.data)
|
||||||
return "[发了一段语音,网卡了加载不出来]"
|
return "[发了一段语音,网卡了加载不出来]"
|
||||||
elif seg.type == "at":
|
elif seg.type == "at":
|
||||||
return f"[@{seg.data}]"
|
# 处理at消息,格式为"昵称:QQ号"
|
||||||
|
if seg.data and ":" in seg.data:
|
||||||
|
nickname, qq_id = seg.data.split(":", 1)
|
||||||
|
return f"@{nickname}"
|
||||||
|
return f"@{seg.data}" if seg.data else "@未知用户"
|
||||||
elif seg.type == "reply":
|
elif seg.type == "reply":
|
||||||
if self.reply and hasattr(self.reply, "processed_plain_text"):
|
if self.reply and hasattr(self.reply, "processed_plain_text"):
|
||||||
# print(f"self.reply.processed_plain_text: {self.reply.processed_plain_text}")
|
# print(f"self.reply.processed_plain_text: {self.reply.processed_plain_text}")
|
||||||
# print(f"reply: {self.reply}")
|
# print(f"reply: {self.reply}")
|
||||||
return f"[回复<{self.reply.message_info.user_info.user_nickname}:{self.reply.message_info.user_info.user_id}> 的消息:{self.reply.processed_plain_text}]" # type: ignore
|
return f"[回复<{self.reply.message_info.user_info.user_nickname}> 的消息:{self.reply.processed_plain_text}]" # type: ignore
|
||||||
return None
|
return None
|
||||||
else:
|
else:
|
||||||
return f"[{seg.type}:{str(seg.data)}]"
|
return f"[{seg.type}:{str(seg.data)}]"
|
||||||
|
|||||||
Reference in New Issue
Block a user