简化内容。

This commit is contained in:
liuwei
2025-03-20 16:11:06 +08:00
parent eec3342c85
commit 717ac4cbf0

View File

@@ -156,8 +156,7 @@ class GroupMemberChangePlugin(MessagePluginInterface):
# 处理退群成员
for wxid in left_members:
nickname = previous_members[wxid]
member_info = self._get_member_info(wxid, nickname)
self._send_leave_notification(group_id, member_info)
self._send_leave_notification(group_id, wxid, nickname)
# 处理新加入成员
for wxid in joined_members:
@@ -170,63 +169,17 @@ class GroupMemberChangePlugin(MessagePluginInterface):
except Exception as e:
self.LOG.error(f"检查群 {group_id} 成员变化时发生错误: {e}", exc_info=True)
def _get_member_info(self, wxid: str, nickname: str) -> Dict[str, str]:
"""获取成员详细信息"""
try:
# 尝试获取成员详细信息
member_info = {
"wxid": wxid,
"nickname": nickname,
"remark": "",
"gender": "未知",
"region": "未知"
}
# 尝试获取用户详情
user_info = self.wcf.get_user_info(wxid)
if user_info:
member_info["remark"] = user_info.get("remark", "")
# 性别转换
gender_code = user_info.get("gender", 0)
if gender_code == 1:
member_info["gender"] = ""
elif gender_code == 2:
member_info["gender"] = ""
# 地区信息
country = user_info.get("country", "")
province = user_info.get("province", "")
city = user_info.get("city", "")
if country or province or city:
member_info["region"] = f"{country} {province} {city}".strip()
return member_info
except Exception as e:
self.LOG.error(f"获取成员 {wxid} 信息时发生错误: {e}")
return {
"wxid": wxid,
"nickname": nickname,
"remark": "",
"gender": "未知",
"region": "未知"
}
def _send_leave_notification(self, group_id: str, member_info: Dict[str, str]):
def _send_leave_notification(self, group_id: str, wxid: str, nickname: str):
"""发送成员退群通知"""
now_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
message = f"""【退群提醒】
用户: {member_info['nickname']} ({member_info['gender']})
群备注: {member_info['remark']}
微信号: {member_info['wxid']}
地区: {member_info['region']}
退群时间: {now_time}
用户: {nickname}
微信号: {wxid}
退群时间: {now_time}
"""
self.wcf.send_text(message, group_id)
self.LOG.info(f"已发送退群通知: {member_info['nickname']} 退出群 {group_id}")
self.LOG.info(f"已发送退群通知: {nickname} 退出群 {group_id}")
@property
def commands(self) -> List[str]: