简化内容。
This commit is contained in:
@@ -156,8 +156,7 @@ class GroupMemberChangePlugin(MessagePluginInterface):
|
|||||||
# 处理退群成员
|
# 处理退群成员
|
||||||
for wxid in left_members:
|
for wxid in left_members:
|
||||||
nickname = previous_members[wxid]
|
nickname = previous_members[wxid]
|
||||||
member_info = self._get_member_info(wxid, nickname)
|
self._send_leave_notification(group_id, wxid, nickname)
|
||||||
self._send_leave_notification(group_id, member_info)
|
|
||||||
|
|
||||||
# 处理新加入成员
|
# 处理新加入成员
|
||||||
for wxid in joined_members:
|
for wxid in joined_members:
|
||||||
@@ -170,63 +169,17 @@ class GroupMemberChangePlugin(MessagePluginInterface):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.LOG.error(f"检查群 {group_id} 成员变化时发生错误: {e}", exc_info=True)
|
self.LOG.error(f"检查群 {group_id} 成员变化时发生错误: {e}", exc_info=True)
|
||||||
|
|
||||||
def _get_member_info(self, wxid: str, nickname: str) -> Dict[str, str]:
|
def _send_leave_notification(self, group_id: str, wxid: str, nickname: 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]):
|
|
||||||
"""发送成员退群通知"""
|
"""发送成员退群通知"""
|
||||||
now_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
now_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||||
|
|
||||||
message = f"""【退群提醒】
|
message = f"""【退群提醒】
|
||||||
用户: {member_info['nickname']} ({member_info['gender']})
|
用户: {nickname}
|
||||||
群备注: {member_info['remark']}
|
微信号: {wxid}
|
||||||
微信号: {member_info['wxid']}
|
退群时间: {now_time}
|
||||||
地区: {member_info['region']}
|
|
||||||
退群时间: {now_time}
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.wcf.send_text(message, group_id)
|
self.wcf.send_text(message, group_id)
|
||||||
self.LOG.info(f"已发送退群通知: {member_info['nickname']} 退出群 {group_id}")
|
self.LOG.info(f"已发送退群通知: {nickname} 退出群 {group_id}")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def commands(self) -> List[str]:
|
def commands(self) -> List[str]:
|
||||||
|
|||||||
Reference in New Issue
Block a user