From 50cf2630760e4cf71bb6852e48c90c1663f8cc16 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 16 Aug 2025 16:01:36 +0000 Subject: [PATCH] Implement CLI Docker compatibility fix and login-info command Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com> --- astrbot.lock | 0 astrbot/cli/commands/cmd_conf.py | 40 ++++++++++++++++++++++++++++++++ astrbot/cli/utils/basic.py | 8 ++++++- 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 astrbot.lock diff --git a/astrbot.lock b/astrbot.lock new file mode 100644 index 00000000..e69de29b diff --git a/astrbot/cli/commands/cmd_conf.py b/astrbot/cli/commands/cmd_conf.py index fea654f2..11edb169 100644 --- a/astrbot/cli/commands/cmd_conf.py +++ b/astrbot/cli/commands/cmd_conf.py @@ -139,6 +139,14 @@ def conf(): - dashboard.password: Dashboard 密码 - callback_api_base: 回调接口基址 + + 可用子命令: + + - set: 设置配置项值 + + - get: 获取配置项值 + + - login-info: 显示 Web 管理面板登录信息 """ pass @@ -204,3 +212,35 @@ def get_config(key: str = None): click.echo(f" {key}: {value}") except (KeyError, TypeError): pass + + +@conf.command(name="login-info") +def get_login_info(): + """显示 Web 管理面板的登录信息""" + config = _load_config() + + try: + username = _get_nested_item(config, "dashboard.username") + # 注意:我们不显示实际的MD5哈希密码,而是提示用户如何重置 + click.echo("🔐 Web 管理面板登录信息:") + click.echo(f" 用户名: {username}") + click.echo(" 密码: [已加密存储]") + click.echo() + click.echo("💡 如需重置密码,请使用以下命令:") + click.echo(" astrbot conf set dashboard.password <新密码>") + click.echo() + click.echo("🌐 访问地址:") + + # 尝试获取端口信息 + try: + port = _get_nested_item(config, "dashboard.port") + click.echo(f" http://localhost:{port}") + click.echo(f" http://your-server-ip:{port}") + except (KeyError, TypeError): + click.echo(" http://localhost:6185 (默认端口)") + click.echo(" http://your-server-ip:6185 (默认端口)") + + except KeyError: + click.echo("❌ 无法找到登录配置,请先运行 'astrbot init' 初始化") + except Exception as e: + raise click.UsageError(f"获取登录信息失败: {str(e)}") diff --git a/astrbot/cli/utils/basic.py b/astrbot/cli/utils/basic.py index d9d7e10a..4441b118 100644 --- a/astrbot/cli/utils/basic.py +++ b/astrbot/cli/utils/basic.py @@ -16,7 +16,13 @@ def check_astrbot_root(path: str | Path) -> bool: def get_astrbot_root() -> Path: """获取Astrbot根目录路径""" - return Path.cwd() + import os + + # 使用与core应用相同的路径解析逻辑,优先使用ASTRBOT_ROOT环境变量 + if path := os.environ.get("ASTRBOT_ROOT"): + return Path(path) + else: + return Path.cwd() async def check_dashboard(astrbot_root: Path) -> None: