echo消息处理

pull/61/head
UnCLAS-Prommer 2025-09-14 16:19:06 +08:00
parent ca27153fe6
commit df5a874a60
No known key found for this signature in database
2 changed files with 39 additions and 14 deletions

View File

@ -1,3 +1,4 @@
from typing import Dict
from src.logger import logger from src.logger import logger
from maim_message import MessageBase, Router from maim_message import MessageBase, Router
@ -26,6 +27,18 @@ class MessageSending:
except Exception as e: except Exception as e:
logger.error(f"发送消息失败: {str(e)}") logger.error(f"发送消息失败: {str(e)}")
logger.error("请检查与MaiBot之间的连接") 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() message_send_instance = MessageSending()

View File

@ -1,7 +1,7 @@
import json import json
import uuid import uuid
import websockets as Server import websockets as Server
from maim_message import MessageBase, Seg from maim_message import MessageBase
from src.response_pool import get_response from src.response_pool import get_response
from src.logger import logger from src.logger import logger
@ -29,21 +29,33 @@ class NCMessageSender:
return response return response
async def message_sent_back(self, message_base: MessageBase, qq_message_id: str) -> None: async def message_sent_back(self, message_base: MessageBase, qq_message_id: str) -> None:
# 修改 additional_config添加 echo 字段 # # 修改 additional_config添加 echo 字段
if message_base.message_info.additional_config is None: # if message_base.message_info.additional_config is None:
message_base.message_info.additional_config = {} # 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 mmc_message_id = message_base.message_info.message_id
echo_data = {
# 修改 message_segment 为 notify 类型 "type": "echo",
message_base.message_segment = Seg( "echo": mmc_message_id,
type="notify", data={"sub_type": "echo", "echo": mmc_message_id, "actual_id": qq_message_id} "actual_id": qq_message_id,
) }
await message_send_instance.message_send(message_base) success = await message_send_instance.send_custom_message(echo_data, platform, "message_id_echo")
logger.debug("已回送消息ID") if success:
return logger.debug("已回送消息ID")
else:
logger.error("回送消息ID失败")
nc_message_sender = NCMessageSender() nc_message_sender = NCMessageSender()