diff --git a/pkg/platform/sources/gewechat.py b/pkg/platform/sources/gewechat.py index 5227a52d..a7039e95 100644 --- a/pkg/platform/sources/gewechat.py +++ b/pkg/platform/sources/gewechat.py @@ -25,6 +25,7 @@ from ..types import message as platform_message from ..types import events as platform_events from ..types import entities as platform_entities from ...utils import image +import xml.etree.ElementTree as ET class GewechatMessageConverter(adapter.MessageConverter): @@ -74,6 +75,7 @@ class GewechatMessageConverter(adapter.MessageConverter): if len(line_split) > 0 and regex.match(line_split[0]): message["Data"]["Content"]["string"] = "\n".join(line_split[1:]) + # 正则表达式模式,匹配'@'后跟任意数量的非空白字符 pattern = r'@\S+' at_string = f"@{bot_account_id}" @@ -127,17 +129,77 @@ class GewechatMessageConverter(adapter.MessageConverter): # 支持微信聊天记录的消息类型,将 XML 内容转换为 MessageChain 传递 try: content = message["Data"]["Content"]["string"] + # 有三种可能的消息结构weid开头,私聊直接和直接 + if content.startswith('wxid'): + xml_list = content.split('\n')[2:] + xml_data = '\n'.join(xml_list) + elif content.startswith('