From a0dec399053ca80a5e906480fc9fef63f956db76 Mon Sep 17 00:00:00 2001 From: wangcham Date: Wed, 5 Nov 2025 03:54:33 +0000 Subject: [PATCH] fix: wecombot id --- libs/wecom_ai_bot_api/api.py | 12 +++++++++++- libs/wecom_ai_bot_api/wecombotevent.py | 16 +++++++++++++++- pkg/platform/sources/wecombot.py | 6 +++--- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/libs/wecom_ai_bot_api/api.py b/libs/wecom_ai_bot_api/api.py index 9568eab4..b20c6ed3 100644 --- a/libs/wecom_ai_bot_api/api.py +++ b/libs/wecom_ai_bot_api/api.py @@ -463,7 +463,17 @@ class WecomBotClient: base64 = await self.download_url_to_base64(picurl, self.EnCodingAESKey) message_data['picurl'] = base64 # 只保留第一个 image - message_data['userid'] = msg_json.get('from', {}).get('userid', '') + # Extract user information + from_info = msg_json.get('from', {}) + message_data['userid'] = from_info.get('userid', '') + message_data['username'] = from_info.get('alias', '') or from_info.get('name', '') or from_info.get('userid', '') + + # Extract chat/group information + if msg_json.get('chattype', '') == 'group': + message_data['chatid'] = msg_json.get('chatid', '') + # Try to get group name if available + message_data['chatname'] = msg_json.get('chatname', '') or msg_json.get('chatid', '') + message_data['msgid'] = msg_json.get('msgid', '') if msg_json.get('aibotid'): diff --git a/libs/wecom_ai_bot_api/wecombotevent.py b/libs/wecom_ai_bot_api/wecombotevent.py index f2edeac7..099c58bc 100644 --- a/libs/wecom_ai_bot_api/wecombotevent.py +++ b/libs/wecom_ai_bot_api/wecombotevent.py @@ -22,7 +22,21 @@ class WecomBotEvent(dict): """ 用户id """ - return self.get('from', {}).get('userid', '') + return self.get('from', {}).get('userid', '') or self.get('userid', '') + + @property + def username(self) -> str: + """ + 用户名称 + """ + return self.get('username', '') or self.get('from', {}).get('alias', '') or self.get('from', {}).get('name', '') or self.userid + + @property + def chatname(self) -> str: + """ + 群组名称 + """ + return self.get('chatname', '') or str(self.chatid) @property def content(self) -> str: diff --git a/pkg/platform/sources/wecombot.py b/pkg/platform/sources/wecombot.py index e5f2d1b5..13dd8e92 100644 --- a/pkg/platform/sources/wecombot.py +++ b/pkg/platform/sources/wecombot.py @@ -49,7 +49,7 @@ class WecomBotEventConverter(abstract_platform_adapter.AbstractEventConverter): return platform_events.FriendMessage( sender=platform_entities.Friend( id=event.userid, - nickname='', + nickname=event.username, remark='', ), message_chain=message_chain, @@ -61,10 +61,10 @@ class WecomBotEventConverter(abstract_platform_adapter.AbstractEventConverter): sender = platform_entities.GroupMember( id=event.userid, permission='MEMBER', - member_name=event.userid, + member_name=event.username, group=platform_entities.Group( id=str(event.chatid), - name='', + name=event.chatname, permission=platform_entities.Permission.Member, ), special_title='',