tg-сессия в комбайне + панель: ключи/сессия в шапке + фикс пустого radar_sources

- omni/config.py: tg_cfg() читает data/tg.json (вне git), env приоритетнее
- omni/tgsess.py: enabled()/fetch() подтягивают креды из config
- tools/tg_pick.py: перебор пула сессий, проверка is_user_authorized, личные аккаунты исключены
- omni claw pump: 2 канала -> 27 постов через сессию (проверено)
- omni/serve.py: /api/stats += keys{totals}, tg{enabled}
- web/index.html: строка статуса в шапке (ключей / сервисов / TG сессия)
- omni/cli.py radar --apply: пишет полный набор, а не только новые (повторный прогон обнулял файл)
- omni/cli.py radar --import-posts: --since-days + скип известных url до simhash
This commit is contained in:
ENI
2026-10-27 00:15:06 +03:00
parent 2b9f4e1d88
commit 2d7d509434
6 changed files with 199 additions and 8 deletions

View File

@@ -68,7 +68,6 @@ def load():
cfg.update(json.loads(cf.read_text(encoding="utf-8")))
except Exception:
pass
CONFIG = cfg
# cookies, снятые браузером (tools/cf_cookies.py) — файл вне git
ck_file = DATA / "cookies.json"
if ck_file.exists():
@@ -93,9 +92,38 @@ def load():
if v:
KEYS[name] = v
DATA.mkdir(parents=True, exist_ok=True)
CONFIG = cfg
return cfg
def tg_cfg():
"""Креды Telegram-сессии: data/tg.json (вне git) или env. Возвращает dict.
Ключи: session (путь к .session без расширения), api_id, api_hash, limit.
env всегда приоритетнее файла.
"""
import os
out = {"session": "", "api_id": "", "api_hash": "", "limit": "100"}
f = DATA / "tg.json"
if f.exists():
try:
d = json.loads(f.read_text(encoding="utf-8"))
for k in out:
if d.get(k):
out[k] = str(d[k])
except Exception:
pass
for env, key in (("OMNI_TG_SESSION", "session"), ("OMNI_TG_API_ID", "api_id"),
("OMNI_TG_API_HASH", "api_hash"), ("OMNI_TG_LIMIT", "limit")):
if os.environ.get(env):
out[key] = os.environ[env]
for env, key in (("OMNI_TG_SESSION", "session"), ("OMNI_TG_API_ID", "api_id"),
("OMNI_TG_API_HASH", "api_hash"), ("OMNI_TG_LIMIT", "limit")):
if out[key]:
os.environ.setdefault(env, out[key])
return out
def proxies():
mode = CONFIG.get("proxy_mode", "off")
if mode == "env":