SPB Git forge

spb/sorti-ka

Public

Toutes les sorties et tous les événements du Québec, un seul endroit — 7 connecteurs, fiches SSR, design Groupe KA.

58commits 1branches 0releases
13.7 MBsize
maindefault branch
17 days agolast push
HTML 82.9% Python 15.2% TypeScript 0.9% JavaScript 0.7%
1.7 KB · 52 lines python
Raw Blame History
1# ==============================================================================2# Author: Simon-Pierre Boucher <contact@spboucher.ai>3# File:   run.py4# Desc:   CLI Sorti-Ka — sync (ingestion), watch (boucle périodique),5#         web (API FastAPI + frontend). Patron Lou-Ka : run.py.6# ==============================================================================7from __future__ import annotations89import argparse10import sys111213def main() -> int:14    parser = argparse.ArgumentParser(15        prog="sorti-ka",16        description="Sorti-Ka — toutes les sorties et tous les événements du Québec")17    sub = parser.add_subparsers(dest="cmd", required=True)1819    p_sync = sub.add_parser("sync", help="exécuter l'ingestion (toutes les sources)")20    p_sync.add_argument("sources", nargs="*", help="ids de sources (défaut : toutes)")2122    p_watch = sub.add_parser("watch", help="ingestion en boucle périodique")23    p_watch.add_argument("--interval", type=int, default=6 * 3600,24                         help="intervalle en secondes (défaut : 21600 = 6 h)")2526    p_web = sub.add_parser("web", help="lancer l'API + le frontend")27    p_web.add_argument("--host", default="127.0.0.1")28    p_web.add_argument("--port", type=int, default=8120)2930    args = parser.parse_args()3132    if args.cmd == "sync":33        from sortika import ingest34        results = ingest.run(args.sources or None)35        return 1 if any("error" in r for r in results) else 03637    if args.cmd == "watch":38        from sortika import ingest39        ingest.watch(args.interval)40        return 04142    if args.cmd == "web":43        import uvicorn44        uvicorn.run("sortika.web:app", host=args.host, port=args.port)45        return 04647    return 2484950if __name__ == "__main__":51    sys.exit(main())52