Implement CLI Docker compatibility fix and login-info command

Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-08-16 16:01:36 +00:00
parent 2554548088
commit 50cf263076
3 changed files with 47 additions and 1 deletions

0
astrbot.lock Normal file
View File

View File

@@ -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)}")

View File

@@ -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: