Immo-Ka — agrégateur des propriétés à vendre au Québec (73 connecteurs, ~40 000 annonces, React+FastAPI)
Python 47.5%
HTML 27.9%
TypeScript 15.5%
CSS 7.2%
JavaScript 2%
-
Tue, Aug 18, 2026 2
-
Vague 2 : jointure au rôle d'évaluation, fiches Sutton/RLP/LesPAC enrichies, days_on_market, dédup par adresse
…
- vraiprix_local : le JSON vraiprix porte désormais le rôle d'évaluation (valeur_role/terrain/bâtiment, année, superficies officielles) ; repli des colonnes year_built/lot_sqft (provenance details.*_source=role, jamais pour le terrain des copropriétés) ; enrich_role() = backfill par id_provinc (64 972 fiches, year_built 20 %→67 %, lot_sqft 17 %→62 %) ; limite d'appariement par cycle 2000→5000 + enrich_role 20 000/cycle. - db.sync_source : COALESCE sur year_built/area_sqft/lot_sqft (les enrichissements ne sont plus écrasés par null). - Sutton (v5) : année (Construction :), Aire habitable/Terrain superficie, taxes, évaluation municipale, frais de copropriété, revenus (plex). - Royal LePage (v2) : parse complet direct (sans Firecrawl) — description (Remarques), Bâti en, superficies (garde-fou aménagée≤6000 pi²), salles d'eau, taxes/évaluations, frais de condo, listed_at, galerie complète. - LesPAC (v2) : toutes les boîtes de caractéristiques (pas juste la 1re), salles de bain/d'eau, superficies + lot depuis Dimension du terrain, cityLabel, listed_at (publicReleaseTimestamp). - Kijiji : details.listed_at (activationDate). DuProprio : lat/lng du JSON-LD. - API : days_on_market calculé (first_seen) sur listings + fiche. - Dédup 3e passe : inter-sources par adresse normalisée + type + prix ±1 % (garde-fous : apt/unité identique requis, même source en double = ignoré, autorité primaire > _ag_ > petites annonces) — 1 748 doublons masqués. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Connecteurs : clé Algolia auto-extraite (Barnes), taxes/éval RE/MAX, specs Via Capitale, Kijiji étendu
…
- barnes_quebec : identifiants Algolia extraits du HTML public (PHPVars) avec cache process 6 h + repli sur la dernière clé connue et ré-extraction sur échec — résilient aux rotations de clé (403 du 2026-08-15). - remax_quebec : le tableau de caractéristiques est rendu « Libellé | Valeur » (l'ancien ordre inverse ne captait que du bruit) — parseur corrigé, section « Détails financiers » captée (taxes municipales/scolaires + évaluation municipale terrain/bâtiment/année), libellés étendus, clé de cache v3→v4 (re-parse progressif dans le budget par cycle). - via_capitale : enrichissement fiche détail complet (chambres, salles de bains, superficies, année, taxes, évaluations) via meta + tableau aplati ; requête directe d'abord, repli Firecrawl stealth sur challenge Cloudflare ; budget IMMOKA_VIACAP_DETAIL_LIMIT (défaut 200/cycle) ; clé v2→v3. - kijiji : _ATTR_LABELS étendus (terrain/acres, année, stationnement, meublé, visites), « Size (acres) » (texte libre) → lot_sqft, salles de bains « 1.5 » désormais captées ; clé v1→v2. - _detailutil.centris_details : ordre « Libellé | Valeur » prioritaire + garde-fous (libellés voisins/en-têtes de section jamais pris pour valeurs, format minimal exigé pour taxes/évaluation/année/superficies). - schema.finalize : promotion details → colonnes (Année de construction → year_built, Superficie habitable/du terrain → area_sqft/lot_sqft) avec parse_year strict (normalize.py). Backfill one-shot exécuté sur la base : year_built +95, area_sqft +792, lot_sqft +275. - db.get_stale_detail + repli « périmé plutôt que rien » (_detailutil.enrich, remax _enrich) : un bump de version de clé ne déshabille plus les fiches hors budget, et un échec transitoire n'écrase plus un payload valide. - Registres : via_ag_dumontroyal (0 inscription à l'API source.immo), remax_ag_pro_commercial (redirige vers remax-alliance.ca — doublon) et remax_ag_solutions (nancyforlini.com migré hors Centris) désactivés (disabled+note) ; loaders ignorent disabled ; sources.json à jour ; 95 → 92 connecteurs.
-
-
Wed, Aug 12, 2026 3
-
feat: iconographie maison (Icons.tsx, ~30 icônes trait 1,7px) remplace tous les emojis + filtre prix bidon Kijiji (<5000$)
…
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
-
feat: enrichissement fiches Kijiji (description, attributs, galerie 1600px) et LesPAC (adresse civique, caractéristiques, galerie basephoto) + champs annexes Ubee
…
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
-
feat: connecteurs Kijiji, LesPAC et Ubee (immobilier à vendre, Québec seulement)
…
- kijiji.py : c35 maisons + c643 condos + c641 terrains, l9001 (QC), __NEXT_DATA__/Apollo, prix en cents normalisés, GPS natif - lespac.py : b37-b42 achat-vente province entière (exclut location et vente d'entreprises), searchResponse embarqué, caractéristiques structurées - ubee.py : API anonyme SearchProperties (Seller, résidentiel+commercial), galerie Cloudinary complète, superficies m²→pi² Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
-