diff --git a/src/recv_handler/message_sending.py b/src/recv_handler/message_sending.py index 0c6a732..e40ed99 100644 --- a/src/recv_handler/message_sending.py +++ b/src/recv_handler/message_sending.py @@ -1,3 +1,4 @@ +from typing import Dict from src.logger import logger from maim_message import MessageBase, Router @@ -26,6 +27,18 @@ class MessageSending: except Exception as e: logger.error(f"发送消息失败: {str(e)}") logger.error("请检查与MaiBot之间的连接") + + async def send_custom_message(self, custom_message: Dict, platform: str, message_type: str) -> bool: + """ + 发送自定义消息 + """ + try: + await self.maibot_router.send_custom_message(platform=platform, message_type_name=message_type, message=custom_message) + return True + except Exception as e: + logger.error(f"发送自定义消息失败: {str(e)}") + logger.error("请检查与MaiBot之间的连接") + return False message_send_instance = MessageSending() diff --git a/src/send_handler/nc_sending.py b/src/send_handler/nc_sending.py index e9f45ca..bb3b65e 100644 --- a/src/send_handler/nc_sending.py +++ b/src/send_handler/nc_sending.py @@ -1,7 +1,7 @@ import json import uuid import websockets as Server -from maim_message import MessageBase, Seg +from maim_message import MessageBase from src.response_pool import get_response from src.logger import logger @@ -29,21 +29,33 @@ class NCMessageSender: return response async def message_sent_back(self, message_base: MessageBase, qq_message_id: str) -> None: - # 修改 additional_config,添加 echo 字段 - if message_base.message_info.additional_config is None: - message_base.message_info.additional_config = {} + # # 修改 additional_config,添加 echo 字段 + # if message_base.message_info.additional_config is None: + # message_base.message_info.additional_config = {} - message_base.message_info.additional_config["echo"] = True + # message_base.message_info.additional_config["echo"] = True - # 获取原始的 mmc_message_id + # # 获取原始的 mmc_message_id + # mmc_message_id = message_base.message_info.message_id + + # # 修改 message_segment 为 notify 类型 + # message_base.message_segment = Seg( + # type="notify", data={"sub_type": "echo", "echo": mmc_message_id, "actual_id": qq_message_id} + # ) + # await message_send_instance.message_send(message_base) + # logger.debug("已回送消息ID") + # return + platform = message_base.message_info.platform mmc_message_id = message_base.message_info.message_id - - # 修改 message_segment 为 notify 类型 - message_base.message_segment = Seg( - type="notify", data={"sub_type": "echo", "echo": mmc_message_id, "actual_id": qq_message_id} - ) - await message_send_instance.message_send(message_base) - logger.debug("已回送消息ID") - return + echo_data = { + "type": "echo", + "echo": mmc_message_id, + "actual_id": qq_message_id, + } + success = await message_send_instance.send_custom_message(echo_data, platform, "message_id_echo") + if success: + logger.debug("已回送消息ID") + else: + logger.error("回送消息ID失败") nc_message_sender = NCMessageSender() \ No newline at end of file