Merge pull request #7 from Dax233/reply
对齐nonebot-plugin-maibot-adapters main-fix版本的at和reply格式,方便处理提及pull/15/head
commit
ea944754d8
|
|
@ -141,7 +141,7 @@ class RecvHandler:
|
||||||
sub_type = raw_message.get("sub_type")
|
sub_type = raw_message.get("sub_type")
|
||||||
if sub_type == MessageType.Group.normal:
|
if sub_type == MessageType.Group.normal:
|
||||||
sender_info: dict = raw_message.get("sender")
|
sender_info: dict = raw_message.get("sender")
|
||||||
|
|
||||||
# 发送者用户信息
|
# 发送者用户信息
|
||||||
user_info: UserInfo = UserInfo(
|
user_info: UserInfo = UserInfo(
|
||||||
platform=global_config.platform,
|
platform=global_config.platform,
|
||||||
|
|
@ -201,7 +201,7 @@ class RecvHandler:
|
||||||
logger.info("发送到Maibot处理信息")
|
logger.info("发送到Maibot处理信息")
|
||||||
await self.message_process(message_base)
|
await self.message_process(message_base)
|
||||||
|
|
||||||
async def handle_real_message(self, raw_message: dict) -> List[Seg]:
|
async def handle_real_message(self, raw_message: dict, in_reply: bool = False) -> List[Seg]:
|
||||||
"""
|
"""
|
||||||
处理实际消息
|
处理实际消息
|
||||||
Parameters:
|
Parameters:
|
||||||
|
|
@ -225,6 +225,15 @@ class RecvHandler:
|
||||||
logger.warning("text处理失败")
|
logger.warning("text处理失败")
|
||||||
case RealMessageType.face:
|
case RealMessageType.face:
|
||||||
pass
|
pass
|
||||||
|
case RealMessageType.reply:
|
||||||
|
if not in_reply:
|
||||||
|
ret_seg = await self.handle_reply_message(sub_message)
|
||||||
|
if ret_seg:
|
||||||
|
seg_message += ret_seg
|
||||||
|
else:
|
||||||
|
logger.warning("reply处理失败")
|
||||||
|
else:
|
||||||
|
pass
|
||||||
case RealMessageType.image:
|
case RealMessageType.image:
|
||||||
ret_seg = await self.handle_image_message(sub_message)
|
ret_seg = await self.handle_image_message(sub_message)
|
||||||
if ret_seg:
|
if ret_seg:
|
||||||
|
|
@ -260,12 +269,6 @@ class RecvHandler:
|
||||||
case RealMessageType.share:
|
case RealMessageType.share:
|
||||||
logger.warning("暂时不支持链接解析")
|
logger.warning("暂时不支持链接解析")
|
||||||
pass
|
pass
|
||||||
case RealMessageType.reply:
|
|
||||||
ret_seg = await self.handle_reply_message(sub_message)
|
|
||||||
if ret_seg:
|
|
||||||
seg_message.append(ret_seg)
|
|
||||||
else:
|
|
||||||
logger.warning("reply处理失败")
|
|
||||||
case RealMessageType.forward:
|
case RealMessageType.forward:
|
||||||
forward_message_id = sub_message.get("data").get("id")
|
forward_message_id = sub_message.get("data").get("id")
|
||||||
request_uuid = str(uuid.uuid4())
|
request_uuid = str(uuid.uuid4())
|
||||||
|
|
@ -366,7 +369,7 @@ class RecvHandler:
|
||||||
if str(self_id) == str(qq_id):
|
if str(self_id) == str(qq_id):
|
||||||
self_info: dict = await get_self_info(self.server_connection)
|
self_info: dict = await get_self_info(self.server_connection)
|
||||||
if self_info:
|
if self_info:
|
||||||
return Seg(type=RealMessageType.text, data=f"@{self_info.get('nickname')}")
|
return Seg(type=RealMessageType.text, data=f"@{self_info.get('nickname')}(id:{self_info.get('user_id')})")
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
else:
|
else:
|
||||||
|
|
@ -374,7 +377,7 @@ class RecvHandler:
|
||||||
if member_info:
|
if member_info:
|
||||||
return Seg(
|
return Seg(
|
||||||
type=RealMessageType.text,
|
type=RealMessageType.text,
|
||||||
data=f"@{member_info.get('nickname')}",
|
data=f"@{member_info.get('nickname')}(id:{member_info.get('user_id')})",
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
@ -389,13 +392,22 @@ class RecvHandler:
|
||||||
if not message_detail:
|
if not message_detail:
|
||||||
logger.warning("获取被引用的消息详情失败")
|
logger.warning("获取被引用的消息详情失败")
|
||||||
return None
|
return None
|
||||||
|
reply_message = await self.handle_real_message(message_detail, in_reply=True)
|
||||||
sender_info: dict = message_detail.get("sender")
|
sender_info: dict = message_detail.get("sender")
|
||||||
sender_nickname: str = sender_info.get("nickname")
|
sender_nickname: str = sender_info.get("nickname")
|
||||||
|
sender_id: str = sender_info.get("user_id")
|
||||||
|
seg_message: List[Seg] = []
|
||||||
if not sender_nickname:
|
if not sender_nickname:
|
||||||
logger.warning("无法获取被引用的人的昵称,返回默认值")
|
logger.warning("无法获取被引用的人的昵称,返回默认值")
|
||||||
return Seg(type="text", data="回复QQ用户的消息,说:")
|
seg_message.append(Seg(type="text", data=f"[回复 QQ用户(未知id):"))
|
||||||
|
seg_message += reply_message
|
||||||
|
seg_message.append(Seg(type="text", data=f"],说:"))
|
||||||
|
return seg_message
|
||||||
else:
|
else:
|
||||||
return Seg(type="text", data=f"回复{sender_nickname}的消息,说:")
|
seg_message.append(Seg(type="text", data=f"[回复 {sender_nickname}({sender_id}):"))
|
||||||
|
seg_message += reply_message
|
||||||
|
seg_message.append(Seg(type="text", data=f"],说:"))
|
||||||
|
return seg_message
|
||||||
|
|
||||||
async def handle_notice(self, raw_message: dict) -> None:
|
async def handle_notice(self, raw_message: dict) -> None:
|
||||||
notice_type = raw_message.get("notice_type")
|
notice_type = raw_message.get("notice_type")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue