Repository Public
-
Sun, Aug 9, 20264 commits
-
Expansion P2 — Est & Nord (19 connecteurs, +633 annonces)
···
medway (494 — Lévis 343, Québec 81, La Malbaie, Pont-Rouge, Rivière-du-Loup) · immeubles_aeb (26, Saguenay) · location_saguenay (21, crawl-delay 10 respecté) · appartements_rimouski (17, GPS permutés corrigés) · habitations_jeanne (14, Baie-Comeau) · stb_immobilier (11, correctif : Matane pas Lévis) · immeubles_dcl (9, API FleetCart) + 12 autres. Non-connectables documentés : habitat_honguedo (Gaspé, vide depuis 2020), immofidelite (RPA hors périmètre). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Expansion P2 — Mauricie/Centre-du-Québec/Lanaudière (17 connecteurs, +423 annonces)
···
evoludev (Laravel+JSON-LD, 125) · groupe_robin (admin-ajax, 65) · cosoltec (Planpoint x3 vitrines, 51) · info_logement (45) · jutras (35) · gestion_isr (API Supabase découverte, 21) + 11 autres. 3 non-connectables documentés (nicolyn, gestion_traversy, proplex). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Expansion P2 — Chaudière-Appalaches (le_baronet, girs, +11 annonces)
···
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Expansion provinciale P1 : 26 nouveaux connecteurs + 8 extensions (+1 358 annonces)
···
Lot 0 extensions : girescom +Beauce, msi +Thetford, utile +Trois-Rivières/ Rimouski, cogir/realstar/centurion/plan_a +Gatineau/Sherbrooke. Lot 1 plateformes maîtrisées : thrace (Livya, 181), lr_gestion (Rentsync), urban_services + immobilia (Building Stack). Lot 2 Est & Nord : immeubles_bc (Rimouski), tri_logis (Rouyn), devcore (Sept-Îles/Outaouais), multi_logis (Côte-Nord+Lévis), courtemanche (Saguenay). Lot 3 Estrie : lachance (82), gesteco (API Umbraco), savouet, laureat_richard, desroches. Lot 4 Mauricie/CdQ : location_di, cap_gestion (122), capital_rdr, gestion_tb, summum (93). Lot 5 Outaouais/Ch-App : halfred (165), heafey (245), brigil (Firecrawl), mellem, quartier_oree, le_st_georges, place_florimay. Enrichissement complet appliqué : géocodage provincial (+616), POI 1 756 immeubles, quartier 1 088 annonces jointes (0 hors-zone), normalize corrigé (frontières de mots des mois). Registre : 114 sources, 108 connecteurs, ~7 350 annonces. Secrets tiers caviardés des fixtures (jetons Mapbox + caviardage automatique à l'enregistrement). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
-
Sat, Aug 8, 202610 commits
-
Text mining des descriptions : nettoyage, extraction, sections, En bref
···
louka/textmine.py (déterministe, ~1 ms/annonce, aucune dépendance) : - A nettoyage : TITRES EN MAJUSCULES -> sections, doublons (« Disponible disponible »), phrases collées, typographie québécoise (insécables $/%) - B extraction : bail minimum, occupants (« 11 chambreurs »), sdb/cuisine commune-privée, électros, dépôt, ~40 quartiers (réutilise normalize.py) - C sections jamais reformulées ; « En bref » par gabarit strict à partir des faits haute-confiance seulement (aucune invention) - D confiance par fait, incohérences (quartier mentionné ≠ secteur), complétude 0-100 — 25 tests dont un test d'or sur le 2435 boul. Laurier Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Sécurité : caviardage des clés API tierces dans les fixtures de test
···
Les pages HTML archivées des sites sources contenaient leurs clés Google Maps (publiques par nature côté client, mais republiées inutilement sur GitHub). Toutes caviardées ; l'enregistreur les caviarde désormais automatiquement. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Mission 3 (suite) — 13 nouveaux connecteurs Québec/Lévis (+747 annonces)
···
somex_saintnicolas (145) · quartier_sila (200) · edifia (184 : Le Vital, Capella, Cardinal N/S) · aula (69) · girescom (38) · mercini (35) · quartier_mosaique (24) · la_cour (20) · louis14 (18, prix réels via widget Livya jamais affichés sur leur site) · immeubles_guillot (7) · sig (4 résidences étudiantes UL) · promenade_des_forts (2) · centurion (Quartier QB, 684 unités — 'No Vacancy' actuellement, se peuplera automatiquement). Découverte transverse : 4 sites (Somex, Sila, Louis XIV, Le Vital) utilisent le module Livya (ex-RealVuu) dont le flux RSC Next.js rendu serveur expose l'inventaire JSON complet. La Cour + AULA partagent le parseur do-selecteur (REST wp-json), déjà éprouvé chez Immostar. Registre : 88 sources, 82 connecteurs. 191 tests verts. Couverture GPS : 95,6 % global · 97,5 % des annonces avec adresse. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Mission 1b (lot 8) — logisbourg, logisco, logisma, lokalia, lynk_olymbec
···
- lokalia : +12 annonces (variantes « + DEN » dédupliquées à tort), GPS 100 % - logisco : adresse complète JSON-LD, superficie/étage structurés, 4 sections de commodités, pages unité en cache - lynk_olymbec : valeurs semi-inventées supprimées, prix/dispo réels RentCafe - normalize.py : non-chauffé avec trait d'union, branchements combinés, « refusés sauf un chat » -> conditions, « (sans utilisation) » neutralisé, fourchettes « de X $ à Y $ » = prix plancher Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Mission 1b (lot 5) — gestipro, gimcote, gparadis, groupe_dallaire, hazelview
···
- groupe_dallaire : superficie 49 % -> 100 %, inclusions réelles par unité, fiches en cache (180 requêtes/sync évitées) - gestipro : GPS 100 %, animaux 92 %, inclusions depuis « Frais et charge » - gimcote : description/animaux/meublé 100 %, GPS 100 % - gparadis : +1 immeuble Saint-Roch (regex pluriels) - normalize.py : « à la charge des locataires » -> non inclus, « actuellement vacant » -> disponible maintenant Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Mission 1b (lot 6) — headway, huma, immomarketing, immostar, interrent
···
- interrent : bug amenities (champ inexistant) corrigé, animaux 0 -> 203 - immostar : commodités 0 -> 100 % sur les 6 micro-sites, superficie 100 % - huma : dates de dispo réelles par unité, adresses et GPS par phase - immomarketing : GPS 100 %, cache detail, animaux 53/82 - normalize.py : animal au singulier, promos neutralisées, prix stationnement complet (formats 150 $ et $85) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Mission 1b (lots 4,7,9-13) + mission 2 — 37 connecteurs mis à niveau, Logis-Experts activé
···
Nouveau connecteur logis_experts (logis-experts.com, API JSON) : 516 annonces, 188 immeubles, prix/adresse/code postal/secteur/lat-lng à 100 %, superficie et commodités via pages détail en cache. Faits saillants de l'audit : - lakle : +20 unités (phases 2-3 ignorées), superficie terrasse->habitable - dma_locago : +11 unités Tour Frontenac, correction des disponibilités - equinoxe_batimo : adresses 0 % -> 100 % (602 annonces) - sgiq : lat/lng 88 %, animaux 100 %, sync 83 s -> 4 s - msi/picard/progim/capreit… : pages détail migrées vers le cache BD - utile : statut hero corrigé (2 annonces faussement « Complet ») - per : « Animaux permis : Non » inversé corrigé normalize.py : ~20 nouveaux cas génériques remontés par les agents (dates anglaises mois-jour, animaux singulier/poids/interdits, aires communes, piscine/stationnement « chauffé », balcon négatif, vélo, « ($) », semi-meublé, superficies balcon/terrasse ignorées, milliers avec virgule, hydro/heat/terrace anglais, nombres en toutes lettres) — chaque cas couvert par un test. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Mission 1b (lot 1) — akelius, app_urbains, axia, beaudoin, boardwalk, bribourg
···
- akelius : JSON détail découvert (pets 221/247, meublé, inclusions, photos HD) - boardwalk : superficie 100 %, dispo réelle, sync 210 s -> 54 s (cache detail) - beaudoin : commodités 100 % (additional_features), superficie 67 % - app_urbains : superficie 100 %, adresse Le Charlie corrigée - normalize.py : « chiens et chats acceptés » -> oui (priorité sur conditions) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Mission 1b (lots 2-3) — audit et mise à niveau de 10 connecteurs + correctifs normalisation
···
Connecteurs : brio, brivia_1sp, brochu, capreit, cogir, contraste, copley, cromwell, denux, devimco — fixtures + tests + rapports d'audit. Faits saillants : - cogir : collision d'uid corrigée (283 annonces au lieu de 270), annonces fantômes « liste d'attente » exclues - capreit : lat/lng 100 %, fiches derrière cache detail (sync 75 s -> 0,4 s) - devimco : adresses 84 % -> 100 %, superficie structurée - contraste : commodités 0 % -> 100 %, faux « 0 $/mois » supprimés - brivia_1sp : API AJAX des plans découverte (dispo réelle, superficies) normalize.py : négations chauffage/éclairage, « chiens non permis » -> pets conditions, options payantes neutralisées (optionnel/en sus), stationnement mixte int+ext, étage restreint aux commodités, refrigerator/cooling anglais. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Mission 1a — couche commune : schéma enrichi, normalisation centrale, robustesse, tests
···
- schema.Listing : availability_date (ISO/now), area_sqft, pets, furnished, details (JSON structuré) + finalize() appliqué à toutes les sources - normalize.py : dates FR/EN → ISO, superficies pi²/m², prix robuste, types d'unité (chambres→½, 6½+, MDV…), commodités → tags canoniques, stationnement/animaux/fumeur/contact extraits du texte - db.py : migration auto, délai de grâce (2 syncs) avant désactivation, détection de dérive (volume + taux de prix null) avec retraits suspendus, cache des pages détail, cache de géocodage (préparé pour la carte) - fixtures.py + run.py record : enregistrement/rejeu des réponses HTTP, tests de régression pytest par connecteur (snapshot + validité schéma) - web.py : nouveaux filtres pets/furnished/available_by/area_min Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-