From 0f734e19fdcf35bbb65d6e0b5b370bbd5ae056fb Mon Sep 17 00:00:00 2001 From: LIghtJUNction Date: Fri, 27 Feb 2026 22:26:55 +0800 Subject: [PATCH] fix: import errors and port detection issue --- .../aiocqhttp/aiocqhttp_platform_adapter.py | 2 +- .../qqofficial_webhook/qo_webhook_server.py | 2 +- .../core/platform/sources/wecom/wecom_adapter.py | 2 +- astrbot/dashboard/server.py | 16 ++++++++++++---- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py b/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py index 2f720dd1c..45114382f 100644 --- a/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py +++ b/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py @@ -419,7 +419,7 @@ class AiocqhttpAdapter(Platform): def run(self) -> Awaitable[Any]: if not self.host or not self.port: logger.warning( - "aiocqhttp: 未配置 ws_reverse_host 或 ws_reverse_port,将使用默认值:http://[::]:6199", + "aiocqhttp: 未配置 ws_reverse_host 或 ws_reverse_port,将使用默认值:http://0.0.0.0:6199", ) self.host = "0.0.0.0" self.port = 6199 diff --git a/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py b/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py index e1c5d457a..5f35471ee 100644 --- a/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py +++ b/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py @@ -21,7 +21,7 @@ class QQOfficialWebhook: self.secret = config["secret"] self.port = config.get("port", 6196) self.is_sandbox = config.get("is_sandbox", False) - self.callback_server_host = config.get("callback_server_host", "::") + self.callback_server_host = config.get("callback_server_host", "0.0.0.0") if isinstance(self.port, str): self.port = int(self.port) diff --git a/astrbot/core/platform/sources/wecom/wecom_adapter.py b/astrbot/core/platform/sources/wecom/wecom_adapter.py index c73e15a08..4f3b6a9af 100644 --- a/astrbot/core/platform/sources/wecom/wecom_adapter.py +++ b/astrbot/core/platform/sources/wecom/wecom_adapter.py @@ -43,7 +43,7 @@ class WecomServer: def __init__(self, event_queue: asyncio.Queue, config: dict) -> None: self.server = quart.Quart(__name__) self.port = int(cast(str, config.get("port"))) - self.callback_server_host = config.get("callback_server_host", "::") + self.callback_server_host = config.get("callback_server_host", "0.0.0.0") self.server.add_url_rule( "/callback/command", view_func=self.verify, diff --git a/astrbot/dashboard/server.py b/astrbot/dashboard/server.py index e7fab8742..527e9c722 100644 --- a/astrbot/dashboard/server.py +++ b/astrbot/dashboard/server.py @@ -333,10 +333,18 @@ class AstrBotDashboard: def get_process_using_port(self, port: int) -> str: """获取占用端口的进程信息""" try: - for proc in psutil.process_iter(["pid", "name", "connections"]): - for conn in proc.info["connections"] or []: # type: ignore - if conn.laddr.port == port: - return f"PID: {proc.info['pid']}, Name: {proc.info['name']}" # type: ignore + for proc in psutil.process_iter(["pid", "name"]): + try: + connections = proc.net_connections() + for conn in connections: + if conn.laddr.port == port: + return f"PID: {proc.info['pid']}, Name: {proc.info['name']}" # type: ignore + except ( + psutil.NoSuchProcess, + psutil.AccessDenied, + psutil.ZombieProcess, + ): + pass except Exception as e: return f"获取进程信息失败: {e!s}" return "未知进程"