From a0d0a71b632371bd4121a204da02d1c0c9c81e07 Mon Sep 17 00:00:00 2001 From: tt-P607 <68868379+tt-P607@users.noreply.github.com> Date: Thu, 27 Nov 2025 21:34:11 +0800 Subject: [PATCH] =?UTF-8?q?feat(napcat):=20=E6=94=AF=E6=8C=81=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E5=92=8C=E5=8F=8D=E5=90=91=20WebSocket=20=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Napcat 适配器现在支持“直接”(客户端)和“反向”(服务器)两种 WebSocket 连接模式。可以通过插件配置中的 `napcat_server.mode` 设置进行配置。 此外,此次提交修复了群组和私信消息过滤中的一个错误,即配置中的数字 ID 未能正确与消息中的字符串 ID 进行比较。现在所有列表 ID 都会被转换为字符串,以确保过滤可靠。 --- src/plugins/built_in/napcat_adapter/plugin.py | 5 ++++- .../napcat_adapter/src/handlers/to_core/message_handler.py | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/plugins/built_in/napcat_adapter/plugin.py b/src/plugins/built_in/napcat_adapter/plugin.py index b1737f650..9b8d14376 100644 --- a/src/plugins/built_in/napcat_adapter/plugin.py +++ b/src/plugins/built_in/napcat_adapter/plugin.py @@ -50,6 +50,8 @@ class NapcatAdapter(BaseAdapter): host = config_api.get_plugin_config(plugin.config, "napcat_server.host", "localhost") port = config_api.get_plugin_config(plugin.config, "napcat_server.port", 8095) access_token = config_api.get_plugin_config(plugin.config, "napcat_server.access_token", "") + mode_str = config_api.get_plugin_config(plugin.config, "napcat_server.mode", "reverse") + ws_mode = "client" if mode_str == "direct" else "server" ws_url = f"ws://{host}:{port}" headers = {} @@ -58,10 +60,11 @@ class NapcatAdapter(BaseAdapter): else: ws_url = "ws://127.0.0.1:8095" headers = {} + ws_mode = "server" # 配置 WebSocket 传输 transport = WebSocketAdapterOptions( - mode="server", + mode=ws_mode, url=ws_url, headers=headers if headers else None, ) diff --git a/src/plugins/built_in/napcat_adapter/src/handlers/to_core/message_handler.py b/src/plugins/built_in/napcat_adapter/src/handlers/to_core/message_handler.py index 9fe87f68a..0cc74681b 100644 --- a/src/plugins/built_in/napcat_adapter/src/handlers/to_core/message_handler.py +++ b/src/plugins/built_in/napcat_adapter/src/handlers/to_core/message_handler.py @@ -79,7 +79,7 @@ class MessageHandler: # 获取群聊配置 group_list_type = features_config.get("group_list_type", "blacklist") - group_list = features_config.get("group_list", []) + group_list = [str(item) for item in features_config.get("group_list", [])] if group_list_type == "blacklist": # 黑名单模式:如果在黑名单中就过滤 @@ -96,7 +96,7 @@ class MessageHandler: elif message_type == "private": # 获取私聊配置 private_list_type = features_config.get("private_list_type", "blacklist") - private_list = features_config.get("private_list", []) + private_list = [str(item) for item in features_config.get("private_list", [])] if private_list_type == "blacklist": # 黑名单模式:如果在黑名单中就过滤