Lou·Ka — tous les logements à louer du Québec, un seul endroit.
- 264commits
- 1branches
- 0releases
- 180.7 MBon disk
- maindefault branch
- 5 days agolast push
-
Mon, Oct 26, 2026 1
-
Sun, Oct 11, 2026 1
-
Thu, Oct 8, 2026 1
-
retrait: connecteur Ubee supprimé et 466 inscriptions effacées (plainte de Ubee, 2026-10-08)
…
- louka/connectors/ubee.py + docs/connecteurs/ubee.md supprimés, ligne INDEX retirée - data/sources.json : ubee → retiré (ne pas réactiver sans accord écrit) - louka/web.py : les statuts inactif/retiré sont aussi déclarés disabled_sources à api-ka - base : listings (466), price_log (505), fairvalue (375), listing_events (319), recycled_cache (77), managers (1), sync_log (372), image_checks (12 701 URL Cloudinary ubee-media) effacés ; dédup inter-sources recalculée - sauvegarde à froid hors dépôt : ~/ubee-retrait-20261008/ Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
-
-
Wed, Sep 9, 2026 1
-
Tue, Sep 8, 2026 1
-
Fri, Sep 4, 2026 1
-
Thu, Aug 27, 2026 4
-
pause(ontario): expansion ON suspendue temporairement — rien d'effacé
…
- .env : LOUKA_ONTARIO=1 commenté (les 56 connecteurs gatés sortent du registre) - sources.json : 65 sources ON -> status pause + note_pause - quality.evaluate : quarantaine pause-ontario (published=0) pour province=ON tant que le flag n'est pas reposé ; province ajoutée au backfill et à l'évaluation à l'ingestion (db.py) - docs/ONTARIO-PAUSE.md : quoi/pourquoi/comment réactiver 5 851 annonces ON conservées en base, dépubliées. QC intact (62 412 publiées).
-
feat(ontario): vague 2 — 45 nouvelles sources ON (+2 964 annonces, ~5 800 ON au total)
…
7 rsgw_* (passerelle website-gateway : sterlingkaramar, drewlo, fitzrovia, bgo, panoramic, drakepm, arcanos), 12 lift_*, 5 rc_*, 11 bld_* (Buildium), 1 apf_* (AppFolio), 9 sur mesure (starlight, medallion, kggroup, qresidential, riocan, sifton, accommod8u, greenrock, westdale). Anti-doublons : exclude_import_ids (Greenrock via sterlingkaramar) + sterlingkaramar.com dans _SKIP_DOMAINS de starlight. sources.json : 503 entrées, champ connector harmonisé. Tout gaté LOUKA_ONTARIO=1. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
-
feat(ontario): activation — les 20 sources ON passent à « actif » dans sources.json
…
LOUKA_ONTARIO=1 posé dans le .env de prod (non versionné). Première synchronisation faite : 2 828 annonces ON en base (2 624 publiées) sur 30 sources — Toronto 685, London 219, Ottawa 214, Hamilton 154, Sarnia 117, Kitchener 117… Villes ON exposées automatiquement par /api/facets. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
-
feat(ontario): 20 nouveaux connecteurs ON + socle province, tout gaté LOUKA_ONTARIO=1 (zéro impact prod QC)
…
Socle : Listing.province + bbox coordonnées ON (schema.py), migration province TEXT DEFAULT 'QC' (db.py), géocodage ON via Nominatim sans repli Adresses Québec (geocode.py), townhouse/bungalow résidentiels (quality.py). Nouveaux connecteurs (disabled hors gate) : liftsystem.py (13 clients dynamiques lift_* via data/liftsystem_clients.json — Greenwin, Park, Williams & McDaniel, Briarlane, DMS, Signet, Shelter, York, Terracorp, RentSarnia, First North, TVM, Urbandale ; 922 propriétés résidentielles), rentcafe.py (4 clients rc_* via data/rentcafe_clients.json — Effort Trust, Osgoode ON, GWLRA, O'Shanter ; Scrapfly ASP), homestead.py + skyline.py (passerelle publique website-gateway.rentsync.com), killam.py (blob #available_prop RentCafe). Connecteurs QC élargis sous gate (uids QC vérifiés identiques hors gate) : capreit +189, boardwalk +74, minto +81, hazelview +14, interrent +83, morguard +258, akelius +95, metcap +60, realstar +12, cogir +38, centurion +52 annonces ON potentielles. sources.json : +19 entrées ON (status inactif) + skyline recyclé. Registre : 365 connecteurs sans gate (inchangé), 385 avec LOUKA_ONTARIO=1. Potentiel à l'activation : ~1 200-1 600 annonces ON (~30 sources). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
-
-
Tue, Aug 25, 2026 1
-
Campagne connecteurs province 2026-08-24 : 149 nouveaux connecteurs (+3 685 annonces)
…
Création massive issue de la recherche province (reports/expansion/ recherche-province-2026-08-24.md), en 17 lots parallèles : - 149 connecteurs actifs (Building Stack, RentCafe/Yardi, Rentsync/ LiftSystem, Planpoint, Livya, silo.immo, Webflow, Wix SSR, WordPress admin-ajax/wp-json/SSR, PDF+pdfplumber, OCR tesseract, Google Sheets CSV) - helpers partagés _planpoint.py et _livya.py - 9 sources documentées non connectables (doublons Cogir, vitrines sans inventaire, OMHQ annuaire, Skyline 0 propriété QC) - registre data/sources.json : 281 → 439 sources - fix groupe_mathieu : découverte via /condos-locatifs/ (le méga-menu Jet n'est servi que par certaines variantes de cache Elementor) - pdfplumber ajouté aux dépendances ; doc régénérée (367 fiches) Syncs initiaux : 3 685 annonces ajoutées. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
-
-
Sat, Aug 22, 2026 2
-
apartments_com : acteur Apify maison ka-apartments-com (toute la province via Bright Data) + enrichissement PDP fb_marketplace
…
- nouvel acteur actors/ka-apartments-com : recherche /qc/ paginée (arrêt sur retombée page 1 via <title>), fiches détail en français (GPS, description, plans d'unités dédoublonnés, commodités, galerie), déblocage Akamai délégué au Web Unlocker Bright Data (curl_cffi/Scrapfly/Oxylabs → 403) - connecteur louka/connectors/apartments_com.py : 1 annonce = 1 propriété, prix « à partir de » (minimum des plans), bedrooms/bathrooms = minimum, cache détail 30 j, cadence LOUKA_APTS_INTERVAL_H (12 h) avec ré-émission des actives entre deux runs — 615 propriétés QC au premier passage - fb_marketplace : acteur 0.1.3 (adresse civique, beds/sdb, commodités, disponibilité, walk/transit/bike scores, visite virtuelle) + PAYLOAD_VERSION pour re-visiter progressivement le cache, filtre hors-Québec state+bbox GPS - sources.json : apartments_com passe de « non connectable » à actif - docs connecteurs régénérées (218 fiches) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
-
fb_marketplace : acteur Apify maison ka-fb-marketplace (33 villes, tout le Québec)
…
Remplace la chaîne Scrapfly par un acteur Apify maison (curl_cffi sans rendu JS, proxy Oxylabs résidentiel CA via proxyUrlTemplate) : recherche 116 URLs (10 grandes villes × 7 tranches de prix + 23 régions par ID Marketplace), fiches détail (GPS, description, statut) et galerie complète via le MediaViewer préchargé. Filtre hors-Québec à deux niveaux : state du reverse_geocode dès la recherche + filet bbox GPS côté connecteur (FB glisse des suggestions d'autres provinces dans le flux public). Coût ~100× moindre. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
-
-
Tue, Aug 18, 2026 3
-
Vague 3 : connecteurs Zumper (API directe), Atimco (Livya), Simplex (Supabase)
…
- zumper : API JSON interne en DIRECT (bundle CSRF -> pages/listables par bbox -> fiches /buildings avec cache BD cle modified_on), 8 bbox QC, filtre state=QC ; 4 345 annonces au premier sync (2 391 absorbees par la dedup = +1 954 nettes). PadMapper = meme API (ids 100/100 identiques) : couvert. - _livya : base commune des gestionnaires servis par Livya (ex-RealVuu), patron generalise du connecteur thrace (flux RSC des pages plans). - atimco : ~18 projets Monteregie (Longueuil, St-Constant, St-Hyacinthe, Chambly, Chateauguay, St-Jean, Sorel, Cowansville) — 299 unites disponibles, prix/GPS/chambres/sdb complets, 0 doublon. - simplex : catalogue Supabase public (RPC get_public_rental_listings_page), Trois-Rivieres/Shawinigan — 3 annonces actives (28 publiees en rotation). - sources.json : +6 entrees (zumper, atimco, simplex actifs ; padmapper couvert via zumper ; apartments.com non connectable — 403 CoStar ; cloria non connectable — inventaire Livya complet mais 0 prix publie). - docs/connecteurs regeneres (217 fiches). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Vague 2 : colonnes bedrooms/bathrooms, perf fb_marketplace/logisquebec, connecteurs Kangalou + Rentals.ca, visites virtuelles
…
- Schéma : colonnes bedrooms/bathrooms REAL (additives) dérivées dans finalize() — details explicites > type d'unité (n½ -> n-2, convention QC) > extraction texte ; backfill one-shot : 96,7 % bedrooms / 51 % bathrooms sur le parc actif. - fb_marketplace : recherche et détails Scrapfly EN PARALLÈLE (6 fils, mêmes requêtes, aucun volume perdu), TTL détail 10 -> 30 j, annonces louées filtrées avant enrichissement : 43-47 min -> 7,3 min/cycle. - logisquebec : budget détail 1200 -> 400 (dimensionné TTL 7 j / ~10 passes/j), fiches jamais vues servies en premier, délai 0,7 -> 0,5 s : 19 min -> 7,6 min/cycle, parc complet (6 393 fiches). - Kangalou (nouveau) : découverte en 1 requête via les pins de la carte (/fr/recherche/ajax/search-map/, loués/commerciaux exclus), fiches SSR (adresse, chambres/SDB, GPS, galerie, dispo, superficie) : 7 916 annonces. - Rentals.ca (nouveau) : même GraphQL que Louer.ca mais inventaire ~+15 %, rejoué via Scrapfly ASP sans rendu JS (Cloudflare), détails PAR LOTS de 40 via nodes(ids), villes/volumes plafonnés : 3 452 annonces (les recoupements Louer.ca sont résorbés par la dédup, déjà dans PORTALS). - Visites virtuelles : details.virtual_tour — tours{} Matterport/YouTube du réseau Rentals.ca (louer_ca clé cache v2 + rentals_ca) + détection générique Matterport/iGUIDE/Klapty dans les fiches logisquebec, duproprio, kangalou. 1 107 annonces actives en ont déjà une. - TtlDetailCache : peek()/put() pour la planification de lots parallèles. - sources.json : +kangalou, +rentals_ca (275 sources, 212 connecteurs). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> -
Connecteurs : rivero/trudel suspendus (RealVuu mort), groupe_dallaire via proxy Scrapfly, disjoncteur ingest, capreit/logisquebec/royal_lepage enrichis
…
- rivero + trudel : app.realvuu.com hors-ligne depuis 2026-08-10 (DNS NXDOMAIN) -> flag disabled=True (exclus du registre auto), statut sources.json mis a jour, 244 annonces zombies archivees (active=0, aucune suppression) - ingest : disjoncteur leger — une source en echec aux 5 derniers passages est sautee (log sync_log "disjoncteur: ..."), retentee 1 passage sur 5 - groupe_dallaire : le pare-feu bloque l IP du serveur (timeout TCP sur tout le domaine) -> timeout direct 8 s puis repli proxy Scrapfly (simple, puis escalade ASP residentiel apres 422 WAF) pour admin-ajax et fiches ; teste : 255/256 unites retrouvees en ~5 min - capreit : area_sqft (colonne pi2 de la fiche) et availability_date (earliest_date du flux) mappes directement — 117/117 vs 107/117 avant - logisquebec : details canoniques postal_code / contact.phone / rooms (JSON-LD) ; superficie : verifie, aucune source structuree sur la fiche - royal_lepage : enrichissement fiche detail (description "Remarques", superficie habitable, agence) avec cache detail2 + cap 100/cycle Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
-
Mon, Aug 17, 2026 1
-
Nouvelles sources + déduplication inter-sources
…
8 connecteurs (208 → 212), testés en live : - logisquebec — portail (~9 800 fiches) : sitemaps + JSON-LD, expiration HTTP 410 - duproprio — location par particuliers (~4 200, 0 % chevauchement) : sitemaps gz + JSON-LD, retrait = 302 - louer_ca — réseau Rentals.ca (~1 700) : API GraphQL interne (JWT), 1 annonce par plan d'étage - roomies — chambres/colocation : JSON-LD Room - groupe_maurice — 37 résidences pour aînés (RPA) : API REST + grilles de prix - bons_locataires — agence Montréal : carte MapListPro + fiches WordPress - omhm — logements abordables ENHARMONIE - fb_marketplace — Scrapfly ASP, pagination par tranches de prix (scroll bloqué hors login) Déduplication inter-sources (louka/dedup.py) : - colonnes dup_of / dup_sources (migration db.py), recalcul idempotent dans ingest.watch() après géocodage - blocage par clé d'adresse (civique + rue normalisée FR/EN + ville), confirmation type + prix ±4 % - contrainte « ≤1 annonce par source par groupe » (évite de fusionner des unités distinctes d'un immeuble) - canonique = source la plus autoritaire (gestionnaire direct > portail > petites annonces) - web.py n'affiche que les annonces canoniques (dup_of IS NULL) ; dup_sources exposé pour le badge « aussi publiée sur » - résultat : 147 groupes, 154 doublons masqués sur 18 536 annonces Utilitaire _detailutil.TtlDetailCache : cache de pages détail avec TTL + budget par sync. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
-
Wed, Aug 12, 2026 1
-
Portails & courtiers en location — 10 connecteurs portés d'Immo-Ka (Kijiji, LesPAC, RE/MAX, Sutton, Royal LePage, Via Capitale, Proprio Direct, Ubee, Barnes, M Immobilier)
…
- base.py : backends Scrapfly (scrapfly/get_scrapfly) + post() portés d'Immo-Ka - _detailutil.py : helper partagé d'enrichissement fiche détail (cache BD, budget par sync) adapté au schéma Listing - Kijiji c37 apparts/condos + c36 chambres/coloc (Apollo __NEXT_DATA__, QC l9001) - LesPAC b457 logements + b458 coloc + b460 aînés (searchResponse, ancre Montréal = province entière triée par distance) - RE/MAX Québec : index Meilisearch public shardé par RTA, slugs -a-louer seulement - Sutton : sitemap inscriptions typeInscription=2 (= locations) - Royal LePage : recherche transactionType=LEASE (formulaire caché), 28 villes d'ancrage - Via Capitale : criteresJson AVendre:false via Firecrawl (Cloudflare) - Proprio Direct : API searchListings filter rentOrSale:rent, volet résidentiel - Ubee : API SearchProperties listingType Renter (askPrice = loyer mensuel) - Barnes : Algolia facette type:rental (property_rent) ; M Immobilier : CODE_STATUT=AL - sources.json : 255 → 265 (10 nouvelles sources « Province »/Montréal) - Écartés après vérification live (pas de location résidentielle) : DuProprio, Profusion, Engel & Völkers, KW Prestige/Distinction/Urbain, Expert PM, Sotheby's Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
-
Sun, Aug 9, 2026 3
-
Expansion provinciale complète : registre final (255 sources, 179 actives), README, enrichissement
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Expansion P3 — Outaouais (5 connecteurs +41 annonces, 10 non-connectables)
…
wandji (API /api/buildings découverte, 29) · gio (crawl-delay 3 respecté) · immnasr · quanta · leviu (portail Magex). Registre fusionné. 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, 2026 2
-
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 (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>
-
-
Thu, Aug 6, 2026 1
-
Lou-Ka — agrégateur de logements à louer (Québec, Lévis, Grand Montréal)
…
Plateforme complète : 68 connecteurs de gestionnaires immobiliers, schéma standardisé avec détection de changements (hash), API FastAPI, frontend React/Vite PWA (design éditorial sharp, thème clair), déployée sur www.lou-ka.com avec resynchronisation horaire. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-