From 6d5d2786240ee8f4e03eb8ede4a48097a7931b24 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Wed, 19 Feb 2025 16:42:30 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8D=20g?= =?UTF-8?q?ewechat=20=E5=BE=AE=E4=BF=A1=E7=BE=A4=E8=81=8A=E6=83=85?= =?UTF-8?q?=E5=86=B5=E4=B8=8B=E5=8F=AF=E8=83=BD=E5=AF=BC=E8=87=B4=20unknow?= =?UTF-8?q?n=20=E7=9A=84=E9=97=AE=E9=A2=98=20#537?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- astrbot/core/platform/sources/gewechat/client.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/astrbot/core/platform/sources/gewechat/client.py b/astrbot/core/platform/sources/gewechat/client.py index 56f02bd2a..1655a9894 100644 --- a/astrbot/core/platform/sources/gewechat/client.py +++ b/astrbot/core/platform/sources/gewechat/client.py @@ -51,6 +51,8 @@ class SimpleGewechatClient(): self.event_queue = event_queue self.multimedia_downloader = None + + self.userrealnames = {} # wxid: user real name async def get_token_id(self): async with aiohttp.ClientSession() as session: @@ -118,10 +120,16 @@ class SimpleGewechatClient(): if at_me: abm.message.insert(0, At(qq=abm.self_id)) - user_real_name = d.get('PushContent', 'unknown : ').split(' : ')[0] \ - .replace('在群聊中@了你', '') \ - .replace('在群聊中发了一段语音', '') \ - .replace('在群聊中发了一张图片', '') # 真实昵称 + if user_id in self.userrealnames: + user_real_name = self.userrealnames[user_id] + else: + user_real_name = d.get('PushContent', 'unknown : ').split(' : ')[0] \ + .replace('在群聊中@了你', '') \ + .replace('在群聊中发了一段语音', '') \ + .replace('在群聊中发了一张图片', '') # 真实昵称 + if user_real_name != 'unknown': + self.userrealnames[user_id] = user_real_name + abm.sender = MessageMember(user_id, user_real_name) abm.raw_message = d abm.message_str = ""