This commit is contained in:
minecraft1024a
2025-08-19 20:19:59 +08:00
3 changed files with 23 additions and 11 deletions

View File

@@ -464,10 +464,12 @@ class HeartFChatting:
async def build_reply_to_str(self, message_data: dict): async def build_reply_to_str(self, message_data: dict):
person_info_manager = get_person_info_manager() person_info_manager = get_person_info_manager()
person_id = person_info_manager.get_person_id(
message_data.get("chat_info_platform"), # type: ignore # 获取平台信息优先使用chat_info_platform如果为None则使用user_platform
message_data.get("user_id"), # type: ignore platform = message_data.get("chat_info_platform") or message_data.get("user_platform") or self.chat_stream.platform
) user_id = message_data.get("user_id")
person_id = person_info_manager.get_person_id(platform, user_id)
person_name = await person_info_manager.get_value(person_id, "person_name") person_name = await person_info_manager.get_value(person_id, "person_name")
return f"{person_name}:{message_data.get('processed_plain_text')}" return f"{person_name}:{message_data.get('processed_plain_text')}"
@@ -486,10 +488,12 @@ class HeartFChatting:
# 存储reply action信息 # 存储reply action信息
person_info_manager = get_person_info_manager() person_info_manager = get_person_info_manager()
person_id = person_info_manager.get_person_id(
action_message.get("chat_info_platform", ""), # 获取平台信息优先使用chat_info_platform如果为空则使用user_platform
action_message.get("user_id", ""), platform = action_message.get("chat_info_platform") or action_message.get("user_platform") or self.chat_stream.platform
) user_id = action_message.get("user_id", "")
person_id = person_info_manager.get_person_id(platform, user_id)
person_name = await person_info_manager.get_value(person_id, "person_name") person_name = await person_info_manager.get_value(person_id, "person_name")
action_prompt_display = f"你对{person_name}进行了回复:{reply_text}" action_prompt_display = f"你对{person_name}进行了回复:{reply_text}"

View File

@@ -87,6 +87,10 @@ class PersonInfoManager:
@staticmethod @staticmethod
def get_person_id(platform: str, user_id: Union[int, str]) -> str: def get_person_id(platform: str, user_id: Union[int, str]) -> str:
"""获取唯一id""" """获取唯一id"""
# 检查platform是否为None或空
if platform is None:
platform = "unknown"
if "-" in platform: if "-" in platform:
platform = platform.split("-")[1] platform = platform.split("-")[1]

View File

@@ -85,14 +85,18 @@ class RelationshipManager:
# 遍历消息,构建映射 # 遍历消息,构建映射
for msg in user_messages: for msg in user_messages:
# 获取平台信息优先使用chat_info_platform如果为None则使用user_platform
platform = msg.get("chat_info_platform") or msg.get("user_platform", "unknown")
user_id = msg.get("user_id")
await person_info_manager.get_or_create_person( await person_info_manager.get_or_create_person(
platform=msg.get("chat_info_platform"), # type: ignore platform=platform, # type: ignore
user_id=msg.get("user_id"), # type: ignore user_id=user_id, # type: ignore
nickname=msg.get("user_nickname"), # type: ignore nickname=msg.get("user_nickname"), # type: ignore
user_cardname=msg.get("user_cardname"), # type: ignore user_cardname=msg.get("user_cardname"), # type: ignore
) )
replace_user_id: str = msg.get("user_id") # type: ignore replace_user_id: str = msg.get("user_id") # type: ignore
replace_platform: str = msg.get("chat_info_platform") # type: ignore replace_platform: str = platform # type: ignore
replace_person_id = PersonInfoManager.get_person_id(replace_platform, replace_user_id) replace_person_id = PersonInfoManager.get_person_id(replace_platform, replace_user_id)
replace_person_name = await person_info_manager.get_value(replace_person_id, "person_name") replace_person_name = await person_info_manager.get_value(replace_person_id, "person_name")