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%

page 2

  1. Sun, Aug 30, 2026 5

  2. Sat, Aug 29, 2026 4

  3. Fri, Aug 28, 2026 2

    1. Simon-Pierre Boucher committed 27 days ago · 11 files +40 −9
  4. Thu, Aug 27, 2026 11

    1. feat(scraping): migration Firecrawl -> Scrapfly des 6 connecteurs a rendu JS
      …
      - base.get_rendered : rendu via Scrapfly (render_js+ASP), wait_ms = ancien
        waitFor Firecrawl, retry x3 sur contenu vide puis echec honnete ;
        FIRECRAWL_API retire du socle
      - aalto/osgoode/brigil/realstar : _rendered delegue au socle (retry centralise)
      - realstar/osgoode/brigil : selecteur li[class*=property-box] — le rendu
        Scrapfly capture le DOM avant que le JS RentCafe ne revele les cartes
        (property-box-hidden), qui sont completes ; filtre QC en aval inchange
      - via_capitale : CARD_SPLIT accepte les hrefs relatifs (serialisation
        Scrapfly) en plus des absolus (fixtures Firecrawl historiques)
      - fixtures record/replay : get_rendered accepte wait_ms (cle de rejeu = URL)
      - fixtures re-enregistrees via Scrapfly : aalto 24, osgoode 4, brigil 12,
        realstar 9 ; rejeu test_connectors 10/10
      - gen_connector_docs : backend get_rendered documente Scrapfly (ex-Firecrawl)
      
      Valide en live : aalto 24, lynk_olymbec 4, via_capitale page 1 = 34 cartes.
      Lou-Ka ne depend plus de FIRECRAWL_API_KEY.
      Simon-Pierre Boucher committed 28 days ago · 133 files +230,045 −602
    2. 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).
      Simon-Pierre Boucher committed 28 days ago · 4 files +228 −133
    3. Simon-Pierre Boucher committed 29 days ago · 1 file
    4. Simon-Pierre Boucher committed 29 days ago · 1 file +1 −10
    5. Simon-Pierre Boucher committed 29 days ago · 1 file +1 −1
    6. 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>
      Simon-Pierre Boucher committed 29 days ago · 19 files +4,901 −48
    7. 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>
      Simon-Pierre Boucher committed 29 days ago · 1 file +20 −20
    8. 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>
      Simon-Pierre Boucher committed 29 days ago · 23 files +3,239 −279
  5. Wed, Aug 26, 2026 8

    1. docs: gestion-immobiliere-ontario.md — cartographie ~240 gestionnaires ON (recherche pré-expansion, rien d'implémenté)
      …
      8 régions (Toronto, GTA, Ottawa/Est, Hamilton-Niagara, KW-Guelph, London/SW, Nord, Centre), multi-régions, leviers plateformes (LiftSystem/RentCafe/Buildium/AppFolio) et annexe exclusions (agrégateurs écartés par principe).
      
      Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 29 days ago · 1 file +528
    2. Simon-Pierre Boucher committed 29 days ago · 1 file +8 −2
    3. Simon-Pierre Boucher committed 29 days ago · 2 files +116 −3
    4. Simon-Pierre Boucher committed 29 days ago · 1 file +7 −2
    5. Simon-Pierre Boucher committed 29 days ago · 1 file +5 −1
    6. Mode carte Ka Map System v2 — expérience immersive plein viewport
      …
      - MapSearch réécrit autour de KaMapShell : mobile edge-to-edge + bottom sheet
        de résultats à 3 crans, desktop split liste|carte redimensionnable (ratio
        persisté) avec carte quasi plein écran d un clic
      - Toolbar unifiée (zoom, 3D, dessiner, me localiser) au lieu des pilules
        flottantes ; « Rechercher dans cette zone » contextuel
      - Mode dessin temporaire avec CTA « N logements dans cette zone »
      - Fiche contextuelle v2 : photo, prix, favori, swipe/chevrons entre voisines
        (remplace le carrousel mobile)
      - Thème markers v2 : pilules off-white/encre premium, orange réservé au
        « sous le marché » et à la sélection ; clusters légers à anneau orange
        avec loyer moyen sous la bulle
      - Home : vue carte mémorisée dans l URL, feuille de filtres en modale
        au-dessus du mode carte (desktop), widget Ka Agent masqué en mode carte
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 29 days ago · 4 files +441 −361
  6. Tue, Aug 25, 2026 10

    1. Simon-Pierre Boucher committed 1 mo ago · 2 files
    2. Court terme : hotellerie du Quebec en reservation directe (1 922 fiches)
      …
      - sithotels : repertoire officiel SIT Quebec (ministere du Tourisme/CITQ),
        1 542 fiches squelettes geolocalisees avec no CITQ ; saute les hotels
        couverts par un connecteur moteur (fiche riche prioritaire)
      - mews : 110 hotels via l'API bookingEngine (session signee md5, Origin
        obligatoire), prix frais a chaque sync, photos, repli geoloc SIT
      - reservit : 235 hotels via l'API du front Angular ; sessions proxy a IP
        collante par hotel (le direct est banni du noeud et l'IP tournante
        declenche le filtre de securite Reservit)
      - scripts/detect_hotel_engines.py + data/hotels_engines.json : table
        hotel -> moteur de resa (1 174 sites sondes : 278 reservit, 121 mews)
      - schema : types Hotel et Motel ; Sources : categorie Hotellerie ;
        fiche CT : CTA « Reserver en direct a l'hotel » pour la categorie hotels
      
      Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 10 files +19,523 −330
    3. Simon-Pierre Boucher committed 1 mo ago · 1 file +246
    4. Fiche logement : refonte editoriale v2 — icones contextuelles, sections sans boites
      …
      - Nouveau composant AmenityIco (~34 pictos maison, trait 1.8) : chaque
        inclusion/caracteristique est appariee par mots-cles (accents neutralises)
        a SON icone — lave-vaisselle, chauffage, balcon, stationnement, animaux,
        piscine, foyer… — fini le meme ✓ repete dix fois
      - Inclusions : grille en filets (tuile icone 32px accent-soft, libelle,
        ✓ discret a droite pour le confirme ; neutre pour les mentions libres)
      - Chips cles du hero : hairline + icone contextuelle (3½ → porte, dispo →
        calendrier, pi² → regle…) au lieu d aplats marine
      - Colonne editoriale (gauche) de-boxee : description, inclusions, details
        pratiques respirent sans carte — les modules de donnees (droite) restent
        en cartes ; titres avec tiret accent net (sans bordure/ombre heritees)
      - Details pratiques : rangees en filets, cles en micro-mono, fini les tuiles
      - Prix 38-54px, ancres en onglets textes, en-bref en filet accent,
        galerie au cadre allege (hairline, rayon 10)
      - Mobile : le CTA sticky prend le bas d ecran, la tabbar s efface sur la
        fiche (body:has(.cta-sticky)) — plus de chevauchement
      Simon-Pierre Boucher committed 1 mo ago · 3 files +192 −4
    5. Desktop : grille uniforme + header sans debordement
      …
      - Grille editoriale : suppression du grand format 7n+1 (annonces de tailles
        inegales jugees etranges) — 3 colonnes uniformes, le style editorial
        (fiches sans boite, image dominante, stagger) est conserve
      - Header : nav sans retour de ligne (Court terme tenait sur 2 lignes),
        burger des 960px, badge Groupe KA masque sous 1140px (debordement de 6px
        du bouton Connexion autour de 1100px) — verifie par mesure Playwright de
        1440 a 900px : plus aucun element coupe a droite
      Simon-Pierre Boucher committed 1 mo ago · 1 file +12 −6
    6. Court terme : DA editoriale v2 (meme langage que l accueil)
      …
      - Hero typo geant Trouvez votre prochaine escapade. avec surlignage orange
        irregulier ; benefits-cards et stat-chips remplacees par la ligne LIVE
        (hebergements indexes en count-up, regions, derniere synchro reelle des
        connecteurs ct qui tictaque, prix moyen/nuit)
      - Recherche au coeur : grand champ Ou voulez-vous vous evader ? souligne,
        criteres Region/Type/Prix par nuit en filets, Tous les criteres avec badge
      - Barre de resultats sticky N hebergements · Liste|Carte · Filtres (mobile),
        FAB supprime ; resume des criteres actifs sous la recherche sur mobile
      - Grille magazine grid-edito (grand format 16/9 toutes les 7 fiches) et
        transitions de vue ; reutilise integralement la couche CSS v2 de l accueil
      - Hooks useCountUp/useAgo factorises dans src/live.ts (partages Home/CT)
      Simon-Pierre Boucher committed 1 mo ago · 3 files +137 −119
    7. Refonte editoriale v2 de l accueil — direction artistique premium
      …
      Moins de boites, plus de typographie : le contenu structure la page.
      
      - Hero : composition typographique geante (clamp 44-88px), surlignage orange
        irregulier en trait SVG sous chez-vous., plus de gros boutons rectangulaires
      - Donnees vivantes : ligne mono LIVE avec compteur anime (count-up 0,9s),
        derniere synchro reelle qui tictaque a la seconde (max last_sync des
        connecteurs), sources et loyer moyen — separes par filets, zero chip
      - Recherche au coeur : grand champ Ou voulez-vous habiter ? souligne 2px
        (focus accent), criteres inline Ville/Quartier/Loyer separes par filets
        verticaux, bouton texte Tous les criteres avec badge — la boite filterbar
        disparait de l accueil
      - Barre de resultats sticky : N logements · Liste|Carte (onglets textes a
        soulignement anime scaleX) · Filtres (mobile) — remplace le FAB flottant
      - Fiches editoriales : plus de carte-boite — l image domine (radius 10,
        zoom 1,025 au survol), prix 22px niveau 1, adresse niveau 2, quartier/ville
        en mono uppercase niveau 3, source en micro-mono niveau 4
      - Grille a rythme magazine : 3 colonnes, 1 grand format panoramique 16/9
        toutes les 7 fiches, apparition en decale par colonne, align-items start
      - Pagination nue : chiffres sans boites, page courante soulignee accent
      - Nav mobile : tabbar flottante detachee des bords (radius 18, blur, ombre
        portee), etat actif = trait accent sous l icone ; widget KA Agent remonte
      - Primitives locales v2 : rayons 0/6/10/18, durees 150/240/350ms, hairlines
      - Feuille mobile : resume des criteres actifs sous la recherche (remplace le
        FAB), poignee, application sticky
      - Classes partagees avec CourtTerme (.hero, .filterbar, .stat-chip…)
        intactes : la refonte vit dans de nouvelles classes + une couche finale
      Simon-Pierre Boucher committed 1 mo ago · 2 files +439 −131
    8. Accueil : pastilles actives — neutraliser l uppercase herite de la page Sources
      …
      La regle .pill de la page Sources (10.5px, uppercase) venait apres celle de
      l accueil et fuyait sur les pastilles de filtres actifs ; text-transform et
      letter-spacing sont desormais explicites sur .pills .pill.
      Simon-Pierre Boucher committed 1 mo ago · 1 file +1
    9. Accueil : refonte majeure du rendu — CTA hero, filtres et boutons peaufines
      …
      - Hero : halo d accent + trame de points decorative, rangee CTA (Explorer /
        Voir la carte) avec ombres decalees accent, stat-chips interactives
        (tabular-nums, survol), avantages en mini-cartes bordees encre
      - Filterbar : cadre 2px + rayon 16, recherche 52px focus accent (ombre 3x3),
        selects survolables, bouton Plus de filtres avec icone, badge compteur et
        chevron anime, panneau avance en pointille avec easing
      - Segments : etat actif encre + souligne accent interieur ; pastilles actives
        avec animation d apparition et survol danger (intention de retrait)
      - Chips 42px avec icones alignees ; bascule Liste/Carte etat actif encre
      - Mobile : poignee de sheet, bouton Voir les resultats sticky en bas de la
        feuille, FAB avec badge compteur
      Simon-Pierre Boucher committed 1 mo ago · 2 files +161 −56