SPB Git

spb/resto-ka

Public

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

History of tests Clear filter
page 1
  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 · 1 file +112
  2. Tue, Aug 18, 2026 2

    1. Vague 3 : avis/notes sans clé API + menus livraison + permis d alcool
      …
      - yelp-scrape : notes/avis Yelp SANS clé (1 page de recherche yelp.ca/resto
        via Scrapfly ASP, cache Apollo embarqué) -> details.yelp, croisement
        conservateur nom+civique+ville, budget 80 pages/cycle, re-visite 30 j,
        indépendants d abord. Yelp Fusion (yelp) reprend la main si clé fournie.
      - ubereats : menus livraison + notes via sitemaps publics (index local
        37 087 slugs CA, 30 j) + __REACT_QUERY_STATE__ des pages resto ; croisement
        conservateur (téléphone / postal+civique / GPS<120 m + nom) avec restos
        EXISTANTS seulement, menus en price_context delivery, budget 60 pages/cycle.
      - permits (racj) : permis d alcool en vigueur (Données Québec, CC-BY 4.0),
        regroupés par établissement et croisés comme MAPAQ -> details.permis_alcool
        (1 924 restos croisés au premier run).
      - /api/stats : with_yelp_rating, with_ubereats, with_alcohol_permit ;
        ingest.enrich appelle permits.sync (guard 6 j) ; registre sources.json (9)
        + docs générées ; 73 tests verts (9 nouveaux, tout hors ligne).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 3 files +329
    2. 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 · 3 files +240
  3. Mon, Aug 17, 2026 3

    1. v2 — le plus grand agrégateur de restos du Québec : découverte OSM + 10 bannières UEAT
      …
      - Connecteur de découverte OpenStreetMap (Overpass, ODbL, attribution) :
        13 531 établissements nommés (restos, fast-foods, cafés, bars, crèmeries,
        boulangeries) → 14 055 fiches actives, 17/17 régions couvertes.
      - +10 intégrations UEAT (Boustan 65, Ben & Florentine 54, NO.900 32,
        Sushi Taxi 30, Cochon Dingue, Salvatoré, Belle Province, Madisons, Freddy)
        → 29 intégrations, 738 restos avec menu complet, 79 159 plats avec prix.
      - Déduplication chaîne↔découverte (suffixe de succursale retranché, OSM
        toujours derrière la fiche à menu) : 215 doublons masqués.
      - Régions : repli par ancres géographiques couvrant les 17 régions.
      - UI : filtre « Avec menu complet / Fiche seulement », tri « Menus d'abord »
        par défaut, tuile restos avec menu, attribution OSM au pied de page.
      - 45 tests (fixtures Overpass + UEAT réelles hors ligne).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 3 files +100
    2. Resto·Ka v1 — agrégateur des restaurants du Québec (menus & prix réels)
      …
      - Pipeline complet calqué sur Lou·Ka : connecteurs auto-découverts, schéma
        Restaurant + menu imbriqué (sections → items → prix → options), validation
        stricte (price_context/price_source obligatoires), menus conservés PAR
        contexte, historique des prix par item, alertes de dérive, délai de grâce.
      - Connecteur templatisé UEAT (API GraphQL, prix takeout réels) : 19 marques,
        542 restos, 61 330 plats (98 % avec photo, 69 % avec options), 14/17 régions.
      - Géocodage Nominatim + Adresses Québec (96 %), régions ville→région,
        déduplication inter-sources (succursales jamais fusionnées).
      - Frontend Vite/React 18/TS — design « éditorial sharp » Groupe KA, recherche
        par resto ET par plat (groupée par marque), pagination numérotée, images,
        options en pastilles avec suppléments, badges de contexte de prix.
      - 41 tests (fixtures UEAT réelles hors ligne). Déployé : www.resto-ka.com
        (M3U96b:8115, PM2 + ngrok + sync hebdo).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 5 files +455
Menu

Theme