SPB Git forge

spb/resto-ka

Public

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

52commits 1branches 0releases
11.6 MBsize
maindefault branch
19 days agolast push
Python 69.3% TypeScript 16.7% CSS 7.9% JavaScript 4.7% HTML 1.4%

History of .env.example · clear filter

  1. Sun, Aug 23, 2026 1

    1. connecteur site-finder : découverte des sites web des restos OSM (Serper /maps)
      …
      Enrichissement (aucune fiche, aucun prix) : retrouve le site web officiel
      des ~10 600 restos OSM sans site connu via leur fiche Google Maps (API
      Serper, ll centré sur les coordonnées OSM). Croisement conservateur nom +
      GPS <= 400 m, ambigu ignoré ; domaines sociaux/agrégateurs/livraison
      rejetés, réservation -> details.reservation_url. Remplit website (+ phone
      si vide) et débloque le pipeline site-resto (menus maison dine-in).
      Tests hors ligne sur payloads réels (7 passent) ; .env.example
      (SERPER_API_KEY, SITE_FINDER_BUDGET) et data/sources.json documentés.
      
      Travail réalisé par une mission agent KA, commité a posteriori.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +8
  2. Tue, Aug 18, 2026 1

    1. Vague 2 : inspections MAPAQ, horaires structurés, contact site-resto, Yelp, fix Overpass 406
      …
      - MAPAQ (Données Québec, CC-BY 4.0) : module restoka/inspections.py — import
        des 2 994 condamnations (listecondamnation.csv) dans la table liée
        inspections, croisement CONSERVATEUR avec les restaurants (nom+lieu avec
        CP ou civique exigé ; adresse+nom hors tokens de ville — jamais la mauvaise
        succursale d une chaîne, jamais deux voisins d un centre commercial) :
        288 condamnations croisées sur 204 restos. details.mapaq + endpoint
        GET /api/restaurants/{uid}/inspections + compteurs /api/stats.
      - Horaires : restoka/hours.py — parseur opening_hours OSM (plages de jours,
        double service, off, 24/7, PH ignoré ; l exotique reste en brut) + JSON-LD
        schema.org. Câblé dans le connecteur OSM et backfillé : 2 656/2 939 tags
        bruts structurés par jour (90,4 %).
      - site-resto : extraction téléphone (tel:/JSON-LD/regex, E.164, garde
        anti-annuaire de chaîne), horaires JSON-LD et lien de réservation
        (OpenTable, Libro, Resto Loco…) -> COALESCE conservateur sur la fiche OSM
        (db.enrich_contact) + details.reservation_url (pending_enrichment).
      - Yelp Fusion : connecteur d enrichissement complet (rating, review_count,
        price, categories, phone -> details.yelp ; croisement par téléphone puis
        /businesses/matches, GPS <300 m si ambigu, budget 450 req/run). Livré en
        SkipSource « clé requise » (YELP_API_KEY absente) — nouveau patron
        SkipSource dans base.py + .env.example.
      - Overpass 406 : overpass-api.de refuse les UA déguisés en navigateur mais
        accepte un UA de bot honnête — UA dédié OVERPASS_UA (vérifié live, 200).
      - Colonne restaurants.details (migration auto, jamais touchée par
        sync_source), registre data/sources.json à 6 sources, /api/stats expose
        inspections/inspections_matched/restaurants_with_inspections.
      - Tests : 64 au vert (51 existants + 13 nouveaux : hours, inspections,
        extraction contact).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +28