# ----------------------------------------------------------------------------- # Sorti-Ka — Agrégateur de sorties & événements (province de Québec) # Auteur : Simon-Pierre Boucher — contact@spboucher.ai # connectors/drummondville.py : connecteur Ville de Drummondville — calendrier # Source : https://www.drummondville.ca/culture-loisirs-et-sports/ # calendrier-des-evenements/ (WordPress + Toolset Views). # Extraction: la vue Toolset se pagine CÔTÉ SERVEUR par ?wpv_paged=N # (vérifié 2026-08-25) → cartes HTML (10/page) : plage de dates # FR, heure texte (« 19 h » / « Horaire variable »), catégorie, # titre, url fiche, image. Enrichissement par fiche # /evenement// (lieu « event-place », coût « Gratuit ») # — CACHE INCRÉMENTAL disque, plafond DRU_FICHES par sync. # Accès : site municipal public, robots.txt permissif (wp-admin # seulement). GET directs throttlés, identification honnête. # Prix : la fiche publie le coût (souvent « Gratuit ») → price_label # fidèle, jamais inventé. # ----------------------------------------------------------------------------- from __future__ import annotations import html as _html import os import re from ..normalize import clean_text, parse_date_range_fr, parse_time from ..schema import Event from .base import BaseConnector LIST_URL = ("https://www.drummondville.ca/culture-loisirs-et-sports/" "calendrier-des-evenements/") PAGES_MAX = int(os.environ.get("DRU_PAGES", "12")) FICHES_MAX = int(os.environ.get("DRU_FICHES", "40")) _CARD_RE = re.compile( r'
(.*?)(?=
|