Food-Ka — agrégateur de produits d'épicerie du Québec — www.food-ka.com
Python 53.9%
TypeScript 24%
CSS 14.9%
JavaScript 5.8%
HTML 1.4%
-
Tue, Aug 18, 2026 1
-
Vague 2 : circulaires grandes bannières + comparateur inter-bannières + nutrition OFF
…
1. Connecteurs Flipp des grandes bannières (API backflipp publique, 0 crédit Scrapfly) : iga_flyer (merchant 4592), metro_flyer (2269, filtre Quebec), superc_flyer (2585), maxi_flyer (2349), provigo_flyer (2338), walmart_flyer (234, filtre Circulaire), costco_flyer (2596, Grocery). Flyers provinciaux verifies sur H2X 1Y4 et G1R 4P5 (memes flyer_id). _flipp : tri des flyers par valid_from (la semaine courante gagne sur les slugs dupliques semaine courante/a venir). 2. foodka/matching.py : rapprochement inter-bannieres — table product_links (group_id, uid) reconstruite apres chaque cycle. Cle marque+nom nettoye+ format, matching conservateur (marque obligatoire, similarite nom >= 0,86 avec format identique / 0,95 sans format, jetons numeriques strictement egaux — lait 2 % jamais fusionne avec 3,25 %). Une source *_flyer = meme banniere que son catalogue. Endpoint GET /api/products/{uid}/compare + compteurs matching/nutrition dans /api/stats. 3. foodka/nutrition.py : enrichissement Open Food Facts (voila.ca PDP derriere Incapsula et Shopify sans code-barres public -> croisement OFF par marque+nom+format, conservateur). search.openfoodfacts.org (le vieux cgi/search.pl repond 503) + /api/v2/product/{code} pour les ingredients. Nutriscore/NOVA/ecoscore/allergenes/nutriments dans details.off, budget 100 recherches/cycle, throttle 6 s, cache off_cache (jamais re-cherche). db.py : tables product_links + off_cache. ingest.py : hooks post-cycle matching + nutrition (jamais bloquants). sources.json : 54 sources. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-