Resto·Ka — tous les restaurants du Québec, menus complets et prix réels (famille ·Ka)
Python 69.3%
TypeScript 16.7%
CSS 7.9%
JavaScript 4.7%
HTML 1.4%
-
Sun, Aug 23, 2026 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>
-
-
Tue, Aug 18, 2026 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>
-