调整群成员逻辑

This commit is contained in:
liuwei
2025-05-07 16:39:35 +08:00
parent 22bc914df3
commit 0539e774d7

View File

@@ -360,21 +360,20 @@ class Robot(Job):
if chatroom_info: if chatroom_info:
# 保存群信息到数据库 # 保存群信息到数据库
self.contacts_db.save_chatroom_info(chatroom_info) self.contacts_db.save_chatroom_info(chatroom_info)
members = await self.ipad_bot.get_chatroom_member_list(group_id)
# 保存群成员信息 # 保存群成员信息
if "NewChatroomData" in chatroom_info and "ChatRoomMember" in chatroom_info["NewChatroomData"]: if members:
member_list = chatroom_info["NewChatroomData"]["ChatRoomMember"]
# 兼容逻辑已放到save_chatroom_member_simple内部 # 兼容逻辑已放到save_chatroom_member_simple内部
self.contacts_db.save_chatroom_member_simple(group_id, member_list) self.contacts_db.save_chatroom_member_simple(group_id, members)
self.LOG.info(f"member_list: {member_list}") self.LOG.info(f"member_list: {members}")
# 更新联系人缓存 # 更新联系人缓存
for member in member_list: for member in members:
wxid = member.get("UserName", "") wxid = member.get("UserName", "")
if isinstance(wxid, dict):
wxid = wxid.get("string", "")
nick_name = member.get("NickName", "") nick_name = member.get("NickName", "")
if isinstance(nick_name, dict): displayName = member.get("DisplayName", "")
nick_name = nick_name.get("string", "") #如果displayName不为空使用displayName
if displayName:
nick_name = displayName
if wxid: if wxid:
self.allContacts[wxid] = nick_name self.allContacts[wxid] = nick_name
@@ -541,26 +540,20 @@ class Robot(Job):
if chatroom_info.get("UserName", ""): if chatroom_info.get("UserName", ""):
# 保存群信息到数据库 # 保存群信息到数据库
self.contacts_db.save_chatroom_info(chatroom_info) self.contacts_db.save_chatroom_info(chatroom_info)
members = await self.ipad_bot.get_chatroom_member_list(group_id)
# 保存群成员信息 # 保存群成员信息
if "NewChatroomData" in chatroom_info and "ChatRoomMember" in chatroom_info["NewChatroomData"]: if members:
member_list = chatroom_info["NewChatroomData"]["ChatRoomMember"] # 兼容逻辑已放到save_chatroom_member_simple内部
self.contacts_db.save_chatroom_member_simple(group_id, member_list) self.contacts_db.save_chatroom_member_simple(group_id, members)
self.LOG.info(f"member_list: {members}")
# 更新联系人缓存 # 更新联系人缓存
for member in member_list: for member in members:
wxid = "" wxid = member.get("UserName", "")
if isinstance(member.get("UserName"), dict): nick_name = member.get("NickName", "")
wxid = member["UserName"].get("string", "") displayName = member.get("DisplayName", "")
else: #如果displayName不为空使用displayName
wxid = member.get("UserName", "") if displayName:
nick_name = displayName
nick_name = ""
if isinstance(member.get("NickName"), dict):
nick_name = member["NickName"].get("string", "")
else:
nick_name = member.get("NickName", "")
if wxid: if wxid:
self.allContacts[wxid] = nick_name self.allContacts[wxid] = nick_name