SPB Git forge

spb/lou-ka

Public

Lou·Ka — tous les logements à louer du Québec, un seul endroit.

232commits 1branches 0releases
172.9 MBsize
maindefault branch
2 days agolast push
HTML 98.9% Python 0.6%

History of louka/connectors/royal_lepage.py · clear filter

  1. Tue, Aug 18, 2026 2

    1. Qualité des données + solidité mobile + framework de juste valeur (fair value)
      …
      Mission 1 — enrichissement des connecteurs et qualité :
      - quality.py : score de complétude 0-100 + seuil de publication (quarantaine
        des annonces sans prix plausible / localisation / contenu exploitable)
      - imgcheck.py : audit des images (liens morts 404/410, minuscules, placeholders
        multi-adresses, doublons) -> galeries nettoyées images_ok, cache image_checks,
        politesse 3 requêtes/hôte, écriture hors transaction réseau
      - 26 connecteurs enrichis (galeries complètes, descriptions, prix, adresses) :
        kangalou, royal_lepage, medway, remax_quebec, groupe_maurice, mellem, sutton,
        lespac, heafey, kijiji, fb_marketplace, zumper, equinoxe_batimo, logis_experts,
        quartier_sila, msi, summum, quartier_plus, urban_services, cosoltec, garic,
        lakle, matinale, huma, jutras, groupe_theoret, ferrovia
      - normalize : clean_city/clean_sector (rues et entités HTML retirées des menus),
        kijiji : adresses françaises « 89, rue X » correctement découpées
      - geocode : virgule après le n° civique corrigée (lot AQ), base en WAL
      - dedup : une annonce en quarantaine ne masque jamais un doublon publié
      
      Mission 2 — mobile :
      - /api/img : miniatures WebP servies à la taille de l écran (cache disque)
      - SmartImg : miniature -> original -> visuel de secours Lou-Ka (jamais d icône cassée)
      - lightbox tactile : balayage scroll-snap + pincement + double-tape
      - bannière témoins : ne recouvre plus le bouton Filtres (--consent-h)
      - cibles tactiles >= 44 px (pointer: coarse) ; KA Agent plein écran à l ouverture
      - stats : complétude moyenne, quarantaine par source
      
      Mission 3 — juste valeur locative (fairvalue.py, fv-logement-1.0) :
      - 3 niveaux : segments médians (repli en échelle) + coefficients de
        caractéristiques appris et centrés + comparables kNN géographiques (médiane
        pondérée) ; couloir de sécurité, fourchette, indice de confiance
      - prudence : pas de verdict si confiance faible, prix « à partir de »,
        prix non mensuel, écart hors plausible ; chambres/coloc = segment dédié
      - pastilles sous/dans/au-dessus du marché (cartes + fiche), bloc Analyse de
        prix avec histogramme, filtre « Sous le marché » + tri, page /juste-valeur
      - API : champs fv_* + deal/sort, /api/fairvalue/{uid} ; stats + PDF ;
        historisation fv_segments ; tests synthétiques ; docs/FAIRVALUE*.md
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +47 −7
    2. 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>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +44 −6
  2. Wed, Aug 12, 2026 1

    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>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +191