Update storage.py

This commit is contained in:
雅诺狐
2025-08-13 18:38:12 +08:00
parent a42be7b5ae
commit 0e7ebffb8f

View File

@@ -115,16 +115,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
@@ -132,11 +136,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正确管理
@@ -153,10 +158,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: