modified: src/recv_handler.py

pull/5/head
Bakadax 2025-04-15 09:32:52 +08:00
parent d499a05e2c
commit 1321bc218f
1 changed files with 17 additions and 9 deletions

View File

@ -225,6 +225,12 @@ class RecvHandler:
logger.warning("text处理失败")
case RealMessageType.face:
pass
case RealMessageType.reply:
ret_seg = await self.handle_reply_message(sub_message)
if ret_seg:
seg_message += ret_seg
else:
logger.warning("reply处理失败")
case RealMessageType.image:
ret_seg = await self.handle_image_message(sub_message)
if ret_seg:
@ -260,12 +266,6 @@ class RecvHandler:
case RealMessageType.share:
logger.warning("暂时不支持链接解析")
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:
forward_message_id = sub_message.get("data").get("id")
request_uuid = str(uuid.uuid4())
@ -386,18 +386,26 @@ class RecvHandler:
"""
message_id = raw_message.get("data").get("id")
message_detail: dict = await get_message_detail(self.server_connection, message_id)
logger.warning(message_detail)
if not message_detail:
logger.warning("获取被引用的消息详情失败")
return None
reply_message: str = message_detail.get("raw_message")
reply_message = await self.handle_real_message(message_detail)
sender_info: dict = message_detail.get("sender")
sender_nickname: str = sender_info.get("nickname")
sender_id: str = sender_info.get("user_id")
seg_message: List[Seg] = []
if not sender_nickname:
logger.warning("无法获取被引用的人的昵称,返回默认值")
return Seg(type="text", data=f"[回复 QQ用户(未知id){reply_message}],说:")
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:
return Seg(type="text", data=f"[回复 {sender_nickname}({sender_id}){reply_message}],说:")
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:
notice_type = raw_message.get("notice_type")