feat: add guided standalone setup flow
This commit is contained in:
25
support.py
25
support.py
@@ -109,6 +109,31 @@ def load_sync_config() -> Dict[str, Any]:
|
||||
return normalize_config(copy.deepcopy(DEFAULT_CONFIG))
|
||||
|
||||
|
||||
def has_initialized_config() -> bool:
|
||||
if not CONFIG_FILE.exists():
|
||||
return False
|
||||
try:
|
||||
data = json.loads(CONFIG_FILE.read_text(encoding="utf-8"))
|
||||
except Exception:
|
||||
return False
|
||||
if not isinstance(data, dict):
|
||||
return False
|
||||
|
||||
proxy = str(data.get("proxy") or "").strip()
|
||||
providers = data.get("mail_providers") or []
|
||||
cpa_base_url = str(data.get("cpa_base_url") or "").strip()
|
||||
base_url = str(data.get("base_url") or "").strip()
|
||||
bearer_token = str(data.get("bearer_token") or "").strip()
|
||||
email = str(data.get("email") or "").strip()
|
||||
password = str(data.get("password") or "").strip()
|
||||
|
||||
provider_ready = isinstance(providers, list) and any(str(item).strip() for item in providers)
|
||||
sub2api_ready = bool(base_url and (bearer_token or (email and password)))
|
||||
cpa_ready = bool(cpa_base_url and str(data.get("cpa_token") or "").strip())
|
||||
|
||||
return bool(proxy and provider_ready) or sub2api_ready or cpa_ready
|
||||
|
||||
|
||||
def normalize_config(cfg: Dict[str, Any]) -> Dict[str, Any]:
|
||||
cfg = copy.deepcopy(cfg or {})
|
||||
legacy = str(cfg.get("mail_provider", "mailtm") or "mailtm").strip().lower()
|
||||
|
||||
Reference in New Issue
Block a user