From 2dfd986ba402d98bc7cdf9e7202d8002c7a0ea8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=85=E8=AF=BA=E7=8B=90?= <212194964+foxcyber907@users.noreply.github.com> Date: Wed, 13 Aug 2025 18:38:12 +0800 Subject: [PATCH] Update storage.py --- src/chat/message_receive/storage.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/chat/message_receive/storage.py b/src/chat/message_receive/storage.py index d57a4a4cc..50298b940 100644 --- a/src/chat/message_receive/storage.py +++ b/src/chat/message_receive/storage.py @@ -143,16 +143,20 @@ class MessageStorage: async def update_message(message): """更新消息ID""" try: - mmc_message_id = message.message_info.message_id # 修复:正确访问message_id - qq_message_id = None # 初始化变量 + mmc_message_id = message.message_info.message_id + qq_message_id = None + logger.debug(f"尝试更新消息ID: {mmc_message_id}, 消息段类型: {message.message_segment.type}") + + # 根据消息段类型提取message_id if message.message_segment.type == "notify": qq_message_id = message.message_segment.data.get("id") elif message.message_segment.type == "text": qq_message_id = message.message_segment.data.get("id") elif message.message_segment.type == "reply": qq_message_id = message.message_segment.data.get("id") - logger.info(f"更新消息ID完成,消息ID为{qq_message_id}") + if qq_message_id: + logger.debug(f"从reply消息段获取到消息ID: {qq_message_id}") elif message.message_segment.type == "adapter_response": logger.debug("适配器响应消息,不需要更新ID") return @@ -160,11 +164,12 @@ class MessageStorage: logger.debug("适配器命令消息,不需要更新ID") return else: - logger.info(f"更新消息ID错误,seg类型为{message.message_segment.type}") + logger.debug(f"未知的消息段类型: {message.message_segment.type},跳过ID更新") return if not qq_message_id: - logger.info("消息不存在message_id,无法更新") + logger.debug(f"消息段类型 {message.message_segment.type} 中未找到有效的message_id,跳过更新") + logger.debug(f"消息段数据: {message.message_segment.data}") return # 使用上下文管理器确保session正确管理 @@ -181,10 +186,12 @@ class MessageStorage: # session.commit() 会在上下文管理器中自动调用 logger.debug(f"更新消息ID成功: {matched_message.message_id} -> {qq_message_id}") else: - logger.debug("未找到匹配的消息") + logger.warning(f"未找到匹配的消息记录: {mmc_message_id}") except Exception as e: logger.error(f"更新消息ID失败: {e}") + logger.error(f"消息信息: message_id={getattr(message.message_info, 'message_id', 'N/A')}, " + f"segment_type={getattr(message.message_segment, 'type', 'N/A')}") @staticmethod def replace_image_descriptions(text: str) -> str: