Lou·Ka — tous les logements à louer du Québec, un seul endroit.
HTML 98.9%
Python 0.6%
1# -----------------------------------------------------------------------------2# Lou-Ka — Agrégateur de logements à louer (province de Québec)3# Auteur : Simon-Pierre Boucher — contact@spboucher.ai4# connectors/espace_w.py : connecteur Espace W (espacew.com — condos locatifs5# à Cité Mirabel, 4 immeubles W1 à W4, rue de Chenonceau/boul. de Versailles).6# Le site WordPress affiche ses unités via le widget Planpoint : on interroge7# l'API JSON publique (app.planpoint.io/api/groups/find, 1 requête/sync,8# voir _planpoint.py). Granularité UNITÉ : pi², chambres, salle(s) de bain,9# plans et inclusions par unité, adresse + lat/lng par immeuble ; la source10# ne publie AUCUN prix (price null chez Planpoint, pas de prix sur le site11# non plus) — rien d'inventé. Seules les unités « Available » sont retenues12# (les louées/vendues sont exclues).13# -----------------------------------------------------------------------------14from __future__ import annotations1516from ..schema import Listing17from ._planpoint import planpoint_projects, unit_listing18from .base import BaseConnector1920PAGE_URL = "https://www.espacew.com/unites-et-disponibilites/"21NAMESPACE = "Espace-W-condos-locatifs"22HOST_NAME = "Espace-W"232425class EspaceWConnector(BaseConnector):26 source_id = "espace_w"27 request_delay = 0.82829 def fetch(self) -> list[Listing]:30 try:31 projects = planpoint_projects(self, "groups", NAMESPACE, HOST_NAME)32 except Exception:33 return []34 listings: list[Listing] = []35 for project in projects:36 for floor in project.get("floors") or []:37 for unit in floor.get("units") or []:38 lst = unit_listing(self.source_id, project, floor, unit,39 page_url=PAGE_URL,40 default_city="Mirabel")41 if lst is not None:42 listings.append(lst)43 return listings44