SPB Git

spb/resto-ka

Public

Resto·Ka — tous les restaurants du Québec, menus complets et prix réels (famille ·Ka)

2.0 KB · 60 lines python
1#!/usr/bin/env python32# ==============================================================================3# Author: Simon-Pierre Boucher <contact@spboucher.ai>4# File:   run.py5# Desc:   Resto·Ka — point d'entrée : `sync`, `watch`, `serve`, `geocode`,6#         `dedup`. Même patron que le run.py de Lou·Ka.7# ==============================================================================8"""Utilisation :9    python run.py sync [source ...]     # synchronise les restos + menus10    python run.py watch [heures]        # synchronise en boucle (défaut 24 h)11    python run.py serve [port]          # démarre l'API + le frontend (défaut 8115)12    python run.py geocode [n]           # géocode les restos sans coordonnées13    python run.py dedup                 # déduplication inter-sources14"""15from __future__ import annotations1617import os18import sys19from pathlib import Path2021# Charger .env (SCRAPFLY_KEY, FIRECRAWL_API_KEY…) sans dépendance externe22_env = Path(__file__).parent / ".env"23if _env.exists():24    for line in _env.read_text().splitlines():25        line = line.strip()26        if line and not line.startswith("#") and "=" in line:27            k, _, v = line.partition("=")28            os.environ.setdefault(k.strip(), v.strip())293031def main() -> None:32    cmd = sys.argv[1] if len(sys.argv) > 1 else "serve"33    args = sys.argv[2:]3435    if cmd == "sync":36        from restoka import ingest37        ingest.run(args or None)38        ingest.enrich()39    elif cmd == "watch":40        from restoka import ingest41        hours = float(args[0]) if args else 24.042        ingest.watch(int(hours * 3600))43    elif cmd == "serve":44        import uvicorn45        port = int(args[0]) if args else 811546        uvicorn.run("restoka.web:app", host="0.0.0.0", port=port)47    elif cmd == "geocode":48        from restoka import geocode49        geocode.run_batch(int(args[0]) if args else 200)50    elif cmd == "dedup":51        from restoka import dedup52        print(dedup.run())53    else:54        print(__doc__)55        sys.exit(1)565758if __name__ == "__main__":59    main()60
Files · 53e215a622b514ebea2a2d65a2a384c5fcd36392
Menu

Theme