From 96bff378271cfe3dd8cb3c8a5cc010177833bc25 Mon Sep 17 00:00:00 2001 From: tt-P607 <68868379+tt-P607@users.noreply.github.com> Date: Sat, 11 Oct 2025 23:24:16 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"fix(napcat):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=A4=84=E7=90=86=E5=92=8C=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E9=80=BB=E8=BE=91"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 3737c6d4583ed562db6b15203031af4ffd0c5c19. --- .../built_in/napcat_adapter_plugin/plugin.py | 38 +++++++------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/src/plugins/built_in/napcat_adapter_plugin/plugin.py b/src/plugins/built_in/napcat_adapter_plugin/plugin.py index 21013aa69..88afc4e26 100644 --- a/src/plugins/built_in/napcat_adapter_plugin/plugin.py +++ b/src/plugins/built_in/napcat_adapter_plugin/plugin.py @@ -40,23 +40,13 @@ async def message_recv(server_connection: Server.ServerConnection): asyncio.create_task(notice_handler.set_server_connection(server_connection)) await send_handler.set_server_connection(server_connection) async for raw_message in server_connection: - message_str = "" + # 只在debug模式下记录原始消息 + if logger.level <= 10: # DEBUG level + logger.debug(f"{raw_message[:1500]}..." if (len(raw_message) > 1500) else raw_message) + decoded_raw_message: dict = json.loads(raw_message) try: - # 确保消息是字符串 - if isinstance(raw_message, bytes): - message_str = raw_message.decode('utf-8', errors='ignore') - elif isinstance(raw_message, str): - message_str = raw_message - else: - logger.warning(f"接收到未知类型的消息: {type(raw_message)}") - continue - - # 只在debug模式下记录原始消息 - if logger.level <= 10: # DEBUG level - logger.debug(f"{message_str[:1500]}..." if (len(message_str) > 1500) else message_str) - - # 解析消息 - decoded_raw_message: dict = json.loads(message_str) + # 首先尝试解析原始消息 + decoded_raw_message: dict = json.loads(raw_message) # 检查是否是切片消息 (来自 MMC) if chunker.is_chunk_message(decoded_raw_message): @@ -81,10 +71,10 @@ async def message_recv(server_connection: Server.ServerConnection): except json.JSONDecodeError as e: logger.error(f"消息解析失败: {e}") - logger.debug(f"原始消息: {message_str[:500]}...") + logger.debug(f"原始消息: {raw_message[:500]}...") except Exception as e: logger.error(f"处理消息时出错: {e}") - logger.debug(f"原始消息: {message_str[:500]}...") + logger.debug(f"原始消息: {raw_message[:500]}...") async def message_process(): @@ -239,7 +229,7 @@ class LauchNapcatAdapterHandler(BaseEventHandler): logger.info("开始启动Napcat Adapter") # 创建单独的异步任务,防止阻塞主线程 - asyncio.create_task(self._start_mofox_bot_connection()) + asyncio.create_task(self._start_maibot_connection()) asyncio.create_task(napcat_server(self.plugin_config)) asyncio.create_task(message_process()) asyncio.create_task(check_timeout_response()) @@ -256,7 +246,7 @@ class LauchNapcatAdapterHandler(BaseEventHandler): try: logger.info(f"尝试连接MoFox-Bot (第{attempt + 1}次)") await mmc_start_com(self.plugin_config) - setattr(message_send_instance, 'mofox_bot_router', router) + message_send_instance.mofox_bot_router = router logger.info("MoFox-Bot router连接已建立") return except Exception as e: @@ -414,16 +404,16 @@ class NapcatAdapterPlugin(BasePlugin): def register_events(self): # 注册事件 for e in event_types.NapcatEvent.ON_RECEIVED: - event_manager.register_event(e.value, allowed_triggers=[self.plugin_name]) + event_manager.register_event(e, allowed_triggers=[self.plugin_name]) for e in event_types.NapcatEvent.ACCOUNT: - event_manager.register_event(e.value, allowed_subscribers=[f"{e.value}_handler"]) + event_manager.register_event(e, allowed_subscribers=[f"{e.value}_handler"]) for e in event_types.NapcatEvent.GROUP: - event_manager.register_event(e.value, allowed_subscribers=[f"{e.value}_handler"]) + event_manager.register_event(e, allowed_subscribers=[f"{e.value}_handler"]) for e in event_types.NapcatEvent.MESSAGE: - event_manager.register_event(e.value, allowed_subscribers=[f"{e.value}_handler"]) + event_manager.register_event(e, allowed_subscribers=[f"{e.value}_handler"]) def get_plugin_components(self): self.register_events()