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)