fix:修复注册顺序问题
Update person_info.py Update relationship_manager.py
This commit is contained in:
@@ -142,10 +142,7 @@ class HeartFCMessageReceiver:
|
|||||||
else:
|
else:
|
||||||
logger.info(f"[{mes_name}]{userinfo.user_nickname}:{processed_plain_text}[兴趣度:{interested_rate:.2f}]") # type: ignore
|
logger.info(f"[{mes_name}]{userinfo.user_nickname}:{processed_plain_text}[兴趣度:{interested_rate:.2f}]") # type: ignore
|
||||||
|
|
||||||
|
person = Person.register_person(platform=message.message_info.platform, user_id=message.message_info.user_info.user_id,nickname=userinfo.user_nickname)
|
||||||
# 4. 关系处理
|
|
||||||
if global_config.relationship.enable_relationship:
|
|
||||||
person = Person.register_person(platform=message.message_info.platform, user_id=message.message_info.user_info.user_id,nickname=userinfo.user_nickname)
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"消息处理失败: {e}")
|
logger.error(f"消息处理失败: {e}")
|
||||||
|
|||||||
@@ -640,6 +640,9 @@ def get_chat_type_and_target_info(chat_id: str) -> Tuple[bool, Optional[Dict]]:
|
|||||||
try:
|
try:
|
||||||
# Assume get_person_id is sync (as per original code), keep using to_thread
|
# Assume get_person_id is sync (as per original code), keep using to_thread
|
||||||
person = Person(platform=platform, user_id=user_id)
|
person = Person(platform=platform, user_id=user_id)
|
||||||
|
if not person.is_known:
|
||||||
|
logger.warning(f"用户 {user_info.user_nickname} 尚未认识")
|
||||||
|
return False, None
|
||||||
person_id = person.person_id
|
person_id = person.person_id
|
||||||
person_name = None
|
person_name = None
|
||||||
if person_id:
|
if person_id:
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ def get_person_id_by_person_name(person_name: str) -> str:
|
|||||||
|
|
||||||
def is_person_known(person_id: str = None,user_id: str = None,platform: str = None,person_name: str = None) -> bool:
|
def is_person_known(person_id: str = None,user_id: str = None,platform: str = None,person_name: str = None) -> bool:
|
||||||
if person_id:
|
if person_id:
|
||||||
person = PersonInfo.get_or_none(PersonInfo.person_id == person_id) is not None
|
person = PersonInfo.get_or_none(PersonInfo.person_id == person_id)
|
||||||
return person.is_known if person else False
|
return person.is_known if person else False
|
||||||
elif user_id and platform:
|
elif user_id and platform:
|
||||||
person_id = get_person_id(platform, user_id)
|
person_id = get_person_id(platform, user_id)
|
||||||
@@ -119,8 +119,13 @@ class Person:
|
|||||||
return person
|
return person
|
||||||
|
|
||||||
def __init__(self, platform: str = "", user_id: str = "",person_id: str = "",person_name: str = ""):
|
def __init__(self, platform: str = "", user_id: str = "",person_id: str = "",person_name: str = ""):
|
||||||
if not is_person_known(person_id=person_id):
|
if platform == global_config.bot.platform and user_id == global_config.bot.qq_account:
|
||||||
logger.warning(f"用户 {person_name} 尚未认识")
|
self.is_known = True
|
||||||
|
self.person_id = get_person_id(platform, user_id)
|
||||||
|
self.user_id = user_id
|
||||||
|
self.platform = platform
|
||||||
|
self.nickname = global_config.bot.nickname
|
||||||
|
self.person_name = global_config.bot.nickname
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
@@ -137,6 +142,11 @@ class Person:
|
|||||||
logger.error("Person 初始化失败,缺少必要参数")
|
logger.error("Person 初始化失败,缺少必要参数")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if not is_person_known(person_id=self.person_id):
|
||||||
|
self.is_known = False
|
||||||
|
logger.warning(f"用户 {platform}:{user_id}:{person_name}:{person_id} 尚未认识")
|
||||||
|
return
|
||||||
|
|
||||||
self.is_known = False
|
self.is_known = False
|
||||||
self.platform = platform
|
self.platform = platform
|
||||||
self.user_id = user_id
|
self.user_id = user_id
|
||||||
|
|||||||
@@ -355,6 +355,8 @@ class RelationshipManager:
|
|||||||
|
|
||||||
# 遍历消息,构建映射
|
# 遍历消息,构建映射
|
||||||
for msg in user_messages:
|
for msg in user_messages:
|
||||||
|
if msg.get("user_id") == "system":
|
||||||
|
continue
|
||||||
msg_person = Person(user_id=msg.get("user_id"), platform=msg.get("chat_info_platform"))
|
msg_person = Person(user_id=msg.get("user_id"), platform=msg.get("chat_info_platform"))
|
||||||
# 跳过机器人自己
|
# 跳过机器人自己
|
||||||
if msg_person.user_id == global_config.bot.qq_account:
|
if msg_person.user_id == global_config.bot.qq_account:
|
||||||
@@ -386,10 +388,10 @@ class RelationshipManager:
|
|||||||
|
|
||||||
print(name_mapping)
|
print(name_mapping)
|
||||||
|
|
||||||
person = await self.get_points(
|
await self.get_points(
|
||||||
readable_messages=readable_messages, name_mapping=name_mapping, timestamp=timestamp, person=person)
|
readable_messages=readable_messages, name_mapping=name_mapping, timestamp=timestamp, person=person)
|
||||||
person = await self.get_attitude_to_me(readable_messages=readable_messages, timestamp=timestamp, person=person)
|
await self.get_attitude_to_me(readable_messages=readable_messages, timestamp=timestamp, person=person)
|
||||||
person = await self.get_neuroticism(readable_messages=readable_messages, timestamp=timestamp, person=person)
|
await self.get_neuroticism(readable_messages=readable_messages, timestamp=timestamp, person=person)
|
||||||
|
|
||||||
person.know_times = know_times + 1
|
person.know_times = know_times + 1
|
||||||
person.last_know = timestamp
|
person.last_know = timestamp
|
||||||
|
|||||||
Reference in New Issue
Block a user