SPB Git

spb/lou-ka Public

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

HTML 99.7%
3.2 KB

# groupe_dallaire — Groupe Dallaire (Faubourg du Moulin)

  • site: https://faubourgdumoulin.ca/disponibilite/ (JetEngine admin-ajax get_listing + pagination jet_smart_filters)
  • méthode: json-api (AJAX WordPress) + fiches d'unité html
  • annonces: 257 → 257
  • couverture après (sur 257 annonces): prix 100%, adresse 100%, dispo 100%, superficie 100%, commodités 100%
  • fixture: ok · test: ok

# Champs extraits

  • Cartes AJAX : numéro d'unité, étage (désormais → details.floor structuré), prix (« 2475$ /mois* », légende du site « * Chauffé, éclairé, climatisé, stationnement int. » reportée dans price_label), date de disponibilité (« Disponibilité : juillet 2026 »), promotion, plan de l'unité (image), complexe déduit du slug.
  • Fiche d'unité (nouveau, via self.detail + cache BD, budget 150 vraies requêtes/sync) :
    • type d'unité (« 5½ TYPE D'UNITÉ ») — avant : consulté seulement pour les unités sans type déduit du nom du plan, sans cache ;
    • superficie nette (champ « Pieds carrés » / « Superficie nette: 1098 pi² ») → area_sqft structuré (107 → 257 annonces couvertes, 100 %) ;
    • inclusions réelles (répéteur JetEngine sous « Incluant » : Stationnement ext/int, Eau chaude, Internet haute vitesse, Forfait télé 4k, Entrée laveuse-sécheuse, Aires communes) — remplacent la liste générique codée en dur (qui reste en repli tant que la fiche n'est pas en cache) ;
    • plan du niveau (NIVEAU_x.png) ajouté aux images.

# Champs indisponibles à la source

  • Adresse civique exacte par immeuble (le site ne donne que « rue Lionel-Audet ») ; pas de lat/lng.
  • Animaux, meublé, description rédigée : non publiés par unité.
  • Jour précis de disponibilité (mois/année seulement).

# Fragilités

  • L'appel AJAX dépend des page_settings du widget (post_id 105, element_id cb310a3) : un remaniement Elementor casserait la pagination.
  • Le type d'unité vient d'un texte à côté de « TYPE D'UNITÉ » sur la fiche ou du nom de fichier du plan — fragile aux renommages.
  • Budget 150 fiches/sync : sur une flotte de 257, la couverture complète demande 2 syncs (le cache BD prend ensuite le relais).

# Améliorations apportées

  • Fiches d'unité désormais visitées via le cache BD (self.detail, clé = hash de la carte) pour TOUTES les unités, avec budget de 150 vraies requêtes (exception au-delà → pas de cache pollué). Avant : jusqu'à 180 requêtes non mises en cache à chaque sync, uniquement pour le type.
  • area_sqft 127 → 257 (100 %), unit_type complété pour toutes les unités, inclusions réelles par unité (ex. certaines fiches ajoutent chauffage/clim), details.floor structuré depuis la carte, plan du niveau en image.

# Échantillon avant/après

  • Avant : « Faubourg du Moulin (Sonora) — Unité 101 (5½) » — 2475 $, area NULL, amenities génériques codées en dur, pas de floor.
  • Après : même annonce — area_sqft 1098 (« Pieds carrés »), amenities réelles (6 items dont « Forfait télé et enregistreur 4k »), details.floor=1, plan de niveau ajouté.
  • Après : « Noroît — Unité 102 (3½) » — area_sqft 708, inclusions réelles avec chauffage + ac + storage dérivés.