omni: менеджер источников в панели (338 источников, вкл/выкл, добавление, health-check, фоновые джобы)
This commit is contained in:
21
omni/cli.py
21
omni/cli.py
@@ -149,12 +149,18 @@ def cmd_stats(args):
|
||||
|
||||
|
||||
def cmd_sources(args):
|
||||
from . import source_state
|
||||
st = sources.stats()
|
||||
print("источников:", len(sources.SOURCES), "| по категориям:",
|
||||
", ".join(f"{k}={v}" for k, v in st.items()))
|
||||
fl = source_state.flags()
|
||||
all_s = sources.all_sources()
|
||||
print("источников:", len(all_s), "| включено:", sum(1 for s in all_s if fl.get(s.name, {}).get("enabled", True)),
|
||||
"| по категориям:", ", ".join(f"{k}={v}" for k, v in st.items()))
|
||||
if args.list:
|
||||
for s in sources.pick(args.category, args.only, args.tags):
|
||||
print(f" {s.category:<12} {s.adapter:<18} {s.name:<26} {s.url[:70]}")
|
||||
for s in sources.pick(args.category, args.only, args.tags, respect_enabled=not args.all):
|
||||
f = fl.get(s.name, {})
|
||||
mark = "on " if f.get("enabled", True) else "off"
|
||||
stt = f"{f.get('items')} зап." if (f.get("items") or 0) > 0 else (f.get("note") or "—")
|
||||
print(f" {mark} {s.category:<12} {s.adapter:<18} {s.name:<26} {stt:<12} {s.url[:60]}")
|
||||
return 0
|
||||
|
||||
|
||||
@@ -256,6 +262,7 @@ def main(argv=None):
|
||||
sp.add_argument("--only", default=None)
|
||||
sp.add_argument("--tags", default=None)
|
||||
sp.add_argument("--list", action="store_true")
|
||||
sp.add_argument("--all", action="store_true", help="показать и выключенные")
|
||||
sp.set_defaults(fn=cmd_sources)
|
||||
|
||||
sp = sub.add_parser("feed", help="обход реестра источников без запроса")
|
||||
@@ -267,6 +274,12 @@ def main(argv=None):
|
||||
sp.add_argument("--verbose", action="store_true")
|
||||
sp.set_defaults(fn=cmd_feed)
|
||||
|
||||
sp = sub.add_parser("doctor", help="проверка источников, --fix подбирает рабочие фиды")
|
||||
sp.add_argument("--only", default=None)
|
||||
sp.add_argument("--fix", action="store_true")
|
||||
sp.add_argument("--limit", type=int, default=3)
|
||||
sp.set_defaults(fn=lambda a: (__import__("omni.doctor", fromlist=["run"]).run(a.only, a.fix, limit=a.limit), 0)[1])
|
||||
|
||||
sp = sub.add_parser("serve", help="веб-панель + JSON API")
|
||||
sp.add_argument("--port", type=int, default=8077)
|
||||
sp.set_defaults(fn=lambda a: __import__("omni.serve", fromlist=["serve"]).serve(a.port))
|
||||
|
||||
Reference in New Issue
Block a user