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.8 KB · 44 lines python
Raw Blame History
1#!/usr/bin/env python32# -----------------------------------------------------------------------------3# Sorti-Ka — Agrégateur de sorties & événements (province de Québec)4# Auteur : Simon-Pierre Boucher — contact@spboucher.ai5# scripts/build_venues.py : AMORÇAGE de l'annuaire de salles (Phase 3) —6#   apprentissage depuis la base (0 réseau) + extrait Overpass des lieux7#   culturels du Québec (1 requête, overpass-api.de) + géocodage Nominatim des8#   salles récurrentes (plafond en argument, défaut 300, throttle 1,1 s) +9#   application aux événements sans GPS. Les syncs horaires entretiennent10#   ensuite l'annuaire (venues.run dans le pipeline, plafonds réduits).11#   Usage : .venv/bin/python scripts/build_venues.py [max_nominatim]12# -----------------------------------------------------------------------------13from __future__ import annotations1415import sys16from pathlib import Path1718sys.path.insert(0, str(Path(__file__).resolve().parents[1]))1920from sortika import db, venues  # noqa: E402212223def main() -> None:24    max_nominatim = int(sys.argv[1]) if len(sys.argv) > 1 else 30025    con = db.connect()26    print("[venues] apprentissage…")27    print("  appris :", venues.learn(con))28    print("[venues] Overpass (lieux culturels QC)…")29    try:30        print("  osm :", venues.refresh_osm(con, force=True))31    except Exception as exc:32        print("  osm ÉCHEC :", exc)33    print(f"[venues] Nominatim top salles (max {max_nominatim})…")34    print("  nominatim :", venues.geocode_top(con, max_requests=max_nominatim))35    print("[venues] application aux événements sans GPS…")36    print("  apply :", venues.apply(con))37    total = con.execute("SELECT COUNT(*) FROM venues").fetchone()[0]38    print(f"[venues] annuaire : {total} salles")39    con.close()404142if __name__ == "__main__":43    main()44