feat: cookie-jar по хосту, CLI omni add для своих источников, README про ключи/прокси/куки/свой сервер
This commit is contained in:
@@ -19,12 +19,28 @@ DEFAULTS = {
|
||||
"(KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36"),
|
||||
"proxy_mode": "off", # off | list | env
|
||||
"proxies": [],
|
||||
"cookies": {}, # host -> "a=b; c=d" (свои сессии к закрытым площадкам)
|
||||
}
|
||||
|
||||
KEYS = {} # имя -> значение
|
||||
CONFIG = {} # прочие настройки
|
||||
|
||||
|
||||
def cookies_for(host):
|
||||
"""Cookie-строка под хост: точное совпадение или суффикс (example.com -> www.example.com)."""
|
||||
ck = CONFIG.get("cookies") or {}
|
||||
if not ck:
|
||||
return ""
|
||||
host = (host or "").lower().split(":")[0]
|
||||
if host in ck:
|
||||
return ck[host]
|
||||
for k, v in ck.items():
|
||||
k = k.lower().lstrip(".")
|
||||
if host == k or host.endswith("." + k):
|
||||
return v
|
||||
return ""
|
||||
|
||||
|
||||
def _load_env_file(path):
|
||||
p = pathlib.Path(path)
|
||||
if not p.exists():
|
||||
@@ -53,6 +69,14 @@ def load():
|
||||
except Exception:
|
||||
pass
|
||||
CONFIG = cfg
|
||||
raw = os.environ.get("OMNI_COOKIES") or ""
|
||||
if raw:
|
||||
try:
|
||||
extra = json.loads(raw)
|
||||
if isinstance(extra, dict):
|
||||
cfg["cookies"] = {**(cfg.get("cookies") or {}), **extra}
|
||||
except Exception:
|
||||
pass
|
||||
for name in ("TAVILY_API_KEY", "EXA_API_KEY", "YOU_API_KEY", "FIRECRAWL_API_KEY",
|
||||
"JINA_API_KEY", "SERPER_API_KEY", "BRAVE_API_KEY", "X_BEARER",
|
||||
"REDDIT_CLIENT_ID", "REDDIT_SECRET", "TREG_TOKEN", "GITHUB_TOKEN"):
|
||||
|
||||
Reference in New Issue
Block a user