TUI Termux 适配: 配置读取 XDG (SZ_CLIENT_DIR env + ~/.config/7z-encrypt)

This commit is contained in:
lou
2026-08-10 15:59:50 +08:00
parent 69e1201cd4
commit 0284fd8660
+16 -7
View File
@@ -16,17 +16,26 @@ import sys
from pathlib import Path
from urllib import request as urlrequest
CLIENT_DIR = "/home/lou/文档/7z-encrypt"
CLIENT_DIR = os.environ.get("SZ_CLIENT_DIR", "/home/lou/文档/7z-encrypt")
PYTHON = f"{CLIENT_DIR}/.venv/bin/python"
# 编译产物优先 (Nuitka 原生二进制), 无则回退源码解释执行
TRANSFER_BIN = f"{CLIENT_DIR}/bin/sz-transfer"
TRANSFER_CMD = [TRANSFER_BIN] if os.path.exists(TRANSFER_BIN) else [PYTHON, "transfer.py"]
def _tui_config() -> Path:
"""配置文件: 源码目录 config/config.json (开发) -> XDG (安装版)"""
p = Path(f"{CLIENT_DIR}/config/config.json")
if p.exists():
return p
xdg = os.environ.get("XDG_CONFIG_HOME") or str(Path.home() / ".config")
return Path(xdg) / "7z-encrypt" / "config.json"
def _default_server() -> str:
"""客户端 config.json 读 server.url (无则本地默认)"""
"""配置文件读 server.url (无则本地默认)"""
try:
cfg = json.loads(Path(f"{CLIENT_DIR}/config/config.json").read_text(encoding="utf-8"))
cfg = json.loads(_tui_config().read_text(encoding="utf-8"))
return str(cfg.get("server", {}).get("url", "http://127.0.0.1:8000"))
except (OSError, json.JSONDecodeError):
return "http://127.0.0.1:8000"
@@ -268,9 +277,9 @@ def delete_file() -> None:
def _keyring_path() -> Path:
"""密钥库路径: config.json 显式指定用指定, 否则系统默认 (SZ_KEYRING env/XDG)"""
"""密钥库路径: 配置显式指定用指定, 否则系统默认 (SZ_KEYRING env/XDG)"""
try:
cfg = json.loads(Path(f"{CLIENT_DIR}/config/config.json").read_text(encoding="utf-8"))
cfg = json.loads(_tui_config().read_text(encoding="utf-8"))
raw = cfg.get("crypto", {}).get("keyring_path", "")
if raw:
return Path(raw)
@@ -371,9 +380,9 @@ def import_key() -> None:
def _load_token() -> str:
"""客户端 config.json 读 server.token"""
"""配置文件读 server.token (源码目录优先, 安装版走 XDG)"""
try:
cfg = json.loads(Path(f"{CLIENT_DIR}/config/config.json").read_text(encoding="utf-8"))
cfg = json.loads(_tui_config().read_text(encoding="utf-8"))
return str(cfg.get("server", {}).get("token", ""))
except (OSError, json.JSONDecodeError):
return ""