Files
universal-autoreg/providers/conol_secrets.py

47 lines
1.5 KiB
Python

"""
conol_secrets.py - single source of truth for credentials.
Secrets live in config.json (gitignored) or environment variables.
Env vars win over config.json. NEVER hardcode secrets in code files.
Env mapping: CONOL_GMAIL_ADDRESS, CONOL_GMAIL_APP_PASSWORD, CONOL_PASSWORD,
CONOL_SITE_KEY, CONOL_BASE_URL, CONOL_ANTICAPTCHA_KEYS (comma-separated).
"""
import json
import os
from pathlib import Path
_ROOT = Path(__file__).resolve().parent
_CFG = None
def _cfg() -> dict:
global _CFG
if _CFG is None:
p = _ROOT / "config.json"
_CFG = json.loads(p.read_text(encoding="utf-8")) if p.exists() else {}
return _CFG
def get(section: str, key: str, default=None):
env = os.environ.get("CONOL_" + section.upper() + "_" + key.upper())
if env:
return env
return _cfg().get(section, {}).get(key, default)
GMAIL = get("gmail", "address", "")
GMAIL_APP = get("gmail", "app_password", "")
PASSWORD = get("conol", "password", "")
SITE_KEY = get("conol", "site_key", "")
BASE_URL = get("conol", "base_url", "https://conol.ai")
_keys_env = os.environ.get("CONOL_ANTICAPTCHA_KEYS")
if _keys_env:
ANTICAPTCHA_KEYS = [k.strip() for k in _keys_env.split(",") if k.strip()]
else:
ANTICAPTCHA_KEYS = list(get("captcha", "anticaptcha_keys", []) or [])
ANTICAPTCHA_KEY = ANTICAPTCHA_KEYS[0] if ANTICAPTCHA_KEYS else ""
ANTICAPTCHA_BACKUP = ANTICAPTCHA_KEYS[1] if len(ANTICAPTCHA_KEYS) > 1 else ""