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%
6.0 KB

# UEAT (commande en ligne) — connecteur ueat

Fiche générée automatiquement par scripts/gen_connector_docs.py le 2026-08-18 06:06 — ne pas éditer à la main, régénérer.

État : actif · Palier (tier) : 1 · Backend : direct · Restos actifs : 934/936

# Description de la source

Connecteur TEMPLATISÉ pour UEAT (foodtech de Québec — plateforme de commande en ligne marque blanche, très répandue au QC). Couvre tous les restos listés dans data/sources.json -> source « ueat » -> « integrations » (un GUID d'intégration par marque/resto). Mode d'extraction : API GraphQL interne (https://api.ueat.io/graphql), la même que consomme le widget de commande officiel — données structurées, aucun rendu navigateur requis. Auth anonyme : en-têtes x-ueatapikey: <GUID d'intégration> + x-ueatculture: fr. Contexte de prix produit : TAKEOUT (prix réels de la commande en ligne du resto lui-même, non majorés — source de première partie, voir CLAUDE.md §9 Palier 1 et §15). Couverture par intégration : - restaurant { name url logo } -> identité de la marque - franchises(modeType: TAKEOUT) -> UNE FICHE PAR ADRESSE (succursales reliées par chain, jamais fusionnées — §12.1) - menu { categories } + items(categoryId) -> sections & plats (sous-catégories via menu(parentCategoryId), récursif) - variations d'item -> options « Format » - item.question (1er niveau) -> groupes d'options (garnitures, choix de base…) — mis en cache par marque, refait seulement quand le menu change (detail_cache). Limite documentée : le menu est capté au niveau de la MARQUE (menu par défaut du siège). Les écarts locaux de prix entre succursales d'une même bannière ne sont pas captés (menus standardisés §9 P6).

  • Plateforme : ueat · Site : https://ueat.io
  • Extraction (registre) : API GraphQL interne (api.ueat.io/graphql), auth anonyme par GUID d'intégration — la même API que le widget officiel de commande
  • Contexte de prix : takeout
  • Module : restoka/connectors/ueat.py — UeatConnector
  • Intégrations recensées : 50 clés GUID (48 actives, 2 retirées) — voir data/sources.json et data/ueat-discovered.json

# Accès

# Champs récupérés → schéma cible

Le connecteur alimente la table restaurants (et menus le cas échéant). Complétude mesurée en SQL sur les 934 fiches actives ; exemple tiré d'une ligne réelle de la BD.

Colonne restaurants Contenu Renseignée (actives) Exemple réel
name Nom de l'établissement 100 % Poulet Rouge - Alexis-Nihon
chain Chaîne / bannière 98 % Poulet Rouge
cuisines Cuisines (JSON, taxonomie §6.1) 100 % ["poulet", "quebecois", "cafe-dessert", "vegetarien-vegan"]
establishment_type Type d'établissement 100 % restaurant
price_range Fourchette de prix 91 % $
address Adresse civique 100 % 1500 Avenue Atwater
city Ville 100 % Montréal
region Région administrative 100 % Montréal
postal_code Code postal 100 % H3Z 1X5
lat GPS (lat/lng) 100 % 45.488805
phone Téléphone 100 % 514 419-2191
website Site web 96 % https://poulet-rouge.ca/
hours Horaires structurés (JSON) 0 % {}
services Services (JSON) 100 % ["takeout"]
dietary_options Options alimentaires (JSON) 82 % ["vegetarien"]
images Photos (JSON) 100 % 5 photo(s) — https://storage.googleapis.com/ueat-assets/b914c5ae-48e4-44d2-9df1-03ceeb04f…
url URL de la fiche source 100 % https://order.ueat.io/integration/4268100d-6470-40b9-a755-e11342c91d6d/fr

Menus : 934 menus rattachés (91881 items, 1 contexte(s) de prix, dernière capture 2026-08-18T07:25:47Z) — table menus (sections → items → options, prix CAD).

# Fréquence & budget

  • Cadence déclarée (registre) : hebdomadaire
  • Cadence observée (médiane sync_log) : ≈ 70 min
  • Dernier passage OK : 2026-08-18 03:25 — 934 trouvées, +84 / ~0 / -1
  • Caps / budgets du module : MAX_DEPTH = 3, MAX_QUESTION_FETCH = 400
  • Cache des payloads détail : activé (table detail_cache)

# Volumétrie & complétude

  • Fiches en BD : 936 au total, 934 actives
  • Première ingestion : 2026-08-17 · Dernière observation : 2026-08-18
  • Complétude clé (actives) : GPS 100 % · adresse 100 % · cuisines 100 % · horaires 0 % · site web 96 %
  • Runs journalisés (60 derniers) : 6, dont 0 en erreur

# Erreurs connues & dépannage

Aucune erreur dans les 60 derniers runs journalisés.

Rejouer la source seule : python3 run.py sync ueat · vérifier sync_log (SELECT * FROM sync_log WHERE source='ueat' ORDER BY ts DESC LIMIT 5;).

# Licence, attribution & conditions

  • Cadre d'accès (registre, acces_legal) : Source de première partie : plateforme de commande des restos eux-mêmes, prix réels non majorés (CLAUDE.md §9 Palier 1, §15). API anonyme publique, throttling poli 0,35 s, User-Agent identifiable RestoKaBot.
  • Scraping / API : User-Agent identifiable RestoKaBot/1.0 (+https://www.resto-ka.com/bot; contact@spboucher.ai), throttling poli, aucun contournement d'accès ; les fiches pointent vers la source d'origine.
  • Retrait sur demande : contact@spboucher.ai.

# Historique

  • 2026-08-17 — premières fiches de la source ingérées dans la BD.
  • 2026-08-18 — vague d'enrichissement : standardisation de la documentation des connecteurs (fiche générée par scripts/gen_connector_docs.py).