# ----------------------------------------------------------------------------- # Lou-Ka — Agrégateur de logements à louer (province de Québec) # Auteur : Simon-Pierre Boucher — contact@spboucher.ai # connectors/louis14.py : connecteur Quartier Louis Quatorze (louis14.ca) # 424 condos locatifs (immeubles A-B-C-D), Lebourgneuf, Québec (Groupe Damco). # Le site WordPress n'affiche aucun prix statiquement : la page /plans/ # embarque le sélecteur de plans Livya (app.livya.com, ex-RealVuu). La page # Next.js du sélecteur est rendue serveur : son flux RSC (`self.__next_f # .push`) contient les 423 unités du projet avec prix de location réel, # disponibilité, superficie, étage, orientation, balcon, photos du type et # plan d'étage — on le parse directement, sans exécuter de JavaScript. # (403 sans UA navigateur ; le UA de base.py passe, Cloudflare accepte.) # Seules les unités AVAILABLE deviennent des annonces (prix réels). # ----------------------------------------------------------------------------- from __future__ import annotations import json import re from ..schema import Listing, normalize_unit_type from .base import BaseConnector BASE = "https://louis14.ca" PLANS_PAGE = f"{BASE}/plans/" LIVYA = "https://app.livya.com" # Valeurs observées sur /plans/ — repli si l'extraction dynamique casse DEFAULT_CLIENT = "damco" DEFAULT_PROJECT = "louis-14" DEFAULT_ENTITY = "e5e643c4-89da-4f82-89e5-8895b67c9b3e" # sélecteur de plan # conteneur du module Livya sur /plans/ (l'ordre des attributs peut varier) _CONTAINER_RE = re.compile( r'