TUI Termux 适配: 配置读取 XDG (SZ_CLIENT_DIR env + ~/.config/7z-encrypt)
This commit is contained in:
+16
-7
@@ -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 ""
|
||||
|
||||
Reference in New Issue
Block a user