refactor(message-manager): 删除自适应流管理器并优化上下文加载
-从distribution_manager和message_manager中删除adaptive_stream_manager.py及其集成 -删除过时的message_recv_backup.py,因为MessageRecv已被DatabaseMessages完全替换 -在context_manager中添加异步历史初始化,以便在启动时从数据库加载消息 -优化default_generator以使用内存中的消息,而不是重复的数据库查询 -修复message.py中的回复消息段处理,以处理DatabaseMessages格式 -从chat_stream.py中删除deepcopy并改进context_manager初始化 -清理bot.py和适配器响应方法中未使用的通知处理 突破性变化:自适应流管理系统已被完全删除。所有消息处理现在都依赖于DatabaseMessages格式。上下文管理器现在在创建时从数据库异步初始化历史记录。
This commit is contained in:
@@ -160,7 +160,7 @@ class MessageProcessBase(Message):
|
||||
return "[表情,网卡了加载不出来]"
|
||||
elif seg.type == "voice":
|
||||
# 检查消息是否由机器人自己发送
|
||||
# 检查消息是否由机器人自己发送
|
||||
# self.message_info 来自 MessageBase,指当前消息的信息
|
||||
if self.message_info and self.message_info.user_info and str(self.message_info.user_info.user_id) == str(global_config.bot.qq_account):
|
||||
logger.info(f"检测到机器人自身发送的语音消息 (User ID: {self.message_info.user_info.user_id}),尝试从缓存获取文本。")
|
||||
if isinstance(seg.data, str):
|
||||
@@ -182,10 +182,24 @@ class MessageProcessBase(Message):
|
||||
return f"@{nickname}"
|
||||
return f"@{seg.data}" if isinstance(seg.data, str) else "@未知用户"
|
||||
elif seg.type == "reply":
|
||||
if self.reply and hasattr(self.reply, "processed_plain_text"):
|
||||
# print(f"self.reply.processed_plain_text: {self.reply.processed_plain_text}")
|
||||
# print(f"reply: {self.reply}")
|
||||
return f"[回复<{self.reply.message_info.user_info.user_nickname}({self.reply.message_info.user_info.user_id})> 的消息:{self.reply.processed_plain_text}]" # type: ignore
|
||||
# 处理回复消息段
|
||||
if self.reply:
|
||||
# 检查 reply 对象是否有必要的属性
|
||||
if hasattr(self.reply, "processed_plain_text") and self.reply.processed_plain_text:
|
||||
# DatabaseMessages 使用 user_info 而不是 message_info.user_info
|
||||
user_nickname = self.reply.user_info.user_nickname if self.reply.user_info else "未知用户"
|
||||
user_id = self.reply.user_info.user_id if self.reply.user_info else ""
|
||||
return f"[回复<{user_nickname}({user_id})> 的消息:{self.reply.processed_plain_text}]"
|
||||
else:
|
||||
# reply 对象存在但没有 processed_plain_text,返回简化的回复标识
|
||||
logger.debug(f"reply 消息段没有 processed_plain_text 属性,message_id: {getattr(self.reply, 'message_id', 'unknown')}")
|
||||
return "[回复消息]"
|
||||
else:
|
||||
# 没有 reply 对象,但有 reply 消息段(可能是机器人自己发送的消息)
|
||||
# 这种情况下 seg.data 应该包含被回复消息的 message_id
|
||||
if isinstance(seg.data, str):
|
||||
logger.debug(f"处理 reply 消息段,但 self.reply 为 None,reply_to message_id: {seg.data}")
|
||||
return f"[回复消息 {seg.data}]"
|
||||
return None
|
||||
else:
|
||||
return f"[{seg.type}:{seg.data!s}]"
|
||||
|
||||
Reference in New Issue
Block a user