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

@@ -219,8 +219,19 @@ class Handler(BaseHTTPRequestHandler):
cats = _cat_health()
for c in cats:
c["stored"] = sum(per_source.get(x.name, 0) for x in all_s if x.category == c["name"])
kv = {"services": 0, "keys": 0, "ready": 0}
tgst = {"enabled": False}
try:
from . import vault as _vault, tgsess as _tg
st_kv = _vault.stats()
kv = {"services": len(st_kv), "keys": sum(x["keys"] for x in st_kv),
"ready": sum(x["ready"] for x in st_kv)}
tgst = {"enabled": bool(_tg.enabled())}
except Exception:
pass
return self._json({
"items": s["items"], "priced": s["priced"], "runs": s["runs"], "runs_ok": s["runs_ok"],
"keys": kv, "tg": tgst,
"by_provider": [{"name": n, "count": c} for n, c in s["by_provider"][:12]],
"by_kind": [{"name": n, "count": c} for n, c in s["by_kind"]],
"sources": len(all_s),