From 587bd00a191f2c3f882e92020bdc6f20f9159337 Mon Sep 17 00:00:00 2001 From: xiamuceer Date: Fri, 16 May 2025 14:28:19 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E6=96=B0=E5=A2=9Esend=5Fby=5Fsession?= =?UTF-8?q?=E6=96=B9=E6=B3=95=EF=BC=8C=E6=8E=A5=E5=8F=97=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=9D=A5=E8=87=AAAstrBot=E6=A0=B8=E5=BF=83=E7=9A=84=E6=B6=88?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wechatpadpro/wechatpadpro_adapter.py | 29 +++++++++++++++++++ .../wechatpadpro_message_event.py | 3 +- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py b/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py index eaa8afde9..9719299c5 100644 --- a/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py +++ b/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py @@ -10,12 +10,14 @@ import websockets from astrbot import logger from astrbot.api.message_components import Plain from astrbot.api.platform import Platform, PlatformMetadata +from astrbot.core.message.message_event_result import MessageChain from astrbot.core.platform.astrbot_message import ( AstrBotMessage, MessageMember, MessageType, ) from astrbot.core.utils.astrbot_path import get_astrbot_data_path +from astrbot.core.platform.astr_message_event import MessageSesion from ...register import register_platform_adapter from .wechatpadpro_message_event import WeChatPadProMessageEvent @@ -552,3 +554,30 @@ class WeChatPadProAdapter(Platform): 得到一个平台的元数据。 """ return self.metadata + + async def send_by_session( + self, session: MessageSesion, message_chain: MessageChain + ): + # 创建一个临时的 AstrBotMessage 实例,用于传递会话信息 + dummy_message_obj = AstrBotMessage() + dummy_message_obj.session_id = session.session_id + # 根据 session_id 判断消息类型 + if "@chatroom" in session.session_id: + dummy_message_obj.type = MessageType.GROUP_MESSAGE + dummy_message_obj.group_id = session.session_id + dummy_message_obj.sender = MessageMember(user_id="", nickname="") + else: + dummy_message_obj.type = MessageType.FRIEND_MESSAGE + dummy_message_obj.group_id = "" + dummy_message_obj.sender = MessageMember(user_id="", nickname="") + # logger.info(f"会话消息:{session}") + # logger.info(f"临时消息结构:{dummy_message_obj}") + sending_event = WeChatPadProMessageEvent( + message_str="", + message_obj=dummy_message_obj, + platform_meta=self.meta(), + session_id=session.session_id, + adapter=self, + ) + # 调用实例方法 send + await sending_event.send(message_chain) \ No newline at end of file diff --git a/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py b/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py index 2f87f367d..04bb02936 100644 --- a/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py +++ b/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py @@ -24,7 +24,6 @@ class WeChatPadProMessageEvent(AstrMessageEvent): message_obj: AstrBotMessage, platform_meta: PlatformMetadata, session_id: str, - # 添加平台特定的参数,例如适配器实例 adapter: "WeChatPadProAdapter", # 传递适配器实例 ): super().__init__(message_str, message_obj, platform_meta, session_id) @@ -69,7 +68,7 @@ class WeChatPadProMessageEvent(AstrMessageEvent): self.message_obj.sender.nickname or self.message_obj.sender.user_id ) message_text = f"@{mention_text} {text}" - logger.info(f"已添加 @ 信息: {message_text}") + # logger.info(f"已添加 @ 信息: {message_text}") else: message_text = text payload = {