diff --git a/plugins/hello_world_plugin/plugin.py b/plugins/hello_world_plugin/plugin.py index ff59dbe7..072dcb9a 100644 --- a/plugins/hello_world_plugin/plugin.py +++ b/plugins/hello_world_plugin/plugin.py @@ -165,8 +165,6 @@ class ForwardMessages(BaseEventHandler): self.messages: List[str] = [] async def execute(self, message: MaiMessages | None) -> Tuple[bool, bool, None, None, None]: - if self.get_config("print_message.enabled", False): - return True, True, None, None, None if not message: return True, True, None, None, None stream_id = message.stream_id or "" @@ -194,7 +192,7 @@ class HelloWorldPlugin(BasePlugin): # 插件基本信息 plugin_name: str = "hello_world_plugin" # 内部标识符 - enable_plugin: bool = True + enable_plugin: bool = False dependencies: List[str] = [] # 插件依赖列表 python_dependencies: List[str] = [] # Python包依赖列表 config_file_name: str = "config.toml" # 配置文件名 diff --git a/src/chat/message_receive/message.py b/src/chat/message_receive/message.py index 8af56605..b152342a 100644 --- a/src/chat/message_receive/message.py +++ b/src/chat/message_receive/message.py @@ -8,6 +8,7 @@ from typing import Optional, Any, List from maim_message import Seg, UserInfo, BaseMessageInfo, MessageBase from src.common.logger import get_logger +from src.config.config import global_config from src.chat.utils.utils_image import get_image_manager from src.chat.utils.utils_voice import get_voice_text from .chat_stream import ChatStream @@ -79,6 +80,14 @@ class Message(MessageBase): if processed: segments_text.append(processed) return " ".join(segments_text) + elif segment.type == "forward": + segments_text = [] + for node_dict in segment.data: + message = MessageBase.from_dict(node_dict) # type: ignore + processed_text = await self._process_message_segments(message.message_segment) + if processed_text: + segments_text.append(f"{global_config.bot.nickname}: {processed_text}") + return "[合并消息]: " + "\n".join(segments_text) else: # 处理单个消息段 return await self._process_single_segment(segment) # type: ignore diff --git a/src/chat/message_receive/storage.py b/src/chat/message_receive/storage.py index a60bd24c..2abf4ce2 100644 --- a/src/chat/message_receive/storage.py +++ b/src/chat/message_receive/storage.py @@ -33,7 +33,6 @@ class MessageStorage: async def store_message(message: Union[MessageSending, MessageRecv], chat_stream: ChatStream) -> None: """存储消息到数据库""" try: - # 莫越权 救世啊 pattern = r".*?|.*?|.*?" # print(message) diff --git a/src/plugin_system/apis/send_api.py b/src/plugin_system/apis/send_api.py index f57dd7fd..6a43b586 100644 --- a/src/plugin_system/apis/send_api.py +++ b/src/plugin_system/apis/send_api.py @@ -310,6 +310,7 @@ async def command_to_stream( display_message=display_message, typing=False, storage_message=storage_message, + set_reply=False, ) diff --git a/src/plugin_system/base/base_action.py b/src/plugin_system/base/base_action.py index 5b25511f..e48181e2 100644 --- a/src/plugin_system/base/base_action.py +++ b/src/plugin_system/base/base_action.py @@ -397,6 +397,8 @@ class BaseAction(ABC): reply_set=reply_set, stream_id=self.chat_id, storage_message=storage_message, + set_reply=False, + reply_message=None, ) async def send_voice(self, audio_base64: str) -> bool: diff --git a/src/plugin_system/base/base_command.py b/src/plugin_system/base/base_command.py index 252b3c0b..4b098869 100644 --- a/src/plugin_system/base/base_command.py +++ b/src/plugin_system/base/base_command.py @@ -320,6 +320,8 @@ class BaseCommand(ABC): reply_set=reply_set, stream_id=chat_stream.stream_id, storage_message=storage_message, + set_reply=False, + reply_message=None, ) async def send_custom( diff --git a/src/plugin_system/base/base_events_handler.py b/src/plugin_system/base/base_events_handler.py index bb8391ca..22fe0369 100644 --- a/src/plugin_system/base/base_events_handler.py +++ b/src/plugin_system/base/base_events_handler.py @@ -377,4 +377,6 @@ class BaseEventHandler(ABC): reply_set=reply_set, stream_id=stream_id, storage_message=storage_message, + set_reply=False, + reply_message=None, ) diff --git a/src/plugin_system/core/events_manager.py b/src/plugin_system/core/events_manager.py index ed85e0f1..beac2ca6 100644 --- a/src/plugin_system/core/events_manager.py +++ b/src/plugin_system/core/events_manager.py @@ -2,7 +2,7 @@ import asyncio import contextlib from typing import List, Dict, Optional, Type, Tuple, TYPE_CHECKING -from src.chat.message_receive.message import MessageRecv +from src.chat.message_receive.message import MessageRecv, MessageSending from src.chat.message_receive.chat_stream import get_chat_manager from src.common.logger import get_logger from src.plugin_system.base.component_types import EventType, EventHandlerInfo, MaiMessages, CustomEventHandlerResult @@ -66,7 +66,7 @@ class EventsManager: async def handle_mai_events( self, event_type: EventType, - message: Optional[MessageRecv] = None, + message: Optional[MessageRecv | MessageSending] = None, llm_prompt: Optional[str] = None, llm_response: Optional["LLMGenerationDataModel"] = None, stream_id: Optional[str] = None, @@ -206,7 +206,7 @@ class EventsManager: def _transform_event_message( self, - message: MessageRecv, + message: MessageRecv | MessageSending, llm_prompt: Optional[str] = None, llm_response: Optional["LLMGenerationDataModel"] = None, ) -> MaiMessages: @@ -295,7 +295,7 @@ class EventsManager: def _prepare_message( self, event_type: EventType, - message: Optional[MessageRecv] = None, + message: Optional[MessageRecv | MessageSending] = None, llm_prompt: Optional[str] = None, llm_response: Optional["LLMGenerationDataModel"] = None, stream_id: Optional[str] = None,