From 749deb09b8399f85da33ee5255f37652796e55f4 Mon Sep 17 00:00:00 2001 From: A0000Xz <629995608@qq.com> Date: Sun, 29 Jun 2025 00:37:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=94=99=E8=AF=AF=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=EF=BC=8C=E7=A7=BB=E9=99=A4=E5=AE=8C=E5=85=A8=E4=B8=8D?= =?UTF-8?q?=E5=BF=85=E8=A6=81=E7=9A=84=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/message_receive/bot.py | 1 - src/chat/message_receive/storage.py | 12 +++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/chat/message_receive/bot.py b/src/chat/message_receive/bot.py index 69eb3aa95..34647c6f8 100644 --- a/src/chat/message_receive/bot.py +++ b/src/chat/message_receive/bot.py @@ -134,7 +134,6 @@ class ChatBot: if message.message_info.additional_config: sent_message = message.message_info.additional_config.get("echo", False) if sent_message: # 这一段只是为了在一切处理前劫持上报的自身消息,用于更新message_id,需要ada支持上报事件,实际测试中不会对正常使用造成任何问题 - await message.process() await MessageStorage.update_message(message) return diff --git a/src/chat/message_receive/storage.py b/src/chat/message_receive/storage.py index 185c91483..51bb6f17e 100644 --- a/src/chat/message_receive/storage.py +++ b/src/chat/message_receive/storage.py @@ -107,9 +107,15 @@ class MessageStorage: async def update_message(message: MessageRecv) -> None: # 用于实时更新数据库的自身发送消息ID,目前能处理text,reply,image和emoji """更新最新一条匹配消息的message_id""" try: - mmc_message_id = message.message_segment.data.get("echo") - qq_message_id = message.message_segment.data.get("actual_id") - + if message.message_segment.get("type") == "notify": + mmc_message_id = message.message_segment.data.get("echo") + qq_message_id = message.message_segment.data.get("actual_id") + else: + logger.info(f"更新消息ID错误,seg类型为{message.message_segment.get('type')}") + return + if not qq_message_id: + logger.info("消息不存在message_id,无法更新") + return # 查询最新一条匹配消息 matched_message = Messages.select().where( (Messages.message_id == mmc_message_id)