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