优化初始化流程,启动时不同步通讯录,只是从数据库里面提取。

This commit is contained in:
liuwei
2025-04-22 15:56:07 +08:00
parent 18843bdd36
commit e0a0b28807
3 changed files with 68 additions and 30 deletions

View File

@@ -404,7 +404,19 @@ class Robot(Job):
def get_all_contacts(self) -> dict:
"""获取所有联系人信息并返回字典格式 {wxid: nickname}"""
# 从数据库提取信息,如果数据库没内容,则完成第一次初始化。
try:
# 先尝试从数据库获取联系人信息
contacts_dict = self.contacts_db.get_all_contacts()
# 如果数据库中有联系人信息,直接返回
if contacts_dict:
self.LOG.info(f"从数据库成功获取了 {len(contacts_dict)} 个联系人信息")
return contacts_dict
# 数据库中没有联系人信息,需要初始化
self.LOG.info("数据库中没有联系人信息,开始初始化...")
contacts_dict = {}
# 获取所有联系人列表
response = self.client.fetch_contacts_list(self.app_id)
@@ -421,7 +433,7 @@ class Robot(Job):
friends = contact_data.get("friends", [])
for wxid in friends:
contacts_dict[wxid] = wxid # 默认使用wxid作为昵称
# 处理群聊列表
chatrooms = contact_data.get("chatrooms", [])
for chatroom_id in chatrooms: