diff --git a/pkg/platform/sources/gewechat.py b/pkg/platform/sources/gewechat.py index 869e05c6..0fb00fa9 100644 --- a/pkg/platform/sources/gewechat.py +++ b/pkg/platform/sources/gewechat.py @@ -47,6 +47,8 @@ class GewechatMessageConverter(adapter.MessageConverter): if not component.url: pass content_list.append({"type": "image", "image": component.url}) + elif isinstance(component, platform_message.MiniPrograms): + content_list.append({"type": 'MiniPrograms', 'xml_data': component.xml_data, 'image_url': component.image_url}) elif isinstance(component, platform_message.Voice): @@ -361,6 +363,8 @@ class GeWeChatAdapter(adapter.MessagePlatformAdapter): elif msg['type'] == 'image': self.bot.post_image(app_id=self.config['app_id'], to_wxid=target_id, img_url=msg["image"]) + elif msg['type'] == 'MiniPrograms': + self.bot.forward_mini_app(app_id=self.config['app_id'], to_wxid=target_id, xml=msg['xml_data'], cover_img_url=msg['image_url']) diff --git a/pkg/platform/types/message.py b/pkg/platform/types/message.py index b99a28b3..ad519481 100644 --- a/pkg/platform/types/message.py +++ b/pkg/platform/types/message.py @@ -643,6 +643,14 @@ class Unknown(MessageComponent): text: str """文本。""" +class MiniPrograms(MessageComponent): + """小程序?""" + type: str = 'MiniPrograms' + """xml数据""" + xml_data: str + """首页图片""" + image_url: typing.Optional[str] = None + class Voice(MessageComponent): """语音。"""