SPB Git

spb/lou-ka Public

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

HTML 99.7%
3.8 KB

# gestion_isr — Gestion ISR

  • site: https://www.gestion-isr.com (SPA Vite/React) → portail public https://location.gestion-isr.com (Supabase)
  • méthode: API REST Supabase — URL + clé anonyme publiques lues dans le HTML du portail, puis /rest/v1/listings?statut=eq.Actif (2 requêtes/sync, zéro rendu JS)
  • annonces: 21 (fiches immeubles + maisons/appartements individuels ; ~52 unités disponibles détaillées dans les descriptions)
  • couverture (sur 21 annonces): prix 100%, adresse 100%, dispo 100%, type 100%, ville 100%, GPS 100%, animaux 100%, images 100%, description 100% — superficie publiée seulement au niveau unité (texte)
  • fixture: ok (2 requêtes) · test: ok (2 verts)

# Champs extraits

  • Le site vitrine gestion-isr.com est une SPA sans contenu (index de 1,2 Ko) ; son bundle JS révèle listingsUrl: "https://location.gestion-isr.com", un portail dédié dont le HTML embarque SUPABASE_URL et la clé anonyme publique SUPABASE_ANON (extraites au runtime par regex — résiste à une rotation de clé).
  • GET /rest/v1/listings?select=*&statut=eq.Actif (en-têtes apikey/Bearer) :
    • pk (UUID) → external_id stable ; id_app → lien profond ?fiche=<id_app> (routage officiel du portail) ;
    • titre → title ; grandeur (« 3½ », « Maison ») → unit_type ;
    • loyer (numérique) → price — pour un immeuble c'est le plus bas des unités disponibles (conforme au « à partir de » de Lou-Ka) ; pas de libellé texte publié → price_label vide ;
    • id = adresse civique complète (« 1037 BOUL MERCURE, DRUMMONDVILLE QC J2B 3L4 ») → address ; ville/secteur → city/sector (villes réelles : Drummondville, Wickham, Bon-Conseil) ;
    • date_dispo_affichage (« Dès maintenant », « 1 Août 2026 ») → availability ; animaux structuré → pets (Aucun→non, Animaux acceptés→oui, « Chat, petit chien »→conditions) ;
    • adresse_geo = « lat, lng » → lat/lng ;
    • photos (URLs storage Supabase), repli sur les albums par modèle (photo_variants) puis main_photo ;
    • description = texte source (emoji, inclusions, enquête de crédit…) ; pour les immeubles on y annexe l'inventaire des unités disponibles (« • 3½ à 1025 $ »), agrégé depuis le tableau units (statut « Disponible » ; les unités louées sont ignorées, comme sur le portail).

# Champs indisponibles à la source

  • Superficie au niveau fiche : publiée seulement pour certaines unités (champ superficie du tableau units) — laissée au texte pour ne pas attribuer la superficie d'une unité à tout l'immeuble.
  • furnished : non structuré (un titre mentionne « Possibilité semi-meublé »).
  • price_label : le loyer est purement numérique chez la source.

# Fragilités

  • Dépend du schéma Supabase du portail (tables/champs listings, units) : un renommage casserait le parsing — le test de fixture le détecterait.
  • La clé anonyme est publique par conception (embarquée dans le HTML du portail, RLS côté Supabase) ; elle apparaît donc aussi dans la fixture, comme dans la page publique.
  • Le portail « éclate » les immeubles en cartes par modèle de photos ; le connecteur reste à la granularité fiche/immeuble (21) avec l'inventaire des unités en description — moins de bruit de diff, mêmes informations.
  • ville = « Bon-Conseil » chez la source (raccourci usuel de Notre-Dame-du-Bon-Conseil) : conservé tel quel (fidélité).

# Échantillon

  • dfc5ea5e (az201) : Maison · Rue José Wickham, 1695 $, dès maintenant, 807 rue José Wickham, GPS, 16 photos, chat accepté.
  • 864a5e0e (az101) : Boul. Mercure Drummondville, 3½ à partir de 1025 $ (unités 3½/5½/6½ dispo), animaux acceptés, internet inclus.
  • e7e9888e (az191) : Rue du Faubourg Bon-Conseil, 5½ à 1450 $, dès maintenant, 16 photos, petits compagnons acceptés.