docs: fiches connecteurs régénérées (Phase 2) + registre — laval morte-à-la-source
- data/sources.json : laval passe à « morte-a-la-source » avec décision consignée (jeu ouvert figé, EventDate max 2025-12-09, 41 runs verts sans aucun futur) ; le connecteur reste branché (archivage naturel + réveil automatique si la Ville republie) ; remplacement prévu en Phase 3 (calendrier vivant laval.ca / Tourisme Laval). - Générateur : end_time et statut ajoutés aux champs documentés et aux métriques clés ; note ticketmaster mise à jour (repli scraping sain, TICKETMASTER_API_KEY à fournir pour prix/statuts/visuels HD) ; historique Phase 2 consigné. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
23 changed files +457 −353
modified
data/sources.json
+4 −3
@@ -39,11 +39,12 @@ | ||
| 39 | 39 | "name": "Ville de Laval — Calendrier des activités", |
| 40 | 40 | "url": "https://www.donneesquebec.ca/recherche/dataset/calendrier-des-activites", |
| 41 | 41 | "type": "donnees-ouvertes", |
| 42 | − "extraction": "fichier JSON officiel (Données Québec) — EventDate/EndDate publiés en UTC (vérifié 2026-08) → convertis en date + heure locales Québec (minuit local = « toute la journée », pas d'heure)", | |
| 42 | + "extraction": "fichier JSON officiel (Données Québec) — EventDate/EndDate publiés en UTC (vérifié 2026-08) → convertis en date + heure locales Québec (minuit local = « toute la journée », pas d'heure) ; détection du préfixe « ANNULÉ - » du titre → statut cancelled (Phase 2)", | |
| 43 | 43 | "acces_legal": "Licence CC 4.0 (Données Québec) — Ville de Laval", |
| 44 | 44 | "couverture": "Activités municipales, Laval", |
| 45 | 45 | "cadence": "horaire (watcher PM2)", |
| 46 | − "statut": "actif" | |
| 46 | + "statut": "morte-a-la-source", | |
| 47 | + "decision": "2026-08-19 (audit Phase 1 + Phase 2) : le jeu ouvert est MORT À LA SOURCE — 293 enregistrements, EventDate max 2025-12-09, plus aucun événement futur publié depuis fin 2025 alors que le connecteur tourne sans erreur (41 runs verts). Le connecteur reste branché (archivage naturel du stock + réveil automatique si la Ville republie), mais la source ne compte plus comme active. REMPLACEMENT prévu en Phase 3 : calendrier vivant laval.ca / Tourisme Laval (voir 04-SOURCES-CANDIDATES de l'audit)." | |
| 47 | 48 | }, |
| 48 | 49 | { |
| 49 | 50 | "id": "sherbrooke", |
@@ -230,4 +231,4 @@ | ||
| 230 | 231 | "note": "Cloudflare bloque tout GET non navigateur (403) et aucun jeu « événements » sur Données Québec (vérifié 2026-08-18)" |
| 231 | 232 | } |
| 232 | 233 | ] |
| 233 | −} | |
| 234 | +} | |
| \ No newline at end of file | ||
modified
docs/connecteurs/INDEX.md
+16 −16
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Sorti-Ka — Connecteurs de sources d'événements |
| 2 | 2 | |
| 3 | −> Index généré le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` (rejouable : `python3 scripts/gen_connector_docs.py`). Croise `data/sources.json`, l'introspection de `sortika/connectors/*.py` et la base live `data/sortika.db`. | |
| 3 | +> Index généré le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` (rejouable : `python3 scripts/gen_connector_docs.py`). Croise `data/sources.json`, l'introspection de `sortika/connectors/*.py` et la base live `data/sortika.db`. | |
| 4 | 4 | |
| 5 | −**20 sources au registre** — 14 actives/prêtes, 6 abandonnées · **19193 événements en base** (dont 16719 actifs). | |
| 5 | +**20 sources au registre** — 14 actives/prêtes, 6 abandonnées · **19458 événements en base** (dont 13061 actifs). | |
| 6 | 6 | |
| 7 | 7 | ⚠️ **Attributions requises** : Ville de Montréal (CC BY 4.0) ; SIT Québec / Ministère du Tourisme et Ville de Laval (CC 4.0 — Données Québec). Détails dans chaque fiche, section « Licence / attribution ». |
| 8 | 8 | |
@@ -10,20 +10,20 @@ | ||
| 10 | 10 | |
| 11 | 11 | | Source | Type | Statut | Actifs | GPS | Prix | Heure | Artistes | Image | Salle | Dernier sync | |
| 12 | 12 | |---|---|---|---|---|---|---|---|---|---|---| |
| 13 | −| [SIT Québec — Ministère du Tourisme](sitq.md) | donnees-ouvertes | actif | 1598 | 97 % | 0 % | 0 % | 0 % | 35 % | 66 % | 2026-08-18 05:01 | | |
| 14 | −| [Ville de Montréal — Événements publics](montreal.md) | donnees-ouvertes | actif | 5679 | 97 % | 100 % | 21 % | 0 % | 58 % | 4 % | 2026-08-18 05:01 | | |
| 15 | −| [Le point de vente — billetterie québécoise](lepointdevente.md) | billetterie | actif | 1787 | 27 % | 46 % | 94 % | 1 % | 100 % | 99 % | 2026-08-18 05:00 | | |
| 16 | −| [Ville de Laval — Calendrier des activités](laval.md) | donnees-ouvertes | actif | 277 | 51 % | 0 % | 95 % | 0 % | 98 % | 90 % | 2026-08-18 04:55 | | |
| 17 | −| [Ville de Sherbrooke — Calendrier des événements](sherbrooke.md) | municipal | actif | 271 | 0 % | 100 % | 88 % | 0 % | 100 % | 0 % | 2026-08-18 05:01 | | |
| 18 | −| [Ville de Longueuil — Événements (nouveau portail)](longueuil.md) | municipal | actif | 9 | 0 % | 0 % | 100 % | 0 % | 0 % | 0 % | 2026-08-18 05:52 | | |
| 19 | −| [Eventbrite — billetterie libre-service (Québec)](eventbrite.md) | billetterie | actif | 426 | 100 % | 65 % | 100 % | 0 % | 97 % | 100 % | 2026-08-18 05:52 | | |
| 20 | −| [Tourisme Cantons-de-l'Est — calendrier officiel (ATR Estrie)](cantonsdelest.md) | tourisme-regional | actif | 13 | 77 % | 0 % | 0 % | 0 % | 100 % | 0 % | 2026-08-18 05:52 | | |
| 21 | −| [evenko — grands concerts et festivals](evenko.md) | promoteur | actif | 421 | 77 % | 0 % | 99 % | 99 % | 100 % | 100 % | 2026-08-18 04:55 | | |
| 22 | −| [Atuvu.ca — calendrier culturel](atuvu.md) | agregateur | actif | 145 | 62 % | 35 % | 0 % | 0 % | 100 % | 100 % | 2026-08-18 04:52 | | |
| 23 | −| [La Vitrine culturelle](lavitrine.md) | billetterie | actif | 5127 | 52 % | 0 % | 0 % | 0 % | 100 % | 100 % | 2026-08-18 04:55 | | |
| 24 | −| [Ville de Brossard — Calendrier des événements](brossard.md) | municipal | actif | 264 | 0 % | 0 % | 55 % | 0 % | 57 % | 54 % | 2026-08-18 04:55 | | |
| 25 | −| [Ticketmaster — Discovery API (Québec)](ticketmaster.md) | billetterie | actif | 330 | 100 % | 0 % | 96 % | 0 % | 90 % | 100 % | 2026-08-18 05:51 | | |
| 26 | −| [Bandsintown — dates de concerts par artiste](bandsintown.md) | agregateur | actif | 372 | 100 % | 1 % | 100 % | 100 % | 8 % | 100 % | 2026-08-18 04:52 | | |
| 13 | +| [SIT Québec — Ministère du Tourisme](sitq.md) | donnees-ouvertes | actif | 876 | 97 % | 0 % | 0 % | 0 % | 0 % | 0 % | 63 % | 74 % | 2026-08-19 01:19 | | |
| 14 | +| [Ville de Montréal — Événements publics](montreal.md) | donnees-ouvertes | actif | 3291 | 99 % | 100 % | 100 % | 9 % | 0 % | 0 % | 100 % | 5 % | 2026-08-19 01:19 | | |
| 15 | +| [Le point de vente — billetterie québécoise](lepointdevente.md) | billetterie | actif | 1786 | 27 % | 92 % | 94 % | 0 % | 0 % | 1 % | 100 % | 99 % | 2026-08-19 01:19 | | |
| 16 | +| [Ville de Laval — Calendrier des activités](laval.md) | donnees-ouvertes | morte-a-la-source | 1 | 0 % | 0 % | 100 % | 0 % | 0 % | 0 % | 100 % | 0 % | 2026-08-19 01:17 | | |
| 17 | +| [Ville de Sherbrooke — Calendrier des événements](sherbrooke.md) | municipal | actif | 116 | 0 % | 100 % | 87 % | 92 % | 0 % | 0 % | 99 % | 0 % | 2026-08-19 01:19 | | |
| 18 | +| [Ville de Longueuil — Événements (nouveau portail)](longueuil.md) | municipal | actif | 4 | 75 % | 0 % | 100 % | 50 % | 0 % | 0 % | 100 % | 0 % | 2026-08-19 01:19 | | |
| 19 | +| [Eventbrite — billetterie libre-service (Québec)](eventbrite.md) | billetterie | actif | 429 | 100 % | 88 % | 100 % | 100 % | 0 % | 0 % | 98 % | 100 % | 2026-08-19 01:26 | | |
| 20 | +| [Tourisme Cantons-de-l'Est — calendrier officiel (ATR Estrie)](cantonsdelest.md) | tourisme-regional | actif | 11 | 91 % | 0 % | 0 % | 0 % | 0 % | 0 % | 100 % | 0 % | 2026-08-19 01:16 | | |
| 21 | +| [evenko — grands concerts et festivals](evenko.md) | promoteur | actif | 421 | 77 % | 0 % | 99 % | 0 % | 0 % | 99 % | 100 % | 100 % | 2026-08-19 01:16 | | |
| 22 | +| [Atuvu.ca — calendrier culturel](atuvu.md) | agregateur | actif | 151 | 62 % | 37 % | 9 % | 0 % | 0 % | 0 % | 100 % | 100 % | 2026-08-19 01:16 | | |
| 23 | +| [La Vitrine culturelle](lavitrine.md) | billetterie | actif | 5087 | 52 % | 0 % | 51 % | 0 % | 0 % | 0 % | 100 % | 100 % | 2026-08-19 01:21 | | |
| 24 | +| [Ville de Brossard — Calendrier des événements](brossard.md) | municipal | actif | 150 | 94 % | 0 % | 96 % | 0 % | 0 % | 0 % | 100 % | 94 % | 2026-08-19 01:16 | | |
| 25 | +| [Ticketmaster — Discovery API (Québec)](ticketmaster.md) | billetterie | actif | 368 | 100 % | 0 % | 96 % | 0 % | 4 % | 0 % | 91 % | 100 % | 2026-08-19 01:20 | | |
| 26 | +| [Bandsintown — dates de concerts par artiste](bandsintown.md) | agregateur | actif | 370 | 100 % | 1 % | 100 % | 0 % | 0 % | 100 % | 7 % | 100 % | 2026-08-19 01:16 | | |
| 27 | 27 | |
| 28 | 28 | ## Sources abandonnées |
| 29 | 29 | |
modified
docs/connecteurs/atuvu.md
+30 −25
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Atuvu.ca — calendrier culturel (`atuvu`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : actif** · Type : `agregateur` · Connecteur : `sortika/connectors/atuvu.py` |
| 6 | 6 | |
@@ -38,28 +38,30 @@ | ||
| 38 | 38 | |
| 39 | 39 | ## Champs récupérés → schéma |
| 40 | 40 | |
| 41 | −Complétude mesurée sur les **145 événements actifs** de la source ; exemples tirés d'un événement réel (`atuvu:lhorizon-de-kheops-2026-08-12`). | |
| 41 | +Complétude mesurée sur les **151 événements actifs** de la source ; exemples tirés d'un événement réel (`atuvu:belmar-cardinal-en-spectacle-2026-08-19`). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`events.*`) | Description | Complétude | Exemple réel | |
| 44 | 44 | |---|---|---|---| |
| 45 | −| `title` — Titre | titre de l'événement | 100 % | L'Horizon de Khéops | | |
| 45 | +| `title` — Titre | titre de l'événement | 100 % | Belmar Cardinal | | |
| 46 | 46 | | `description` — Description | texte descriptif (source ou fiche détail) | 0 % | ∅ | |
| 47 | −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://atuvu.ca/billets-spectacle/lhorizon-de-kheops | | |
| 47 | +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://atuvu.ca/billets-spectacle/belmar-cardinal-en-spectacle | | |
| 48 | 48 | | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] | |
| 49 | −| `venue` — Salle (venue) | nom du lieu | 100 % | Laurier Québec | | |
| 49 | +| `venue` — Salle (venue) | nom du lieu | 100 % | Le Rendez-vous du thé | | |
| 50 | 50 | | `address` — Adresse | adresse civique | 0 % | ∅ | |
| 51 | −| `city` — Ville | municipalité | 97 % | Québec | | |
| 52 | −| `region` — Région | région administrative | 93 % | Capitale-Nationale | | |
| 53 | −| `lat` — GPS (lat/lng) | coordonnées géographiques | 62 % | 46.7705941, -71.2847897 | | |
| 54 | −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-12 | | |
| 55 | −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-12 | | |
| 56 | −| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 0 % | ∅ | | |
| 57 | −| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 29 % | 0 | | |
| 58 | −| `price_min` — Prix min | tarif minimal réel ($) | 35 % | 47.66 | | |
| 59 | −| `price_label` — Libellé prix | étiquette tarifaire affichable | 29 % | 47.66 $ (prix régulier atuvu.ca) | | |
| 51 | +| `city` — Ville | municipalité | 97 % | Montréal | | |
| 52 | +| `region` — Région | région administrative | 94 % | Montréal | | |
| 53 | +| `lat` — GPS (lat/lng) | coordonnées géographiques | 62 % | 45.5602793, -73.6576904 | | |
| 54 | +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-19 | | |
| 55 | +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-19 | | |
| 56 | +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 9 % | 18:00 | | |
| 57 | +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ | | |
| 58 | +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ | | |
| 59 | +| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 28 % | ∅ | | |
| 60 | +| `price_min` — Prix min | tarif minimal réel ($) | 37 % | 0.0 | | |
| 61 | +| `price_label` — Libellé prix | étiquette tarifaire affichable | 28 % | ∅ | | |
| 60 | 62 | | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | |
| 61 | 63 | | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | |
| 62 | −| `image` — Image | visuel (og:image ou média source) | 100 % | https://atuvu.ca/uploads/images/2025/12/lhorizon-kheops.jpg | | |
| 64 | +| `image` — Image | visuel (og:image ou média source) | 100 % | https://atuvu.ca/uploads/images/2024/07/belmar-cardinal-en-spectacle.jpg | | |
| 63 | 65 | | `website` — Site web | site officiel de l'événement | 0 % | ∅ | |
| 64 | 66 | |
| 65 | 67 | ## Fréquence & budgets |
@@ -74,17 +76,19 @@ Complétude mesurée sur les **145 événements actifs** de la source ; exemples | ||
| 74 | 76 | |
| 75 | 77 | ## Volumétrie & complétude live |
| 76 | 78 | |
| 77 | −*(mesuré le 2026-08-18 05:54 EDT dans `data/sortika.db`)* | |
| 79 | +*(mesuré le 2026-08-19 01:27 EDT dans `data/sortika.db`)* | |
| 78 | 80 | |
| 79 | −- **Événements en base** : 145 (dont **145 actifs**) | |
| 80 | −- **GPS** : 90/145 actifs (62 %) | |
| 81 | −- **Prix** : 51/145 actifs (35 %) | |
| 82 | −- **Heure (start_time)** : 0/145 actifs (0 %) | |
| 83 | −- **Artistes** : 0/145 actifs (0 %) | |
| 84 | −- **Image** : 145/145 actifs (100 %) | |
| 85 | −- **Salle (venue)** : 145/145 actifs (100 %) | |
| 86 | −- **Dernier sync** : 2026-08-18 04:52 — fetched 156, +0 ajoutés, ~2 mis à jour, -0 retirés | |
| 87 | −- **Syncs enregistrés** (sync_log) : 18 | |
| 81 | +- **Événements en base** : 162 (dont **151 actifs**) | |
| 82 | +- **GPS** : 94/151 actifs (62 %) | |
| 83 | +- **Prix** : 56/151 actifs (37 %) | |
| 84 | +- **Heure (start_time)** : 14/151 actifs (9 %) | |
| 85 | +- **Heure de fin** : 0/151 actifs (0 %) | |
| 86 | +- **Statut (annulé/reporté/complet)** : 0/151 actifs (0 %) | |
| 87 | +- **Artistes** : 0/151 actifs (0 %) | |
| 88 | +- **Image** : 151/151 actifs (100 %) | |
| 89 | +- **Salle (venue)** : 151/151 actifs (100 %) | |
| 90 | +- **Dernier sync** : 2026-08-19 01:16 — fetched 170, +0 ajoutés, ~160 mis à jour, -0 retirés | |
| 91 | +- **Syncs enregistrés** (sync_log) : 37 | |
| 88 | 92 | |
| 89 | 93 | ## Erreurs & dépannage |
| 90 | 94 | |
@@ -101,6 +105,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅ | ||
| 101 | 105 | |
| 102 | 106 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 103 | 107 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 108 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
| 104 | 109 | |
| 105 | 110 | Commits touchant `sortika/connectors/atuvu.py` : |
| 106 | 111 | |
modified
docs/connecteurs/bandsintown.md
+28 −23
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Bandsintown — dates de concerts par artiste (`bandsintown`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : actif** · Type : `agregateur` · Connecteur : `sortika/connectors/bandsintown.py` |
| 6 | 6 | |
@@ -43,28 +43,30 @@ | ||
| 43 | 43 | |
| 44 | 44 | ## Champs récupérés → schéma |
| 45 | 45 | |
| 46 | −Complétude mesurée sur les **372 événements actifs** de la source ; exemples tirés d'un événement réel (`bandsintown:108509738`). | |
| 46 | +Complétude mesurée sur les **370 événements actifs** de la source ; exemples tirés d'un événement réel (`bandsintown:108747079`). | |
| 47 | 47 | |
| 48 | 48 | | Champ (`events.*`) | Description | Complétude | Exemple réel | |
| 49 | 49 | |---|---|---|---| |
| 50 | −| `title` — Titre | titre de l'événement | 100 % | Saint-Roch-de-l'Achigan en Fête 2026 | | |
| 51 | −| `description` — Description | texte descriptif (source ou fiche détail) | 17 % | ∅ | | |
| 52 | −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.bandsintown.com/e/108509738?app_id=js_www.sorti-ka.com&came_from=267&utm_medium=api&… | | |
| 50 | +| `title` — Titre | titre de l'événement | 100 % | Doug St-Louis & Dj Chuck / Ptit Gros Bison à Grenville en Fête | | |
| 51 | +| `description` — Description | texte descriptif (source ou fiche détail) | 18 % | Au Parc Normand-Woodbury à Grenville. Spectacle Gratuit Ils seront en duo pour vous faire danser… | | |
| 52 | +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.bandsintown.com/e/108747079?app_id=js_www.sorti-ka.com&came_from=267&utm_medium=api&… | | |
| 53 | 53 | | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] | |
| 54 | −| `venue` — Salle (venue) | nom du lieu | 100 % | Saint-Roch-de-l'Achigan en Fête 2026 | | |
| 55 | −| `address` — Adresse | adresse civique | 98 % | Rue Vézina | | |
| 56 | −| `city` — Ville | municipalité | 100 % | Saint-roch-de-l'achigan | | |
| 57 | −| `region` — Région | région administrative | 98 % | Lanaudière | | |
| 58 | −| `lat` — GPS (lat/lng) | coordonnées géographiques | 100 % | 45.860801, -73.593176 | | |
| 54 | +| `venue` — Salle (venue) | nom du lieu | 100 % | Doug St-Louis & Dj Chuck / Ptit Gros Bison à Grenville en Fête | | |
| 55 | +| `address` — Adresse | adresse civique | 98 % | 21 Rue Tri Jean | | |
| 56 | +| `city` — Ville | municipalité | 100 % | Grenville | | |
| 57 | +| `region` — Région | région administrative | 99 % | Laurentides | | |
| 58 | +| `lat` — GPS (lat/lng) | coordonnées géographiques | 100 % | 45.630063, -74.600568 | | |
| 59 | 59 | | `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-22 | |
| 60 | 60 | | `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-22 | |
| 61 | −| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 18:30 | | |
| 61 | +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 20:30 | | |
| 62 | +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ | | |
| 63 | +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ | | |
| 62 | 64 | | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 1 % | 1 | |
| 63 | 65 | | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | |
| 64 | 66 | | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | |
| 65 | −| `artists` — Artistes | têtes d'affiche / lineup (JSON) | 100 % | ["Laurence St-Martin"] | | |
| 67 | +| `artists` — Artistes | têtes d'affiche / lineup (JSON) | 100 % | ["Doug St-Louis", "P'tit Gros Bison"] | | |
| 66 | 68 | | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | |
| 67 | −| `image` — Image | visuel (og:image ou média source) | 8 % | https://photos.bandsintown.com/large/17506085.jpeg | | |
| 69 | +| `image` — Image | visuel (og:image ou média source) | 7 % | https://photos.bandsintown.com/large/25853181.jpeg | | |
| 68 | 70 | | `website` — Site web | site officiel de l'événement | 0 % | ∅ | |
| 69 | 71 | |
| 70 | 72 | ## Fréquence & budgets |
@@ -80,17 +82,19 @@ Complétude mesurée sur les **372 événements actifs** de la source ; exemples | ||
| 80 | 82 | |
| 81 | 83 | ## Volumétrie & complétude live |
| 82 | 84 | |
| 83 | −*(mesuré le 2026-08-18 05:54 EDT dans `data/sortika.db`)* | |
| 85 | +*(mesuré le 2026-08-19 01:27 EDT dans `data/sortika.db`)* | |
| 84 | 86 | |
| 85 | −- **Événements en base** : 372 (dont **372 actifs**) | |
| 86 | −- **GPS** : 372/372 actifs (100 %) | |
| 87 | −- **Prix** : 4/372 actifs (1 %) | |
| 88 | −- **Heure (start_time)** : 371/372 actifs (100 %) | |
| 89 | −- **Artistes** : 372/372 actifs (100 %) | |
| 90 | −- **Image** : 29/372 actifs (8 %) | |
| 91 | −- **Salle (venue)** : 372/372 actifs (100 %) | |
| 92 | −- **Dernier sync** : 2026-08-18 04:52 — fetched 372, +0 ajoutés, ~0 mis à jour, -0 retirés | |
| 93 | −- **Syncs enregistrés** (sync_log) : 4 | |
| 87 | +- **Événements en base** : 372 (dont **370 actifs**) | |
| 88 | +- **GPS** : 370/370 actifs (100 %) | |
| 89 | +- **Prix** : 4/370 actifs (1 %) | |
| 90 | +- **Heure (start_time)** : 369/370 actifs (100 %) | |
| 91 | +- **Heure de fin** : 0/370 actifs (0 %) | |
| 92 | +- **Statut (annulé/reporté/complet)** : 0/370 actifs (0 %) | |
| 93 | +- **Artistes** : 370/370 actifs (100 %) | |
| 94 | +- **Image** : 27/370 actifs (7 %) | |
| 95 | +- **Salle (venue)** : 370/370 actifs (100 %) | |
| 96 | +- **Dernier sync** : 2026-08-19 01:16 — fetched 371, +0 ajoutés, ~371 mis à jour, -0 retirés | |
| 97 | +- **Syncs enregistrés** (sync_log) : 23 | |
| 94 | 98 | |
| 95 | 99 | ## Erreurs & dépannage |
| 96 | 100 | |
@@ -107,6 +111,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅ | ||
| 107 | 111 | |
| 108 | 112 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 109 | 113 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 114 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
| 110 | 115 | |
| 111 | 116 | Commits touchant `sortika/connectors/bandsintown.py` : |
| 112 | 117 | |
modified
docs/connecteurs/brossard.md
+28 −23
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Ville de Brossard — Calendrier des événements (`brossard`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : actif** · Type : `municipal` · Connecteur : `sortika/connectors/brossard.py` |
| 6 | 6 | |
@@ -43,28 +43,30 @@ | ||
| 43 | 43 | |
| 44 | 44 | ## Champs récupérés → schéma |
| 45 | 45 | |
| 46 | −Complétude mesurée sur les **264 événements actifs** de la source ; exemples tirés d'un événement réel (`brossard:37979`). | |
| 46 | +Complétude mesurée sur les **150 événements actifs** de la source ; exemples tirés d'un événement réel (`brossard:37838`). | |
| 47 | 47 | |
| 48 | 48 | | Champ (`events.*`) | Description | Complétude | Exemple réel | |
| 49 | 49 | |---|---|---|---| |
| 50 | −| `title` — Titre | titre de l'événement | 100 % | Atelier libre : crée ton bracelet d’amitié (26 septembre 2026) | | |
| 51 | −| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | Dans le cadre des Journées de la culture, viens créer ton propre bracelet d’amitié ! Choisis par… | | |
| 52 | −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://brossard.ca/calendrier-evenements/atelier-libre-cree-ton-bracelet-damitie-26-septembre-2… | | |
| 53 | −| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["conference"] | | |
| 54 | −| `venue` — Salle (venue) | nom du lieu | 54 % | Bibliothèque de Brossard Georgette-Lepage | | |
| 55 | −| `address` — Adresse | adresse civique | 54 % | 7855, av San Francisco | | |
| 50 | +| `title` — Titre | titre de l'événement | 100 % | Atelier jeux de société (16 septembre 2026) | | |
| 51 | +| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | Entrée libre. Les enfants âgés de moins de 8 ans doivent être accompagnés d’un adulte. Les enfan… | | |
| 52 | +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://brossard.ca/calendrier-evenements/atelier-jeux-de-societe-16-septembre-2026/ | | |
| 53 | +| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["famille"] | | |
| 54 | +| `venue` — Salle (venue) | nom du lieu | 94 % | Salle d'animation | | |
| 55 | +| `address` — Adresse | adresse civique | 94 % | 7855, av San Francisco | | |
| 56 | 56 | | `city` — Ville | municipalité | 100 % | Brossard | |
| 57 | 57 | | `region` — Région | région administrative | 100 % | Montérégie | |
| 58 | −| `lat` — GPS (lat/lng) | coordonnées géographiques | 0 % | 45.4551469, -73.4682277 | | |
| 59 | −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-09-26 | | |
| 60 | −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-09-26 | | |
| 61 | −| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 55 % | 13:00 | | |
| 58 | +| `lat` — GPS (lat/lng) | coordonnées géographiques | 94 % | 45.4551469, -73.4682277 | | |
| 59 | +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-09-16 | | |
| 60 | +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-09-16 | | |
| 61 | +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 96 % | 10:00 | | |
| 62 | +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ | | |
| 63 | +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ | | |
| 62 | 64 | | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | |
| 63 | 65 | | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | |
| 64 | 66 | | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | |
| 65 | 67 | | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | |
| 66 | 68 | | `organizer` — Organisateur | promoteur / organisme | 100 % | Ville de Brossard | |
| 67 | −| `image` — Image | visuel (og:image ou média source) | 57 % | https://biblio.brossard.ca/wp-content/uploads/2026/07/bracelets_amitie.jpg | | |
| 69 | +| `image` — Image | visuel (og:image ou média source) | 100 % | https://biblio.brossard.ca/wp-content/uploads/2025/07/jeux_societe_enfant.jpg | | |
| 68 | 70 | | `website` — Site web | site officiel de l'événement | 0 % | ∅ | |
| 69 | 71 | |
| 70 | 72 | ## Fréquence & budgets |
@@ -79,17 +81,19 @@ Complétude mesurée sur les **264 événements actifs** de la source ; exemples | ||
| 79 | 81 | |
| 80 | 82 | ## Volumétrie & complétude live |
| 81 | 83 | |
| 82 | −*(mesuré le 2026-08-18 05:54 EDT dans `data/sortika.db`)* | |
| 84 | +*(mesuré le 2026-08-19 01:27 EDT dans `data/sortika.db`)* | |
| 83 | 85 | |
| 84 | −- **Événements en base** : 264 (dont **264 actifs**) | |
| 85 | −- **GPS** : 1/264 actifs (0 %) | |
| 86 | −- **Prix** : 0/264 actifs (0 %) | |
| 87 | −- **Heure (start_time)** : 145/264 actifs (55 %) | |
| 88 | −- **Artistes** : 0/264 actifs (0 %) | |
| 89 | −- **Image** : 151/264 actifs (57 %) | |
| 90 | −- **Salle (venue)** : 142/264 actifs (54 %) | |
| 91 | −- **Dernier sync** : 2026-08-18 04:55 — fetched 264, +2 ajoutés, ~0 mis à jour, -0 retirés | |
| 92 | −- **Syncs enregistrés** (sync_log) : 4 | |
| 86 | +- **Événements en base** : 264 (dont **150 actifs**) | |
| 87 | +- **GPS** : 141/150 actifs (94 %) | |
| 88 | +- **Prix** : 0/150 actifs (0 %) | |
| 89 | +- **Heure (start_time)** : 144/150 actifs (96 %) | |
| 90 | +- **Heure de fin** : 0/150 actifs (0 %) | |
| 91 | +- **Statut (annulé/reporté/complet)** : 0/150 actifs (0 %) | |
| 92 | +- **Artistes** : 0/150 actifs (0 %) | |
| 93 | +- **Image** : 150/150 actifs (100 %) | |
| 94 | +- **Salle (venue)** : 141/150 actifs (94 %) | |
| 95 | +- **Dernier sync** : 2026-08-19 01:16 — fetched 264, +0 ajoutés, ~264 mis à jour, -0 retirés | |
| 96 | +- **Syncs enregistrés** (sync_log) : 23 | |
| 93 | 97 | |
| 94 | 98 | ## Erreurs & dépannage |
| 95 | 99 | |
@@ -105,6 +109,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅ | ||
| 105 | 109 | |
| 106 | 110 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 107 | 111 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 112 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
| 108 | 113 | |
| 109 | 114 | Commits touchant `sortika/connectors/brossard.py` : |
| 110 | 115 | |
modified
docs/connecteurs/cantonsdelest.md
+26 −21
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Tourisme Cantons-de-l'Est — calendrier officiel (ATR Estrie) (`cantonsdelest`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : actif** · Type : `tourisme-regional` · Connecteur : `sortika/connectors/cantonsdelest.py` |
| 6 | 6 | |
@@ -41,28 +41,30 @@ | ||
| 41 | 41 | |
| 42 | 42 | ## Champs récupérés → schéma |
| 43 | 43 | |
| 44 | −Complétude mesurée sur les **13 événements actifs** de la source ; exemples tirés d'un événement réel (`cantonsdelest:329`). | |
| 44 | +Complétude mesurée sur les **11 événements actifs** de la source ; exemples tirés d'un événement réel (`cantonsdelest:10200-4714`). | |
| 45 | 45 | |
| 46 | 46 | | Champ (`events.*`) | Description | Complétude | Exemple réel | |
| 47 | 47 | |---|---|---|---| |
| 48 | −| `title` — Titre | titre de l'événement | 100 % | ShazamFest | | |
| 49 | −| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | Ce festival rend hommage à la créativité, la communauté et l'expression artistique unique, réuni… | | |
| 50 | −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.cantonsdelest.com/evenements/329/shazamfest | | |
| 48 | +| `title` — Titre | titre de l'événement | 100 % | Vieillir en santé | | |
| 49 | +| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | La troisième journée portera sur les différentes façons de maintenir une bonne santé lorsqu’on p… | | |
| 50 | +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.cantonsdelest.com/evenements/10200/vieillir-en-sante/4714 | | |
| 51 | 51 | | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] | |
| 52 | 52 | | `venue` — Salle (venue) | nom du lieu | 0 % | ∅ | |
| 53 | −| `address` — Adresse | adresse civique | 85 % | 2722 Chemin de Ways Mills | | |
| 54 | −| `city` — Ville | municipalité | 100 % | Barnston-Ouest | | |
| 53 | +| `address` — Adresse | adresse civique | 91 % | 225 Rue Frontenac | | |
| 54 | +| `city` — Ville | municipalité | 100 % | Sherbrooke | | |
| 55 | 55 | | `region` — Région | région administrative | 100 % | Estrie | |
| 56 | −| `lat` — GPS (lat/lng) | coordonnées géographiques | 77 % | 45.126982, -71.99712 | | |
| 57 | −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-07-09 | | |
| 58 | −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-07-12 | | |
| 56 | +| `lat` — GPS (lat/lng) | coordonnées géographiques | 91 % | 45.403367, -71.895639 | | |
| 57 | +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-19 | | |
| 58 | +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-19 | | |
| 59 | 59 | | `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 0 % | ∅ | |
| 60 | +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ | | |
| 61 | +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ | | |
| 60 | 62 | | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | |
| 61 | 63 | | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | |
| 62 | 64 | | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | |
| 63 | 65 | | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | |
| 64 | 66 | | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | |
| 65 | −| `image` — Image | visuel (og:image ou média source) | 100 % | https://mto.media.tourinsoft.eu/upload/CD1-0618.jpg?width=1191&height=670 | | |
| 67 | +| `image` — Image | visuel (og:image ou média source) | 100 % | https://lvc-medias.lavitrine.com/552bc497-70fc-5c58-840d-b83a1235a126.png | | |
| 66 | 68 | | `website` — Site web | site officiel de l'événement | 0 % | ∅ | |
| 67 | 69 | |
| 68 | 70 | ## Fréquence & budgets |
@@ -77,17 +79,19 @@ Complétude mesurée sur les **13 événements actifs** de la source ; exemples | ||
| 77 | 79 | |
| 78 | 80 | ## Volumétrie & complétude live |
| 79 | 81 | |
| 80 | −*(mesuré le 2026-08-18 05:54 EDT dans `data/sortika.db`)* | |
| 82 | +*(mesuré le 2026-08-19 01:27 EDT dans `data/sortika.db`)* | |
| 81 | 83 | |
| 82 | −- **Événements en base** : 13 (dont **13 actifs**) | |
| 83 | −- **GPS** : 10/13 actifs (77 %) | |
| 84 | −- **Prix** : 0/13 actifs (0 %) | |
| 85 | −- **Heure (start_time)** : 0/13 actifs (0 %) | |
| 86 | −- **Artistes** : 0/13 actifs (0 %) | |
| 87 | −- **Image** : 13/13 actifs (100 %) | |
| 88 | −- **Salle (venue)** : 0/13 actifs (0 %) | |
| 89 | −- **Dernier sync** : 2026-08-18 05:52 — fetched 13, +13 ajoutés, ~0 mis à jour, -0 retirés | |
| 90 | −- **Syncs enregistrés** (sync_log) : 1 | |
| 84 | +- **Événements en base** : 23 (dont **11 actifs**) | |
| 85 | +- **GPS** : 10/11 actifs (91 %) | |
| 86 | +- **Prix** : 0/11 actifs (0 %) | |
| 87 | +- **Heure (start_time)** : 0/11 actifs (0 %) | |
| 88 | +- **Heure de fin** : 0/11 actifs (0 %) | |
| 89 | +- **Statut (annulé/reporté/complet)** : 0/11 actifs (0 %) | |
| 90 | +- **Artistes** : 0/11 actifs (0 %) | |
| 91 | +- **Image** : 11/11 actifs (100 %) | |
| 92 | +- **Salle (venue)** : 0/11 actifs (0 %) | |
| 93 | +- **Dernier sync** : 2026-08-19 01:16 — fetched 13, +0 ajoutés, ~13 mis à jour, -1 retirés | |
| 94 | +- **Syncs enregistrés** (sync_log) : 20 | |
| 91 | 95 | |
| 92 | 96 | ## Erreurs & dépannage |
| 93 | 97 | |
@@ -103,6 +107,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅ | ||
| 103 | 107 | |
| 104 | 108 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 105 | 109 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 110 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
| 106 | 111 | |
| 107 | 112 | Commits touchant `sortika/connectors/cantonsdelest.py` : |
| 108 | 113 | |
modified
docs/connecteurs/evenko.md
+24 −19
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # evenko — grands concerts et festivals (`evenko`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : actif** · Type : `promoteur` · Connecteur : `sortika/connectors/evenko.py` |
| 6 | 6 | |
@@ -40,28 +40,30 @@ | ||
| 40 | 40 | |
| 41 | 41 | ## Champs récupérés → schéma |
| 42 | 42 | |
| 43 | −Complétude mesurée sur les **421 événements actifs** de la source ; exemples tirés d'un événement réel (`evenko:e008791`). | |
| 43 | +Complétude mesurée sur les **421 événements actifs** de la source ; exemples tirés d'un événement réel (`evenko:e008238`). | |
| 44 | 44 | |
| 45 | 45 | | Champ (`events.*`) | Description | Complétude | Exemple réel | |
| 46 | 46 | |---|---|---|---| |
| 47 | −| `title` — Titre | titre de l'événement | 100 % | Disney Sur Glace présente La Magie en Famille | | |
| 48 | −| `description` — Description | texte descriptif (source ou fiche détail) | 18 % | ∅ | | |
| 49 | −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.ticketmaster.ca/event/310064E3C5686712?lang=fr-ca&brand=placebell | | |
| 50 | −| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] | | |
| 51 | −| `venue` — Salle (venue) | nom du lieu | 100 % | Place Bell | | |
| 47 | +| `title` — Titre | titre de l'événement | 100 % | Bunt. | | |
| 48 | +| `description` — Description | texte descriptif (source ou fiche détail) | 99 % | Portes : 19 h 00 | | |
| 49 | +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.ticketmaster.ca/event/310064A1D614A5D4?lang=fr-ca&brand=mtelus | | |
| 50 | +| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] | | |
| 51 | +| `venue` — Salle (venue) | nom du lieu | 100 % | MTELUS | | |
| 52 | 52 | | `address` — Adresse | adresse civique | 0 % | ∅ | |
| 53 | −| `city` — Ville | municipalité | 100 % | Laval | | |
| 54 | −| `region` — Région | région administrative | 100 % | Laval | | |
| 55 | −| `lat` — GPS (lat/lng) | coordonnées géographiques | 77 % | 45.5558423, -73.7216633 | | |
| 56 | −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-12-17 | | |
| 57 | −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-12-17 | | |
| 58 | −| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 99 % | 19:00 | | |
| 53 | +| `city` — Ville | municipalité | 100 % | Montréal | | |
| 54 | +| `region` — Région | région administrative | 100 % | Montréal | | |
| 55 | +| `lat` — GPS (lat/lng) | coordonnées géographiques | 77 % | 45.5106101, -73.5633963 | | |
| 56 | +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-09-17 | | |
| 57 | +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-09-17 | | |
| 58 | +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 99 % | 20:00 | | |
| 59 | +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ | | |
| 60 | +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | soldout | | |
| 59 | 61 | | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | |
| 60 | 62 | | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | |
| 61 | 63 | | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | |
| 62 | −| `artists` — Artistes | têtes d'affiche / lineup (JSON) | 99 % | ["Disney Sur Glace présente La Magie en Famille"] | | |
| 64 | +| `artists` — Artistes | têtes d'affiche / lineup (JSON) | 99 % | ["BUNT."] | | |
| 63 | 65 | | `organizer` — Organisateur | promoteur / organisme | 100 % | evenko | |
| 64 | −| `image` — Image | visuel (og:image ou média source) | 100 % | https://images.ctfassets.net/3yxl57nu0yl4/3sI9AuDa7Ju1B2dtmFzVtY/a977ac5c95df131068a94762069db2f… | | |
| 66 | +| `image` — Image | visuel (og:image ou média source) | 100 % | https://images.ctfassets.net/3yxl57nu0yl4/5vCTRo8NB8mgBnGkalFYWH/6b93506e56fb2e9f538b3d810817215… | | |
| 65 | 67 | | `website` — Site web | site officiel de l'événement | 0 % | ∅ | |
| 66 | 68 | |
| 67 | 69 | ## Fréquence & budgets |
@@ -71,17 +73,19 @@ Complétude mesurée sur les **421 événements actifs** de la source ; exemples | ||
| 71 | 73 | |
| 72 | 74 | ## Volumétrie & complétude live |
| 73 | 75 | |
| 74 | −*(mesuré le 2026-08-18 05:54 EDT dans `data/sortika.db`)* | |
| 76 | +*(mesuré le 2026-08-19 01:27 EDT dans `data/sortika.db`)* | |
| 75 | 77 | |
| 76 | −- **Événements en base** : 423 (dont **421 actifs**) | |
| 78 | +- **Événements en base** : 424 (dont **421 actifs**) | |
| 77 | 79 | - **GPS** : 326/421 actifs (77 %) |
| 78 | 80 | - **Prix** : 0/421 actifs (0 %) |
| 79 | 81 | - **Heure (start_time)** : 418/421 actifs (99 %) |
| 82 | +- **Heure de fin** : 0/421 actifs (0 %) | |
| 83 | +- **Statut (annulé/reporté/complet)** : 2/421 actifs (0 %) | |
| 80 | 84 | - **Artistes** : 418/421 actifs (99 %) |
| 81 | 85 | - **Image** : 421/421 actifs (100 %) |
| 82 | 86 | - **Salle (venue)** : 421/421 actifs (100 %) |
| 83 | −- **Dernier sync** : 2026-08-18 04:55 — fetched 421, +0 ajoutés, ~0 mis à jour, -2 retirés | |
| 84 | −- **Syncs enregistrés** (sync_log) : 20 | |
| 87 | +- **Dernier sync** : 2026-08-19 01:16 — fetched 422, +0 ajoutés, ~422 mis à jour, -0 retirés | |
| 88 | +- **Syncs enregistrés** (sync_log) : 39 | |
| 85 | 89 | |
| 86 | 90 | ## Erreurs & dépannage |
| 87 | 91 | |
@@ -97,6 +101,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅ | ||
| 97 | 101 | |
| 98 | 102 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 99 | 103 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 104 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
| 100 | 105 | |
| 101 | 106 | Commits touchant `sortika/connectors/evenko.py` : |
| 102 | 107 | |
modified
docs/connecteurs/eventbrite.md
+30 −25
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Eventbrite — billetterie libre-service (Québec) (`eventbrite`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : actif** · Type : `billetterie` · Connecteur : `sortika/connectors/eventbrite.py` |
| 6 | 6 | |
@@ -46,28 +46,30 @@ | ||
| 46 | 46 | |
| 47 | 47 | ## Champs récupérés → schéma |
| 48 | 48 | |
| 49 | −Complétude mesurée sur les **426 événements actifs** de la source ; exemples tirés d'un événement réel (`eventbrite:1989398621831`). | |
| 49 | +Complétude mesurée sur les **429 événements actifs** de la source ; exemples tirés d'un événement réel (`eventbrite:1992308860433`). | |
| 50 | 50 | |
| 51 | 51 | | Champ (`events.*`) | Description | Complétude | Exemple réel | |
| 52 | 52 | |---|---|---|---| |
| 53 | −| `title` — Titre | titre de l'événement | 100 % | SUGAR SAMMY - MONTRÉAL - EN FRANÇAIS | | |
| 54 | −| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | VERSION 100% FRANCO DE YOU'RE GONNA RIRE 2 | | |
| 55 | −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.eventbrite.ca/e/billets-sugar-sammy-montreal-en-francais-1989398621831 | | |
| 53 | +| `title` — Titre | titre de l'événement | 100 % | Artillery avec Drowning In Blood | | |
| 54 | +| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | Thrash legends Artillery's Made In Hell North American Tour | | |
| 55 | +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.eventbrite.com/e/artillery-avec-drowning-in-blood-tickets-1992308860433 | | |
| 56 | 56 | | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] | |
| 57 | −| `venue` — Salle (venue) | nom du lieu | 100 % | Salle Pierre-Mercure | | |
| 58 | −| `address` — Adresse | adresse civique | 100 % | 300 Boulevard de Maisonneuve Est | | |
| 57 | +| `venue` — Salle (venue) | nom du lieu | 100 % | Piranha Bar | | |
| 58 | +| `address` — Adresse | adresse civique | 100 % | 680 Rue Sainte-Catherine Ouest | | |
| 59 | 59 | | `city` — Ville | municipalité | 100 % | Montréal | |
| 60 | 60 | | `region` — Région | région administrative | 99 % | Montréal | |
| 61 | −| `lat` — GPS (lat/lng) | coordonnées géographiques | 100 % | 45.513753, -73.562262 | | |
| 62 | −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-09-12 | | |
| 63 | −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-09-12 | | |
| 61 | +| `lat` — GPS (lat/lng) | coordonnées géographiques | 100 % | 45.502852, -73.569942 | | |
| 62 | +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-09-15 | | |
| 63 | +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-09-15 | | |
| 64 | 64 | | `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 19:00 | |
| 65 | −| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 65 % | 0 | | |
| 66 | −| `price_min` — Prix min | tarif minimal réel ($) | 63 % | 59.99 | | |
| 67 | −| `price_label` — Libellé prix | étiquette tarifaire affichable | 65 % | 59.99 $ à 79.99 $ (Eventbrite) | | |
| 65 | +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 100 % | 23:00 | | |
| 66 | +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ | | |
| 67 | +| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 88 % | 0 | | |
| 68 | +| `price_min` — Prix min | tarif minimal réel ($) | 86 % | 32.99 | | |
| 69 | +| `price_label` — Libellé prix | étiquette tarifaire affichable | 88 % | 32.99 $ à 98.98 $ (Eventbrite) | | |
| 68 | 70 | | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | |
| 69 | −| `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | | |
| 70 | −| `image` — Image | visuel (og:image ou média source) | 97 % | https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F1184519371%2F309873035014%2F1%2Fori… | | |
| 71 | +| `organizer` — Organisateur | promoteur / organisme | 67 % | 13 Media Concerts | | |
| 72 | +| `image` — Image | visuel (og:image ou média source) | 98 % | https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F1187347149%2F55053021303%2F1%2Forig… | | |
| 71 | 73 | | `website` — Site web | site officiel de l'événement | 0 % | ∅ | |
| 72 | 74 | |
| 73 | 75 | ## Fréquence & budgets |
@@ -82,17 +84,19 @@ Complétude mesurée sur les **426 événements actifs** de la source ; exemples | ||
| 82 | 84 | |
| 83 | 85 | ## Volumétrie & complétude live |
| 84 | 86 | |
| 85 | −*(mesuré le 2026-08-18 05:54 EDT dans `data/sortika.db`)* | |
| 87 | +*(mesuré le 2026-08-19 01:27 EDT dans `data/sortika.db`)* | |
| 86 | 88 | |
| 87 | −- **Événements en base** : 426 (dont **426 actifs**) | |
| 88 | −- **GPS** : 426/426 actifs (100 %) | |
| 89 | −- **Prix** : 275/426 actifs (65 %) | |
| 90 | −- **Heure (start_time)** : 426/426 actifs (100 %) | |
| 91 | −- **Artistes** : 0/426 actifs (0 %) | |
| 92 | −- **Image** : 415/426 actifs (97 %) | |
| 93 | −- **Salle (venue)** : 426/426 actifs (100 %) | |
| 94 | −- **Dernier sync** : 2026-08-18 05:52 — fetched 426, +426 ajoutés, ~0 mis à jour, -0 retirés | |
| 95 | −- **Syncs enregistrés** (sync_log) : 1 | |
| 89 | +- **Événements en base** : 478 (dont **429 actifs**) | |
| 90 | +- **GPS** : 429/429 actifs (100 %) | |
| 91 | +- **Prix** : 376/429 actifs (88 %) | |
| 92 | +- **Heure (start_time)** : 429/429 actifs (100 %) | |
| 93 | +- **Heure de fin** : 429/429 actifs (100 %) | |
| 94 | +- **Statut (annulé/reporté/complet)** : 0/429 actifs (0 %) | |
| 95 | +- **Artistes** : 0/429 actifs (0 %) | |
| 96 | +- **Image** : 421/429 actifs (98 %) | |
| 97 | +- **Salle (venue)** : 429/429 actifs (100 %) | |
| 98 | +- **Dernier sync** : 2026-08-19 01:26 — fetched 426, +0 ajoutés, ~147 mis à jour, -3 retirés | |
| 99 | +- **Syncs enregistrés** (sync_log) : 21 | |
| 96 | 100 | |
| 97 | 101 | ## Erreurs & dépannage |
| 98 | 102 | |
@@ -108,6 +112,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅ | ||
| 108 | 112 | |
| 109 | 113 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 110 | 114 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 115 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
| 111 | 116 | |
| 112 | 117 | Commits touchant `sortika/connectors/eventbrite.py` : |
| 113 | 118 | |
modified
docs/connecteurs/gatineau.md
+2 −1
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Ville de Gatineau — Événements (`gatineau`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : abandonnee** · Type : `municipal` · Connecteur : *aucun (source sans connecteur runtime)* |
| 6 | 6 | |
@@ -43,3 +43,4 @@ | ||
| 43 | 43 | - **Source abandonnée** — Aucun jeu de données « événements » sur Données Québec (portail Gatineau : géomatique seulement) et site 100 % JavaScript sans API découverte (vérifié 2026-08-18) |
| 44 | 44 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 45 | 45 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 46 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
modified
docs/connecteurs/laval.md
+29 −24
@@ -1,14 +1,14 @@ | ||
| 1 | 1 | # Ville de Laval — Calendrier des activités (`laval`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | −**Statut : actif** · Type : `donnees-ouvertes` · Connecteur : `sortika/connectors/laval.py` | |
| 5 | +**Statut : morte-a-la-source** · Type : `donnees-ouvertes` · Connecteur : `sortika/connectors/laval.py` | |
| 6 | 6 | |
| 7 | 7 | ## Description |
| 8 | 8 | |
| 9 | 9 | - **Source** : [Ville de Laval — Calendrier des activités](https://www.donneesquebec.ca/recherche/dataset/calendrier-des-activites) |
| 10 | 10 | - **Couverture** : Activités municipales, Laval |
| 11 | −- **Extraction** : fichier JSON officiel (Données Québec) — EventDate/EndDate publiés en UTC (vérifié 2026-08) → convertis en date + heure locales Québec (minuit local = « toute la journée », pas d'heure) | |
| 11 | +- **Extraction** : fichier JSON officiel (Données Québec) — EventDate/EndDate publiés en UTC (vérifié 2026-08) → convertis en date + heure locales Québec (minuit local = « toute la journée », pas d'heure) ; détection du préfixe « ANNULÉ - » du titre → statut cancelled (Phase 2) | |
| 12 | 12 | |
| 13 | 13 | ## Accès |
| 14 | 14 | |
@@ -33,28 +33,30 @@ | ||
| 33 | 33 | |
| 34 | 34 | ## Champs récupérés → schéma |
| 35 | 35 | |
| 36 | −Complétude mesurée sur les **277 événements actifs** de la source ; exemples tirés d'un événement réel (`laval:biblio-jeunesse-educazoo-saint-valentin-2025-02-15`). | |
| 36 | +Complétude mesurée sur les **1 événements actifs** de la source ; exemples tirés d'un événement réel (`laval:mois-histoire-noirs-visages-histoire-exposition-2025-02-04`). | |
| 37 | 37 | |
| 38 | 38 | | Champ (`events.*`) | Description | Complétude | Exemple réel | |
| 39 | 39 | |---|---|---|---| |
| 40 | −| `title` — Titre | titre de l'événement | 100 % | Éducazoo | | |
| 41 | −| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | Cadeaux, parades, chants langoureux et techniques parfois étranges : les animaux déballent un ar… | | |
| 42 | −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.laval.ca/Pages/Fr/Calendrier/biblio-jeunesse-educazoo-saint-valentin.aspx | | |
| 43 | −| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["conference", "musique", "famille"] | | |
| 44 | −| `venue` — Salle (venue) | nom du lieu | 90 % | Bibliothèque Émile-Nelligan | | |
| 40 | +| `title` — Titre | titre de l'événement | 100 % | Visages de l'histoire : exposition | | |
| 41 | +| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | Tout au long du mois de février, dans le cadre du Mois de l’histoire des Noirs, découvrez l'expo… | | |
| 42 | +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.laval.ca/Pages/Fr/Calendrier/mois-histoire-noirs-visages-histoire-exposition.aspx | | |
| 43 | +| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["communautaire", "patrimoine"] | | |
| 44 | +| `venue` — Salle (venue) | nom du lieu | 0 % | ∅ | | |
| 45 | 45 | | `address` — Adresse | adresse civique | 0 % | ∅ | |
| 46 | 46 | | `city` — Ville | municipalité | 100 % | Laval | |
| 47 | 47 | | `region` — Région | région administrative | 100 % | Laval | |
| 48 | −| `lat` — GPS (lat/lng) | coordonnées géographiques | 51 % | 45.5521349, -73.7077536 | | |
| 49 | −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2025-02-15 | | |
| 50 | −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2025-02-15 | | |
| 51 | −| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 95 % | 14:45 | | |
| 48 | +| `lat` — GPS (lat/lng) | coordonnées géographiques | 0 % | ∅ | | |
| 49 | +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2025-02-04 | | |
| 50 | +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2034-08-29 | | |
| 51 | +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 08:30 | | |
| 52 | +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ | | |
| 53 | +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ | | |
| 52 | 54 | | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | |
| 53 | 55 | | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | |
| 54 | 56 | | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | |
| 55 | 57 | | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | |
| 56 | 58 | | `organizer` — Organisateur | promoteur / organisme | 100 % | Ville de Laval | |
| 57 | −| `image` — Image | visuel (og:image ou média source) | 98 % | https://www.laval.ca/PublishingImages/Calendrier-des-activites/bibliotheque/jeunesse-educazoo-sa… | | |
| 59 | +| `image` — Image | visuel (og:image ou média source) | 100 % | https://www.laval.ca/PublishingImages/Calendrier-des-activites/visage-histoire-335x215.jpg | | |
| 58 | 60 | | `website` — Site web | site officiel de l'événement | 0 % | ∅ | |
| 59 | 61 | |
| 60 | 62 | ## Fréquence & budgets |
@@ -64,17 +66,19 @@ Complétude mesurée sur les **277 événements actifs** de la source ; exemples | ||
| 64 | 66 | |
| 65 | 67 | ## Volumétrie & complétude live |
| 66 | 68 | |
| 67 | −*(mesuré le 2026-08-18 05:54 EDT dans `data/sortika.db`)* | |
| 69 | +*(mesuré le 2026-08-19 01:27 EDT dans `data/sortika.db`)* | |
| 68 | 70 | |
| 69 | −- **Événements en base** : 277 (dont **277 actifs**) | |
| 70 | −- **GPS** : 142/277 actifs (51 %) | |
| 71 | −- **Prix** : 0/277 actifs (0 %) | |
| 72 | −- **Heure (start_time)** : 264/277 actifs (95 %) | |
| 73 | −- **Artistes** : 0/277 actifs (0 %) | |
| 74 | −- **Image** : 271/277 actifs (98 %) | |
| 75 | −- **Salle (venue)** : 248/277 actifs (90 %) | |
| 76 | −- **Dernier sync** : 2026-08-18 04:55 — fetched 293, +0 ajoutés, ~32 mis à jour, -0 retirés | |
| 77 | −- **Syncs enregistrés** (sync_log) : 23 | |
| 71 | +- **Événements en base** : 277 (dont **1 actifs**) | |
| 72 | +- **GPS** : 0/1 actifs (0 %) | |
| 73 | +- **Prix** : 0/1 actifs (0 %) | |
| 74 | +- **Heure (start_time)** : 1/1 actifs (100 %) | |
| 75 | +- **Heure de fin** : 0/1 actifs (0 %) | |
| 76 | +- **Statut (annulé/reporté/complet)** : 0/1 actifs (0 %) | |
| 77 | +- **Artistes** : 0/1 actifs (0 %) | |
| 78 | +- **Image** : 1/1 actifs (100 %) | |
| 79 | +- **Salle (venue)** : 0/1 actifs (0 %) | |
| 80 | +- **Dernier sync** : 2026-08-19 01:17 — fetched 293, +0 ajoutés, ~293 mis à jour, -0 retirés | |
| 81 | +- **Syncs enregistrés** (sync_log) : 42 | |
| 78 | 82 | |
| 79 | 83 | ## Erreurs & dépannage |
| 80 | 84 | |
@@ -92,6 +96,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅ | ||
| 92 | 96 | |
| 93 | 97 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 94 | 98 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 99 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
| 95 | 100 | |
| 96 | 101 | Commits touchant `sortika/connectors/laval.py` : |
| 97 | 102 | |
modified
docs/connecteurs/lavitrine.md
+31 −24
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # La Vitrine culturelle (`lavitrine`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : actif** · Type : `billetterie` · Connecteur : `sortika/connectors/lavitrine.py` |
| 6 | 6 | |
@@ -27,8 +27,10 @@ | ||
| 27 | 27 | > concerts (Grand Montréal + Québec + tournées). |
| 28 | 28 | > Extraction: sitemap.xml public (~2 000 fiches /fr/evenement/ + 185 |
| 29 | 29 | > /fr/exposition/, lastmod par URL) puis pages fiche rendues |
| 30 | −> serveur (h1, bloc .event_calendar : jour/mois/année, salle, | |
| 31 | −> ville ; og:image). GET directs — pas d'anti-bot. | |
| 30 | +> serveur (h1, bloc .event_calendar : jour/mois/année, HEURE | |
| 31 | +> (« 15:00 HNE » dans la slide), salle, ville ; og:image ; | |
| 32 | +> description = event_tabs_description-short + about-description). | |
| 33 | +> GET directs — pas d'anti-bot. | |
| 32 | 34 | > INCRÉMENTAL avec cache disque (data/lavitrine_cache.json) : |
| 33 | 35 | > nouvelles fiches d'abord, re-visite roulante après 7 jours, |
| 34 | 36 | > plafonné à LV_MAX_FETCH fiches/sync. |
@@ -41,28 +43,30 @@ | ||
| 41 | 43 | |
| 42 | 44 | ## Champs récupérés → schéma |
| 43 | 45 | |
| 44 | −Complétude mesurée sur les **5127 événements actifs** de la source ; exemples tirés d'un événement réel (`lavitrine:23777-2026-11-22`). | |
| 46 | +Complétude mesurée sur les **5087 événements actifs** de la source ; exemples tirés d'un événement réel (`lavitrine:19959-2026-12-18`). | |
| 45 | 47 | |
| 46 | 48 | | Champ (`events.*`) | Description | Complétude | Exemple réel | |
| 47 | 49 | |---|---|---|---| |
| 48 | −| `title` — Titre | titre de l'événement | 100 % | 100 ans de chansons françaises avec Richard Charest | | |
| 49 | −| `description` — Description | texte descriptif (source ou fiche détail) | 0 % | ∅ | | |
| 50 | −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.lavitrine.com/fr/evenement/100-ans-de-chansons-francaises-avec-richard-charest/23777 | | |
| 51 | −| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] | | |
| 52 | −| `venue` — Salle (venue) | nom du lieu | 100 % | Théâtre Petit Champlain | | |
| 50 | +| `title` — Titre | titre de l'événement | 100 % | Exterio | | |
| 51 | +| `description` — Description | texte descriptif (source ou fiche détail) | 51 % | C’est en 1992 que le groupe EXTERIO fait son apparition dans la banlieue montréalaise de l’Île-B… | | |
| 52 | +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.lavitrine.com/fr/evenement/exterio/19959 | | |
| 53 | +| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] | | |
| 54 | +| `venue` — Salle (venue) | nom du lieu | 100 % | Grizzly Fuzz | | |
| 53 | 55 | | `address` — Adresse | adresse civique | 0 % | ∅ | |
| 54 | 56 | | `city` — Ville | municipalité | 100 % | Québec | |
| 55 | 57 | | `region` — Région | région administrative | 100 % | Capitale-Nationale | |
| 56 | −| `lat` — GPS (lat/lng) | coordonnées géographiques | 52 % | 46.8115511, -71.203632 | | |
| 57 | −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-11-22 | | |
| 58 | −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-11-22 | | |
| 59 | −| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 0 % | ∅ | | |
| 58 | +| `lat` — GPS (lat/lng) | coordonnées géographiques | 52 % | 46.8132333, -71.2279284 | | |
| 59 | +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-12-18 | | |
| 60 | +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-12-18 | | |
| 61 | +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 51 % | 20:00 | | |
| 62 | +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ | | |
| 63 | +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ | | |
| 60 | 64 | | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | |
| 61 | 65 | | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | |
| 62 | 66 | | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | |
| 63 | 67 | | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | |
| 64 | 68 | | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | |
| 65 | −| `image` — Image | visuel (og:image ou média source) | 100 % | https://lvc-medias.lavitrine.com/acf4025b-3502-5217-b26d-f3bd5a35c6dc.webp | | |
| 69 | +| `image` — Image | visuel (og:image ou média source) | 100 % | https://lvc-medias.lavitrine.com/7a937ee1-0e46-5c6c-9e97-1e995767315d.jpg | | |
| 66 | 70 | | `website` — Site web | site officiel de l'événement | 0 % | ∅ | |
| 67 | 71 | |
| 68 | 72 | ## Fréquence & budgets |
@@ -77,17 +81,19 @@ Complétude mesurée sur les **5127 événements actifs** de la source ; exemple | ||
| 77 | 81 | |
| 78 | 82 | ## Volumétrie & complétude live |
| 79 | 83 | |
| 80 | −*(mesuré le 2026-08-18 05:54 EDT dans `data/sortika.db`)* | |
| 84 | +*(mesuré le 2026-08-19 01:27 EDT dans `data/sortika.db`)* | |
| 81 | 85 | |
| 82 | −- **Événements en base** : 5137 (dont **5127 actifs**) | |
| 83 | −- **GPS** : 2681/5127 actifs (52 %) | |
| 84 | −- **Prix** : 0/5127 actifs (0 %) | |
| 85 | −- **Heure (start_time)** : 0/5127 actifs (0 %) | |
| 86 | −- **Artistes** : 0/5127 actifs (0 %) | |
| 87 | −- **Image** : 5127/5127 actifs (100 %) | |
| 88 | −- **Salle (venue)** : 5125/5127 actifs (100 %) | |
| 89 | −- **Dernier sync** : 2026-08-18 04:55 — fetched 5127, +0 ajoutés, ~0 mis à jour, -0 retirés | |
| 90 | −- **Syncs enregistrés** (sync_log) : 13 | |
| 86 | +- **Événements en base** : 5145 (dont **5087 actifs**) | |
| 87 | +- **GPS** : 2660/5087 actifs (52 %) | |
| 88 | +- **Prix** : 0/5087 actifs (0 %) | |
| 89 | +- **Heure (start_time)** : 2609/5087 actifs (51 %) | |
| 90 | +- **Heure de fin** : 0/5087 actifs (0 %) | |
| 91 | +- **Statut (annulé/reporté/complet)** : 0/5087 actifs (0 %) | |
| 92 | +- **Artistes** : 0/5087 actifs (0 %) | |
| 93 | +- **Image** : 5087/5087 actifs (100 %) | |
| 94 | +- **Salle (venue)** : 5085/5087 actifs (100 %) | |
| 95 | +- **Dernier sync** : 2026-08-19 01:21 — fetched 5127, +1 ajoutés, ~1570 mis à jour, -0 retirés | |
| 96 | +- **Syncs enregistrés** (sync_log) : 33 | |
| 91 | 97 | |
| 92 | 98 | ## Erreurs & dépannage |
| 93 | 99 | |
@@ -104,6 +110,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅ | ||
| 104 | 110 | |
| 105 | 111 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 106 | 112 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 113 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
| 107 | 114 | |
| 108 | 115 | Commits touchant `sortika/connectors/lavitrine.py` : |
| 109 | 116 | |
modified
docs/connecteurs/lepointdevente.md
+31 −26
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Le point de vente — billetterie québécoise (`lepointdevente`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : actif** · Type : `billetterie` · Connecteur : `sortika/connectors/lepointdevente.py` |
| 6 | 6 | |
@@ -44,28 +44,30 @@ | ||
| 44 | 44 | |
| 45 | 45 | ## Champs récupérés → schéma |
| 46 | 46 | |
| 47 | −Complétude mesurée sur les **1787 événements actifs** de la source ; exemples tirés d'un événement réel (`lepointdevente:ghj260915003`). | |
| 47 | +Complétude mesurée sur les **1786 événements actifs** de la source ; exemples tirés d'un événement réel (`lepointdevente:7gw260926001`). | |
| 48 | 48 | |
| 49 | 49 | | Champ (`events.*`) | Description | Complétude | Exemple réel | |
| 50 | 50 | |---|---|---|---| |
| 51 | −| `title` — Titre | titre de l'événement | 100 % | FAUBOURG SAINT-JEAN - Vie de quartier | | |
| 52 | −| `description` — Description | texte descriptif (source ou fiche détail) | 46 % | Un souper gourmand dans la haute-ville !Découvrez les restaurants chouchous des locaux dans ce q… | | |
| 53 | −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://lepointdevente.com/billets/ghj260915003 | | |
| 51 | +| `title` — Titre | titre de l'événement | 100 % | Sam Vigneault en rodage | | |
| 52 | +| `description` — Description | texte descriptif (source ou fiche détail) | 88 % | Sam Vigneault en rodage– HumoristeSamedi 26 septembre 2026 à la Chapelle du LacOriginaire de Ple… | | |
| 53 | +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://lepointdevente.com/billets/7gw260926001 | | |
| 54 | 54 | | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] | |
| 55 | −| `venue` — Salle (venue) | nom du lieu | 99 % | Faubourg St-Jean | | |
| 55 | +| `venue` — Salle (venue) | nom du lieu | 99 % | Chapelle du Lac | | |
| 56 | 56 | | `address` — Adresse | adresse civique | 0 % | ∅ | |
| 57 | −| `city` — Ville | municipalité | 100 % | Québec | | |
| 57 | +| `city` — Ville | municipalité | 100 % | Fossambault-sur-le-Lac | | |
| 58 | 58 | | `region` — Région | région administrative | 98 % | Capitale-Nationale | |
| 59 | −| `lat` — GPS (lat/lng) | coordonnées géographiques | 27 % | 45.2564309, -73.6230701 | | |
| 60 | −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-09-15 | | |
| 61 | −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-09-15 | | |
| 62 | −| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 94 % | 17:00 | | |
| 63 | −| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 46 % | 0 | | |
| 64 | −| `price_min` — Prix min | tarif minimal réel ($) | 45 % | 261.26 | | |
| 65 | −| `price_label` — Libellé prix | étiquette tarifaire affichable | 46 % | Admission générale 261.26 $ | | |
| 66 | −| `artists` — Artistes | têtes d'affiche / lineup (JSON) | 1 % | [] | | |
| 59 | +| `lat` — GPS (lat/lng) | coordonnées géographiques | 27 % | 46.8903229, -71.6121222 | | |
| 60 | +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-09-26 | | |
| 61 | +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-09-26 | | |
| 62 | +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 94 % | 20:00 | | |
| 63 | +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ | | |
| 64 | +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ | | |
| 65 | +| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 92 % | 0 | | |
| 66 | +| `price_min` — Prix min | tarif minimal réel ($) | 89 % | 30.0 | | |
| 67 | +| `price_label` — Libellé prix | étiquette tarifaire affichable | 92 % | Table basse et chaise 30 $ · Table-bar et tabouret avec dossier 30 $ · Table-bistro et tabouret … | | |
| 68 | +| `artists` — Artistes | têtes d'affiche / lineup (JSON) | 1 % | ["Sam Vigneault"] | | |
| 67 | 69 | | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | |
| 68 | −| `image` — Image | visuel (og:image ou média source) | 100 % | https://tpos.s3.amazonaws.com/events/GHJ/26/01/15/001/ghj260115001-1152x648-fr-695b81b1.png | | |
| 70 | +| `image` — Image | visuel (og:image ou média source) | 100 % | https://tpos.s3.amazonaws.com/events/7GW/26/09/26/001/7gw260926001-1152x648-fr-6984c862.png | | |
| 69 | 71 | | `website` — Site web | site officiel de l'événement | 0 % | ∅ | |
| 70 | 72 | |
| 71 | 73 | ## Fréquence & budgets |
@@ -80,17 +82,19 @@ Complétude mesurée sur les **1787 événements actifs** de la source ; exemple | ||
| 80 | 82 | |
| 81 | 83 | ## Volumétrie & complétude live |
| 82 | 84 | |
| 83 | −*(mesuré le 2026-08-18 05:54 EDT dans `data/sortika.db`)* | |
| 85 | +*(mesuré le 2026-08-19 01:27 EDT dans `data/sortika.db`)* | |
| 84 | 86 | |
| 85 | −- **Événements en base** : 4191 (dont **1787 actifs**) | |
| 86 | −- **GPS** : 476/1787 actifs (27 %) | |
| 87 | −- **Prix** : 823/1787 actifs (46 %) | |
| 88 | −- **Heure (start_time)** : 1673/1787 actifs (94 %) | |
| 89 | −- **Artistes** : 16/1787 actifs (1 %) | |
| 90 | −- **Image** : 1787/1787 actifs (100 %) | |
| 91 | −- **Salle (venue)** : 1777/1787 actifs (99 %) | |
| 92 | −- **Dernier sync** : 2026-08-18 05:00 — fetched 1787, +0 ajoutés, ~153 mis à jour, -0 retirés | |
| 93 | −- **Syncs enregistrés** (sync_log) : 24 | |
| 87 | +- **Événements en base** : 4237 (dont **1786 actifs**) | |
| 88 | +- **GPS** : 486/1786 actifs (27 %) | |
| 89 | +- **Prix** : 1647/1786 actifs (92 %) | |
| 90 | +- **Heure (start_time)** : 1673/1786 actifs (94 %) | |
| 91 | +- **Heure de fin** : 0/1786 actifs (0 %) | |
| 92 | +- **Statut (annulé/reporté/complet)** : 0/1786 actifs (0 %) | |
| 93 | +- **Artistes** : 16/1786 actifs (1 %) | |
| 94 | +- **Image** : 1786/1786 actifs (100 %) | |
| 95 | +- **Salle (venue)** : 1776/1786 actifs (99 %) | |
| 96 | +- **Dernier sync** : 2026-08-19 01:19 — fetched 1787, +0 ajoutés, ~1787 mis à jour, -2 retirés | |
| 97 | +- **Syncs enregistrés** (sync_log) : 43 | |
| 94 | 98 | |
| 95 | 99 | ## Erreurs & dépannage |
| 96 | 100 | |
@@ -107,6 +111,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅ | ||
| 107 | 111 | |
| 108 | 112 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 109 | 113 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 114 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
| 110 | 115 | |
| 111 | 116 | Commits touchant `sortika/connectors/lepointdevente.py` : |
| 112 | 117 | |
modified
docs/connecteurs/levis.md
+2 −1
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Ville de Lévis — Calendrier (`levis`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : abandonnee** · Type : `municipal` · Connecteur : *aucun (source sans connecteur runtime)* |
| 6 | 6 | |
@@ -43,3 +43,4 @@ | ||
| 43 | 43 | - **Source abandonnée** — Site derrière un WAF (403 sur GET identifiés) et aucun jeu « événements » sur Données Québec (vérifié 2026-08-18) |
| 44 | 44 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 45 | 45 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 46 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
modified
docs/connecteurs/longueuil.md
+27 −22
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Ville de Longueuil — Événements (nouveau portail) (`longueuil`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : actif** · Type : `municipal` · Connecteur : `sortika/connectors/longueuil.py` |
| 6 | 6 | |
@@ -43,28 +43,30 @@ | ||
| 43 | 43 | |
| 44 | 44 | ## Champs récupérés → schéma |
| 45 | 45 | |
| 46 | −Complétude mesurée sur les **9 événements actifs** de la source ; exemples tirés d'un événement réel (`longueuil:journee-de-la-biodiversite-au-parc-michel-chartrand`). | |
| 46 | +Complétude mesurée sur les **4 événements actifs** de la source ; exemples tirés d'un événement réel (`longueuil:voir-bleu-collection-loto-quebec`). | |
| 47 | 47 | |
| 48 | 48 | | Champ (`events.*`) | Description | Complétude | Exemple réel | |
| 49 | 49 | |---|---|---|---| |
| 50 | −| `title` — Titre | titre de l'événement | 100 % | Journée de la biodiversité au parc Michel-Chartrand | | |
| 51 | −| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | Découvrez le parc-nature Michel-Chartrand sous un nouvel angle lors de la première édition de la… | | |
| 52 | −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://longueuil.quebec/fr/evenements/journee-de-la-biodiversite-au-parc-michel-chartrand | | |
| 53 | −| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["plein-air"] | | |
| 50 | +| `title` — Titre | titre de l'événement | 100 % | Voir bleu \| Collection Loto-Québec | | |
| 51 | +| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | Voir bleu a été réalisée pour souligner la contribution de Loto-Québec à l’art d’ici depuis plus… | | |
| 52 | +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://longueuil.quebec/fr/evenements/voir-bleu-collection-loto-quebec | | |
| 53 | +| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] | | |
| 54 | 54 | | `venue` — Salle (venue) | nom du lieu | 0 % | ∅ | |
| 55 | −| `address` — Adresse | adresse civique | 100 % | 1895, rue Adoncour | | |
| 55 | +| `address` — Adresse | adresse civique | 100 % | 300, rue Saint-Charles Ouest | | |
| 56 | 56 | | `city` — Ville | municipalité | 100 % | Longueuil | |
| 57 | 57 | | `region` — Région | région administrative | 100 % | Montérégie | |
| 58 | −| `lat` — GPS (lat/lng) | coordonnées géographiques | 0 % | ∅ | | |
| 59 | −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-29 | | |
| 60 | −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-29 | | |
| 61 | −| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 10:00 | | |
| 58 | +| `lat` — GPS (lat/lng) | coordonnées géographiques | 75 % | 45.5370761, -73.5110315 | | |
| 59 | +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-05-22 | | |
| 60 | +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-30 | | |
| 61 | +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 09:00 | | |
| 62 | +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 50 % | 17:00 | | |
| 63 | +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ | | |
| 62 | 64 | | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | |
| 63 | 65 | | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | |
| 64 | 66 | | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | |
| 65 | 67 | | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | |
| 66 | 68 | | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | |
| 67 | −| `image` — Image | visuel (og:image ou média source) | 0 % | ∅ | | |
| 69 | +| `image` — Image | visuel (og:image ou média source) | 100 % | https://cms.longueuil.quebec/sites/default/files/styles/front_medium_16_9/public/medias/2026-05/… | | |
| 68 | 70 | | `website` — Site web | site officiel de l'événement | 0 % | ∅ | |
| 69 | 71 | |
| 70 | 72 | ## Fréquence & budgets |
@@ -79,17 +81,19 @@ Complétude mesurée sur les **9 événements actifs** de la source ; exemples t | ||
| 79 | 81 | |
| 80 | 82 | ## Volumétrie & complétude live |
| 81 | 83 | |
| 82 | −*(mesuré le 2026-08-18 05:54 EDT dans `data/sortika.db`)* | |
| 84 | +*(mesuré le 2026-08-19 01:27 EDT dans `data/sortika.db`)* | |
| 83 | 85 | |
| 84 | −- **Événements en base** : 9 (dont **9 actifs**) | |
| 85 | −- **GPS** : 0/9 actifs (0 %) | |
| 86 | −- **Prix** : 0/9 actifs (0 %) | |
| 87 | −- **Heure (start_time)** : 9/9 actifs (100 %) | |
| 88 | −- **Artistes** : 0/9 actifs (0 %) | |
| 89 | −- **Image** : 0/9 actifs (0 %) | |
| 90 | −- **Salle (venue)** : 0/9 actifs (0 %) | |
| 91 | −- **Dernier sync** : 2026-08-18 05:52 — fetched 9, +9 ajoutés, ~0 mis à jour, -0 retirés | |
| 92 | −- **Syncs enregistrés** (sync_log) : 1 | |
| 86 | +- **Événements en base** : 9 (dont **4 actifs**) | |
| 87 | +- **GPS** : 3/4 actifs (75 %) | |
| 88 | +- **Prix** : 0/4 actifs (0 %) | |
| 89 | +- **Heure (start_time)** : 4/4 actifs (100 %) | |
| 90 | +- **Heure de fin** : 2/4 actifs (50 %) | |
| 91 | +- **Statut (annulé/reporté/complet)** : 0/4 actifs (0 %) | |
| 92 | +- **Artistes** : 0/4 actifs (0 %) | |
| 93 | +- **Image** : 4/4 actifs (100 %) | |
| 94 | +- **Salle (venue)** : 0/4 actifs (0 %) | |
| 95 | +- **Dernier sync** : 2026-08-19 01:19 — fetched 9, +0 ajoutés, ~9 mis à jour, -0 retirés | |
| 96 | +- **Syncs enregistrés** (sync_log) : 20 | |
| 93 | 97 | |
| 94 | 98 | ## Erreurs & dépannage |
| 95 | 99 | |
@@ -105,6 +109,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅ | ||
| 105 | 109 | |
| 106 | 110 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 107 | 111 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 112 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
| 108 | 113 | |
| 109 | 114 | Commits touchant `sortika/connectors/longueuil.py` : |
| 110 | 115 | |
modified
docs/connecteurs/montreal.md
+29 −24
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Ville de Montréal — Événements publics (`montreal`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : actif** · Type : `donnees-ouvertes` · Connecteur : `sortika/connectors/montreal.py` |
| 6 | 6 | |
@@ -37,28 +37,30 @@ | ||
| 37 | 37 | |
| 38 | 38 | ## Champs récupérés → schéma |
| 39 | 39 | |
| 40 | −Complétude mesurée sur les **5679 événements actifs** de la source ; exemples tirés d'un événement réel (`montreal:swing-tonique-jazz-band-114189`). | |
| 40 | +Complétude mesurée sur les **3291 événements actifs** de la source ; exemples tirés d'un événement réel (`montreal:seance-du-conseil-darrondissement-de-ville-marie-de-novembre-39866`). | |
| 41 | 41 | |
| 42 | 42 | | Champ (`events.*`) | Description | Complétude | Exemple réel | |
| 43 | 43 | |---|---|---|---| |
| 44 | −| `title` — Titre | titre de l'événement | 100 % | Swing Tonique Jazz Band | | |
| 45 | −| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | Fanfare Swing Tonique Jazz Band sur la Plaza St-Hubert le 20 août à 17h30. | | |
| 46 | −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://montreal.ca/evenements/swing-tonique-jazz-band-114189 | | |
| 47 | −| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] | | |
| 48 | −| `venue` — Salle (venue) | nom du lieu | 4 % | Plaza St-Hubert | | |
| 49 | −| `address` — Adresse | adresse civique | 4 % | Coin rue Bellechasse et rue St-Hubert | | |
| 44 | +| `title` — Titre | titre de l'événement | 100 % | Séance du conseil d'arrondissement de Ville-Marie de novembre | | |
| 45 | +| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | Participez à la vie démocratique de Ville-Marie et assistez au conseil d’arrondissement du 10 no… | | |
| 46 | +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://montreal.ca/evenements/seance-du-conseil-darrondissement-de-ville-marie-de-novembre-3986… | | |
| 47 | +| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["communautaire"] | | |
| 48 | +| `venue` — Salle (venue) | nom du lieu | 5 % | Salle du conseil d'arrondissement | | |
| 49 | +| `address` — Adresse | adresse civique | 5 % | 800, boulevard De Maisonneuve Est, rez-de-chaussée | | |
| 50 | 50 | | `city` — Ville | municipalité | 100 % | Montréal | |
| 51 | 51 | | `region` — Région | région administrative | 100 % | Montréal | |
| 52 | −| `lat` — GPS (lat/lng) | coordonnées géographiques | 97 % | 45.534722, -73.599719 | | |
| 53 | −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-20 | | |
| 54 | −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-20 | | |
| 55 | −| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 21 % | 17:30 | | |
| 52 | +| `lat` — GPS (lat/lng) | coordonnées géographiques | 99 % | 45.516518, -73.559733 | | |
| 53 | +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-11-10 | | |
| 54 | +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-11-10 | | |
| 55 | +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 18:30 | | |
| 56 | +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 9 % | 18:30 | | |
| 57 | +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ | | |
| 56 | 58 | | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 100 % | 1 | |
| 57 | 59 | | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | |
| 58 | 60 | | `price_label` — Libellé prix | étiquette tarifaire affichable | 100 % | Gratuit — Entrée libre | |
| 59 | 61 | | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | |
| 60 | −| `organizer` — Organisateur | promoteur / organisme | 100 % | Ville de Montréal — Rosemont–La Petite-Patrie | | |
| 61 | −| `image` — Image | visuel (og:image ou média source) | 58 % | https://res.cloudinary.com/villemontreal/image/upload/w_1200,h_630,c_fill/f_auto,dpr_auto,q_auto… | | |
| 62 | +| `organizer` — Organisateur | promoteur / organisme | 100 % | Ville de Montréal — Ville-Marie | | |
| 63 | +| `image` — Image | visuel (og:image ou média source) | 100 % | https://res.cloudinary.com/villemontreal/image/upload/w_1200,h_630,c_fill/f_auto,dpr_auto,q_auto… | | |
| 62 | 64 | | `website` — Site web | site officiel de l'événement | 0 % | ∅ | |
| 63 | 65 | |
| 64 | 66 | ## Fréquence & budgets |
@@ -73,17 +75,19 @@ Complétude mesurée sur les **5679 événements actifs** de la source ; exemple | ||
| 73 | 75 | |
| 74 | 76 | ## Volumétrie & complétude live |
| 75 | 77 | |
| 76 | −*(mesuré le 2026-08-18 05:54 EDT dans `data/sortika.db`)* | |
| 78 | +*(mesuré le 2026-08-19 01:27 EDT dans `data/sortika.db`)* | |
| 77 | 79 | |
| 78 | −- **Événements en base** : 5729 (dont **5679 actifs**) | |
| 79 | −- **GPS** : 5530/5679 actifs (97 %) | |
| 80 | −- **Prix** : 5679/5679 actifs (100 %) | |
| 81 | −- **Heure (start_time)** : 1187/5679 actifs (21 %) | |
| 82 | −- **Artistes** : 0/5679 actifs (0 %) | |
| 83 | −- **Image** : 3296/5679 actifs (58 %) | |
| 84 | −- **Salle (venue)** : 246/5679 actifs (4 %) | |
| 85 | −- **Dernier sync** : 2026-08-18 05:01 — fetched 5679, +0 ajoutés, ~299 mis à jour, -0 retirés | |
| 86 | −- **Syncs enregistrés** (sync_log) : 24 | |
| 80 | +- **Événements en base** : 5809 (dont **3291 actifs**) | |
| 81 | +- **GPS** : 3253/3291 actifs (99 %) | |
| 82 | +- **Prix** : 3291/3291 actifs (100 %) | |
| 83 | +- **Heure (start_time)** : 3277/3291 actifs (100 %) | |
| 84 | +- **Heure de fin** : 288/3291 actifs (9 %) | |
| 85 | +- **Statut (annulé/reporté/complet)** : 0/3291 actifs (0 %) | |
| 86 | +- **Artistes** : 0/3291 actifs (0 %) | |
| 87 | +- **Image** : 3291/3291 actifs (100 %) | |
| 88 | +- **Salle (venue)** : 160/3291 actifs (5 %) | |
| 89 | +- **Dernier sync** : 2026-08-19 01:19 — fetched 5686, +0 ajoutés, ~5686 mis à jour, -0 retirés | |
| 90 | +- **Syncs enregistrés** (sync_log) : 43 | |
| 87 | 91 | |
| 88 | 92 | ## Erreurs & dépannage |
| 89 | 93 | |
@@ -106,6 +110,7 @@ Erreurs relevées dans `sync_log` : | ||
| 106 | 110 | |
| 107 | 111 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 108 | 112 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 113 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
| 109 | 114 | |
| 110 | 115 | Commits touchant `sortika/connectors/montreal.py` : |
| 111 | 116 | |
modified
docs/connecteurs/repentigny.md
+2 −1
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Ville de Repentigny — Événements (`repentigny`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : abandonnee** · Type : `donnees-ouvertes` · Connecteur : *aucun (source sans connecteur runtime)* |
| 6 | 6 | |
@@ -43,3 +43,4 @@ | ||
| 43 | 43 | - **Source abandonnée** — Jeu de données périmé — dernière date d'événement : 2021-09 (vérifié 2026-08-17) |
| 44 | 44 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 45 | 45 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 46 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
modified
docs/connecteurs/saguenay.md
+2 −1
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Ville de Saguenay — Événements culturels (`saguenay`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : abandonnee** · Type : `donnees-ouvertes` · Connecteur : *aucun (source sans connecteur runtime)* |
| 6 | 6 | |
@@ -43,3 +43,4 @@ | ||
| 43 | 43 | - **Source abandonnée** — Jeu de données périmé — dernière date d'événement : 2022-06 (vérifié 2026-08-17) |
| 44 | 44 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 45 | 45 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 46 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
modified
docs/connecteurs/sherbrooke.md
+25 −20
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Ville de Sherbrooke — Calendrier des événements (`sherbrooke`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : actif** · Type : `municipal` · Connecteur : `sortika/connectors/sherbrooke.py` |
| 6 | 6 | |
@@ -36,28 +36,30 @@ | ||
| 36 | 36 | |
| 37 | 37 | ## Champs récupérés → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **271 événements actifs** de la source ; exemples tirés d'un événement réel (`sherbrooke:499`). | |
| 39 | +Complétude mesurée sur les **116 événements actifs** de la source ; exemples tirés d'un événement réel (`sherbrooke:2818`). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`events.*`) | Description | Complétude | Exemple réel | |
| 42 | 42 | |---|---|---|---| |
| 43 | −| `title` — Titre | titre de l'événement | 100 % | Séance d’échange et de discussion - relocalisation de la caserne d’incendie Hector-Olivier-Camir… | | |
| 44 | −| `description` — Description | texte descriptif (source ou fiche détail) | 96 % | La construction d’un nouveau poste incendie vise à bonifier le service et à réduire les délais d… | | |
| 45 | −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.sherbrooke.ca/fr/culture-sports-et-loisirs/calendrier-des-activites/499/seance-d-ech… | | |
| 43 | +| `title` — Titre | titre de l'événement | 100 % | Semaine de la Santé | | |
| 44 | +| `description` — Description | texte descriptif (source ou fiche détail) | 98 % | À l’occasion de la Semaine de la Santé, le Musée de la nature et des sciences de Sherbrooke prop… | | |
| 45 | +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.sherbrooke.ca/fr/culture-sports-et-loisirs/calendrier-des-activites/2818/semaine-de-… | | |
| 46 | 46 | | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] | |
| 47 | 47 | | `venue` — Salle (venue) | nom du lieu | 0 % | ∅ | |
| 48 | 48 | | `address` — Adresse | adresse civique | 0 % | ∅ | |
| 49 | 49 | | `city` — Ville | municipalité | 100 % | Sherbrooke | |
| 50 | 50 | | `region` — Région | région administrative | 100 % | Estrie | |
| 51 | 51 | | `lat` — GPS (lat/lng) | coordonnées géographiques | 0 % | ∅ | |
| 52 | −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2022-06-13 | | |
| 53 | −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2022-06-13 | | |
| 54 | −| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 88 % | 18:30 | | |
| 55 | −| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 100 % | 1 | | |
| 52 | +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-17 | | |
| 53 | +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-21 | | |
| 54 | +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 87 % | 09:00 | | |
| 55 | +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 92 % | 17:00 | | |
| 56 | +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ | | |
| 57 | +| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 100 % | 0 | | |
| 56 | 58 | | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | |
| 57 | 59 | | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | |
| 58 | 60 | | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | |
| 59 | 61 | | `organizer` — Organisateur | promoteur / organisme | 100 % | Ville de Sherbrooke | |
| 60 | −| `image` — Image | visuel (og:image ou média source) | 100 % | https://www.sherbrooke.ca/Fichiers/3337a882-4a53-e611-80ea-00155d09650f/Entities/49d0f046-294c-4… | | |
| 62 | +| `image` — Image | visuel (og:image ou média source) | 99 % | https://www.sherbrooke.ca/Fichiers/3337a882-4a53-e611-80ea-00155d09650f/Entities/0b82c068-841d-4… | | |
| 61 | 63 | | `website` — Site web | site officiel de l'événement | 0 % | ∅ | |
| 62 | 64 | |
| 63 | 65 | ## Fréquence & budgets |
@@ -67,17 +69,19 @@ Complétude mesurée sur les **271 événements actifs** de la source ; exemples | ||
| 67 | 69 | |
| 68 | 70 | ## Volumétrie & complétude live |
| 69 | 71 | |
| 70 | −*(mesuré le 2026-08-18 05:54 EDT dans `data/sortika.db`)* | |
| 72 | +*(mesuré le 2026-08-19 01:27 EDT dans `data/sortika.db`)* | |
| 71 | 73 | |
| 72 | −- **Événements en base** : 271 (dont **271 actifs**) | |
| 73 | −- **GPS** : 0/271 actifs (0 %) | |
| 74 | −- **Prix** : 271/271 actifs (100 %) | |
| 75 | −- **Heure (start_time)** : 239/271 actifs (88 %) | |
| 76 | −- **Artistes** : 0/271 actifs (0 %) | |
| 77 | −- **Image** : 270/271 actifs (100 %) | |
| 78 | −- **Salle (venue)** : 0/271 actifs (0 %) | |
| 79 | −- **Dernier sync** : 2026-08-18 05:01 — fetched 271, +0 ajoutés, ~0 mis à jour, -0 retirés | |
| 80 | −- **Syncs enregistrés** (sync_log) : 16 | |
| 74 | +- **Événements en base** : 271 (dont **116 actifs**) | |
| 75 | +- **GPS** : 0/116 actifs (0 %) | |
| 76 | +- **Prix** : 116/116 actifs (100 %) | |
| 77 | +- **Heure (start_time)** : 101/116 actifs (87 %) | |
| 78 | +- **Heure de fin** : 107/116 actifs (92 %) | |
| 79 | +- **Statut (annulé/reporté/complet)** : 0/116 actifs (0 %) | |
| 80 | +- **Artistes** : 0/116 actifs (0 %) | |
| 81 | +- **Image** : 115/116 actifs (99 %) | |
| 82 | +- **Salle (venue)** : 0/116 actifs (0 %) | |
| 83 | +- **Dernier sync** : 2026-08-19 01:19 — fetched 271, +0 ajoutés, ~271 mis à jour, -0 retirés | |
| 84 | +- **Syncs enregistrés** (sync_log) : 35 | |
| 81 | 85 | |
| 82 | 86 | ## Erreurs & dépannage |
| 83 | 87 | |
@@ -93,6 +97,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅ | ||
| 93 | 97 | |
| 94 | 98 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 95 | 99 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 100 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
| 96 | 101 | |
| 97 | 102 | Commits touchant `sortika/connectors/sherbrooke.py` : |
| 98 | 103 | |
modified
docs/connecteurs/sitq.md
+34 −25
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # SIT Québec — Ministère du Tourisme (`sitq`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : actif** · Type : `donnees-ouvertes` · Connecteur : `sortika/connectors/sitq.py` |
| 6 | 6 | |
@@ -41,29 +41,31 @@ | ||
| 41 | 41 | |
| 42 | 42 | ## Champs récupérés → schéma |
| 43 | 43 | |
| 44 | −Complétude mesurée sur les **1598 événements actifs** de la source ; exemples tirés d'un événement réel (`sitq:EVENMTOV500NIO`). | |
| 44 | +Complétude mesurée sur les **876 événements actifs** de la source ; exemples tirés d'un événement réel (`sitq:EVENMTOV500ON8`). | |
| 45 | 45 | |
| 46 | 46 | | Champ (`events.*`) | Description | Complétude | Exemple réel | |
| 47 | 47 | |---|---|---|---| |
| 48 | −| `title` — Titre | titre de l'événement | 100 % | JACKALOPE | | |
| 49 | −| `description` — Description | texte descriptif (source ou fiche détail) | 87 % | ∅ | | |
| 50 | −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | http://jackalopefest.ca | | |
| 51 | −| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["sport", "musique"] | | |
| 52 | −| `venue` — Salle (venue) | nom du lieu | 66 % | Quai Jacques-Cartier | | |
| 53 | −| `address` — Adresse | adresse civique | 84 % | Rue de la Commune Est | | |
| 54 | −| `city` — Ville | municipalité | 96 % | Montréal | | |
| 48 | +| `title` — Titre | titre de l'événement | 100 % | Festival du nouveau cinéma de Montréal | | |
| 49 | +| `description` — Description | texte descriptif (source ou fiche détail) | 89 % | Renseignements : 514 282-0004 · info@nouveaucinema.ca | | |
| 50 | +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | http://www.nouveaucinema.ca | | |
| 51 | +| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["festival", "cinema"] | | |
| 52 | +| `venue` — Salle (venue) | nom du lieu | 74 % | Cinémathèque Québécoise | | |
| 53 | +| `address` — Adresse | adresse civique | 84 % | 335 Boulevard de Maisonneuve Est | | |
| 54 | +| `city` — Ville | municipalité | 95 % | Montréal | | |
| 55 | 55 | | `region` — Région | région administrative | 99 % | Montréal | |
| 56 | −| `lat` — GPS (lat/lng) | coordonnées géographiques | 97 % | 45.507703, -73.552067 | | |
| 57 | −| `start_date` — Date début | date locale AAAA-MM-JJ | 99 % | 2026-09-11 | | |
| 58 | −| `end_date` — Date fin | date locale AAAA-MM-JJ | 99 % | 2026-09-13 | | |
| 56 | +| `lat` — GPS (lat/lng) | coordonnées géographiques | 97 % | 45.514451, -73.562257 | | |
| 57 | +| `start_date` — Date début | date locale AAAA-MM-JJ | 98 % | 2026-10-08 | | |
| 58 | +| `end_date` — Date fin | date locale AAAA-MM-JJ | 98 % | 2026-10-18 | | |
| 59 | 59 | | `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 0 % | ∅ | |
| 60 | +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ | | |
| 61 | +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ | | |
| 60 | 62 | | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | |
| 61 | 63 | | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | |
| 62 | 64 | | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | |
| 63 | 65 | | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | |
| 64 | 66 | | `organizer` — Organisateur | promoteur / organisme | 100 % | Tourisme Montréal | |
| 65 | −| `image` — Image | visuel (og:image ou média source) | 35 % | http://jackalope.co/cdn/shop/files/jackalope_e0d516dd-87d0-4058-ad4d-153c59ef7f99.jpg?v=17736954… | | |
| 66 | −| `website` — Site web | site officiel de l'événement | 93 % | http://jackalopefest.ca | | |
| 67 | +| `image` — Image | visuel (og:image ou média source) | 63 % | https://nouveaucinema.ca/share-2025.jpg | | |
| 68 | +| `website` — Site web | site officiel de l'événement | 95 % | http://www.nouveaucinema.ca | | |
| 67 | 69 | |
| 68 | 70 | ## Fréquence & budgets |
| 69 | 71 | |
@@ -77,21 +79,27 @@ Complétude mesurée sur les **1598 événements actifs** de la source ; exemple | ||
| 77 | 79 | |
| 78 | 80 | ## Volumétrie & complétude live |
| 79 | 81 | |
| 80 | −*(mesuré le 2026-08-18 05:54 EDT dans `data/sortika.db`)* | |
| 82 | +*(mesuré le 2026-08-19 01:27 EDT dans `data/sortika.db`)* | |
| 81 | 83 | |
| 82 | −- **Événements en base** : 1606 (dont **1598 actifs**) | |
| 83 | −- **GPS** : 1548/1598 actifs (97 %) | |
| 84 | −- **Prix** : 0/1598 actifs (0 %) | |
| 85 | −- **Heure (start_time)** : 0/1598 actifs (0 %) | |
| 86 | −- **Artistes** : 0/1598 actifs (0 %) | |
| 87 | −- **Image** : 558/1598 actifs (35 %) | |
| 88 | −- **Salle (venue)** : 1050/1598 actifs (66 %) | |
| 89 | −- **Dernier sync** : 2026-08-18 05:01 — fetched 1598, +0 ajoutés, ~0 mis à jour, -0 retirés | |
| 90 | −- **Syncs enregistrés** (sync_log) : 23 | |
| 84 | +- **Événements en base** : 1607 (dont **876 actifs**) | |
| 85 | +- **GPS** : 846/876 actifs (97 %) | |
| 86 | +- **Prix** : 0/876 actifs (0 %) | |
| 87 | +- **Heure (start_time)** : 0/876 actifs (0 %) | |
| 88 | +- **Heure de fin** : 0/876 actifs (0 %) | |
| 89 | +- **Statut (annulé/reporté/complet)** : 0/876 actifs (0 %) | |
| 90 | +- **Artistes** : 0/876 actifs (0 %) | |
| 91 | +- **Image** : 551/876 actifs (63 %) | |
| 92 | +- **Salle (venue)** : 644/876 actifs (74 %) | |
| 93 | +- **Dernier sync** : 2026-08-19 01:19 — fetched 0, +0 ajoutés, ~0 mis à jour, -0 retirés, **erreur : 502 Server Error: Bad Gateway for url: https://api-v3.tourinsoft.com/api/syndications/mto.tourin…** | |
| 94 | +- **Syncs enregistrés** (sync_log) : 42 | |
| 91 | 95 | |
| 92 | 96 | ## Erreurs & dépannage |
| 93 | 97 | |
| 94 | −Aucune erreur dans `sync_log` pour cette source. ✅ | |
| 98 | +Erreurs relevées dans `sync_log` : | |
| 99 | + | |
| 100 | +| Erreur | Occurrences | Dernière fois | | |
| 101 | +|---|---|---| | |
| 102 | +| 502 Server Error: Bad Gateway for url: https://api-v3.tourinsoft.com/api/syndications/mto.tourin… | 1 | 2026-08-19 01:19 | | |
| 95 | 103 | |
| 96 | 104 | - Rejouer un sync isolé : `python3 run.py sync --source sitq` (ou via le watcher PM2) ; inspecter ensuite `sync_log` : `sqlite3 data/sortika.db "SELECT * FROM sync_log WHERE source='sitq' ORDER BY ts DESC LIMIT 5;"` |
| 97 | 105 | |
@@ -105,6 +113,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅ | ||
| 105 | 113 | |
| 106 | 114 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 107 | 115 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 116 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
| 108 | 117 | |
| 109 | 118 | Commits touchant `sortika/connectors/sitq.py` : |
| 110 | 119 | |
modified
docs/connecteurs/terrebonne.md
+2 −1
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Ville de Terrebonne — Calendrier (`terrebonne`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : abandonnee** · Type : `municipal` · Connecteur : *aucun (source sans connecteur runtime)* |
| 6 | 6 | |
@@ -43,3 +43,4 @@ | ||
| 43 | 43 | - **Source abandonnée** — Cloudflare bloque tout GET non navigateur (403) et aucun jeu « événements » sur Données Québec (vérifié 2026-08-18) |
| 44 | 44 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 45 | 45 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 46 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
modified
docs/connecteurs/ticketmaster.md
+29 −24
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Ticketmaster — Discovery API (Québec) (`ticketmaster`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : actif** · Type : `billetterie` · Connecteur : `sortika/connectors/ticketmaster.py` |
| 6 | 6 | |
@@ -46,28 +46,30 @@ | ||
| 46 | 46 | |
| 47 | 47 | ## Champs récupérés → schéma |
| 48 | 48 | |
| 49 | −Complétude mesurée sur les **330 événements actifs** de la source ; exemples tirés d'un événement réel (`ticketmaster:310064A20EB06FDE`). | |
| 49 | +Complétude mesurée sur les **368 événements actifs** de la source ; exemples tirés d'un événement réel (`ticketmaster:31006476DB368606`). | |
| 50 | 50 | |
| 51 | 51 | | Champ (`events.*`) | Description | Complétude | Exemple réel | |
| 52 | 52 | |---|---|---|---| |
| 53 | −| `title` — Titre | titre de l'événement | 100 % | Mardi Latin Groove | | |
| 53 | +| `title` — Titre | titre de l'événement | 100 % | ANNULÉ - Rock This Town | | |
| 54 | 54 | | `description` — Description | texte descriptif (source ou fiche détail) | 0 % | ∅ | |
| 55 | −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.ticketmaster.ca/mardi-latin-groove-montreal-quebec-08-18-2026/event/310064A20EB06FDE | | |
| 55 | +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.ticketmaster.ca/annule-rock-this-town-quebec-quebec-09-13-2026/event/31006476DB36860… | | |
| 56 | 56 | | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] | |
| 57 | −| `venue` — Salle (venue) | nom du lieu | 100 % | Le Balcon X Terrasse | | |
| 58 | −| `address` — Adresse | adresse civique | 100 % | 463 Rue Sainte-Catherine Ouest | | |
| 59 | −| `city` — Ville | municipalité | 100 % | Montreal | | |
| 60 | −| `region` — Région | région administrative | 100 % | Montréal | | |
| 61 | −| `lat` — GPS (lat/lng) | coordonnées géographiques | 100 % | 45.505438, -73.568812 | | |
| 62 | −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-18 | | |
| 63 | −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-18 | | |
| 64 | −| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 96 % | 19:00 | | |
| 57 | +| `venue` — Salle (venue) | nom du lieu | 100 % | Théâtre Capitole | | |
| 58 | +| `address` — Adresse | adresse civique | 100 % | 972 Rue Saint-Jean | | |
| 59 | +| `city` — Ville | municipalité | 100 % | Québec | | |
| 60 | +| `region` — Région | région administrative | 100 % | Capitale-Nationale | | |
| 61 | +| `lat` — GPS (lat/lng) | coordonnées géographiques | 100 % | 46.813254, -71.214215 | | |
| 62 | +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-09-13 | | |
| 63 | +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-09-13 | | |
| 64 | +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 96 % | 20:00 | | |
| 65 | +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ | | |
| 66 | +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 4 % | cancelled | | |
| 65 | 67 | | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | |
| 66 | 68 | | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | |
| 67 | 69 | | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | |
| 68 | 70 | | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | |
| 69 | 71 | | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | |
| 70 | −| `image` — Image | visuel (og:image ou média source) | 90 % | https://mapsapi.tmol.io/maps/geometry/3/event/310064A20EB06FDE/staticImage?type=png&systemId=HOS… | | |
| 72 | +| `image` — Image | visuel (og:image ou média source) | 91 % | https://mapsapi.tmol.io/maps/geometry/3/event/31006476DB368606/staticImage?type=png&systemId=HOS… | | |
| 71 | 73 | | `website` — Site web | site officiel de l'événement | 0 % | ∅ | |
| 72 | 74 | |
| 73 | 75 | ## Fréquence & budgets |
@@ -85,23 +87,25 @@ Complétude mesurée sur les **330 événements actifs** de la source ; exemples | ||
| 85 | 87 | |
| 86 | 88 | ## Volumétrie & complétude live |
| 87 | 89 | |
| 88 | −*(mesuré le 2026-08-18 05:54 EDT dans `data/sortika.db`)* | |
| 90 | +*(mesuré le 2026-08-19 01:27 EDT dans `data/sortika.db`)* | |
| 89 | 91 | |
| 90 | −- **Événements en base** : 330 (dont **330 actifs**) | |
| 91 | −- **GPS** : 330/330 actifs (100 %) | |
| 92 | −- **Prix** : 0/330 actifs (0 %) | |
| 93 | −- **Heure (start_time)** : 318/330 actifs (96 %) | |
| 94 | −- **Artistes** : 0/330 actifs (0 %) | |
| 95 | −- **Image** : 297/330 actifs (90 %) | |
| 96 | −- **Salle (venue)** : 330/330 actifs (100 %) | |
| 97 | −- **Dernier sync** : 2026-08-18 05:51 — fetched 330, +330 ajoutés, ~0 mis à jour, -0 retirés | |
| 98 | −- **Syncs enregistrés** (sync_log) : 5 | |
| 92 | +- **Événements en base** : 380 (dont **368 actifs**) | |
| 93 | +- **GPS** : 368/368 actifs (100 %) | |
| 94 | +- **Prix** : 0/368 actifs (0 %) | |
| 95 | +- **Heure (start_time)** : 354/368 actifs (96 %) | |
| 96 | +- **Heure de fin** : 0/368 actifs (0 %) | |
| 97 | +- **Statut (annulé/reporté/complet)** : 14/368 actifs (4 %) | |
| 98 | +- **Artistes** : 0/368 actifs (0 %) | |
| 99 | +- **Image** : 336/368 actifs (91 %) | |
| 100 | +- **Salle (venue)** : 368/368 actifs (100 %) | |
| 101 | +- **Dernier sync** : 2026-08-19 01:20 — fetched 360, +16 ajoutés, ~344 mis à jour, -0 retirés | |
| 102 | +- **Syncs enregistrés** (sync_log) : 24 | |
| 99 | 103 | |
| 100 | 104 | ## Erreurs & dépannage |
| 101 | 105 | |
| 102 | 106 | Aucune erreur dans `sync_log` pour cette source. ✅ |
| 103 | 107 | |
| 104 | −- Sans `TICKETMASTER_API_KEY` dans `.env`, le connecteur s'annonce « clé manquante » et ne retourne rien (statut « prêt — clé requise »). Quota API : 5 req/s (throttle 0,25 s côté connecteur). | |
| 108 | +- Sans `TICKETMASTER_API_KEY` dans `.env`, le connecteur tourne en mode REPLI (scraping des pages découverte publiques) : pas de prix, pas de statut, images = plans de salle. La clé Discovery (gratuite, inscription developer.ticketmaster.com) débloque priceRanges, dates.status.code (annulé/reporté), visuels 16:9 HD et attractions → artistes. Quota API : 5 req/s (throttle 0,25 s côté connecteur). | |
| 105 | 109 | - Rejouer un sync isolé : `python3 run.py sync --source ticketmaster` (ou via le watcher PM2) ; inspecter ensuite `sync_log` : `sqlite3 data/sortika.db "SELECT * FROM sync_log WHERE source='ticketmaster' ORDER BY ts DESC LIMIT 5;"` |
| 106 | 110 | |
| 107 | 111 | ## Licence / attribution |
@@ -112,6 +116,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅ | ||
| 112 | 116 | |
| 113 | 117 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 114 | 118 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 119 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
| 115 | 120 | |
| 116 | 121 | Commits touchant `sortika/connectors/ticketmaster.py` : |
| 117 | 122 | |
modified
docs/connecteurs/trois-rivieres.md
+2 −1
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Ville de Trois-Rivières — Événements (`trois-rivieres`) |
| 2 | 2 | |
| 3 | −> Fiche générée le 2026-08-18 05:54 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 3 | +> Fiche générée le 2026-08-19 01:27 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script. | |
| 4 | 4 | |
| 5 | 5 | **Statut : abandonnee** · Type : `municipal` · Connecteur : *aucun (source sans connecteur runtime)* |
| 6 | 6 | |
@@ -43,3 +43,4 @@ | ||
| 43 | 43 | - **Source abandonnée** — API REST WordPress verrouillée (401 rest_not_logged_in) et aucun jeu « événements » sur Données Québec (vérifié 2026-08-18) |
| 44 | 44 | - **2026-08-18 — Vague 1 d'enrichissement** (commit `7d9d1b0`) : géocodage Nominatim des salles (`sortika/geocode.py`, cache disque, plafond `SORTIKA_GEOCODE_MAX`), fiches détail lepointdevente (description, heure, tarifs réels `/plugins/rates/<id>`), contacts Tourinsoft (SITQ), heure locale Montréal via JSON-LD. |
| 45 | 45 | - **2026-08-18 — Vague 2 d'enrichissement** (commit `65d2d33`) : colonnes additives `events.start_time` (HH:MM locale QC) et `events.artists` (JSON) + migration auto ; heure captée partout où la source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs (brossard, ticketmaster, bandsintown). |
| 46 | +- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives `end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des événements terminés à chaque cycle (jamais supprimés) ; dedup_key inclut désormais l'heure (les séances multiples d'un même jour ne sont plus écrasées à l'affichage) ; alerte « 0 événement futur / chute > 80 % » par source (data/future_counts.json + /api/sources) ; heure et description La Vitrine ; end_time/organisateur/statut Eventbrite ; og:description Atuvu ; premières parties + portes + tournée evenko ; offres billets Bandsintown ; taxonomie type-event + description intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE prioritaire ; villes normalisées au Répertoire MAMH (data/villes_canon.json) ; laval consignée « morte-a-la-source ». | |
modified
scripts/gen_connector_docs.py
+24 −3
@@ -50,6 +50,8 @@ SCHEMA_FIELDS = [ | ||
| 50 | 50 | ("start_date", "Date début", "date locale AAAA-MM-JJ"), |
| 51 | 51 | ("end_date", "Date fin", "date locale AAAA-MM-JJ"), |
| 52 | 52 | ("start_time", "Heure (start_time)", "heure locale HH:MM (Québec)"), |
| 53 | + ("end_time", "Heure de fin (end_time)", "heure locale HH:MM (Québec)"), | |
| 54 | + ("status", "Statut", "cancelled / postponed / soldout (NULL = prévu)"), | |
| 53 | 55 | ("is_free", "Gratuité (is_free)", "1 gratuit / 0 payant / NULL inconnu"), |
| 54 | 56 | ("price_min", "Prix min", "tarif minimal réel ($)"), |
| 55 | 57 | ("price_label", "Libellé prix", "étiquette tarifaire affichable"), |
@@ -64,6 +66,8 @@ KEY_METRICS = [ | ||
| 64 | 66 | ("lat IS NOT NULL AND lng IS NOT NULL", "GPS"), |
| 65 | 67 | ("(is_free IS NOT NULL OR price_min IS NOT NULL OR (price_label IS NOT NULL AND price_label != ''))", "Prix"), |
| 66 | 68 | ("start_time IS NOT NULL AND start_time != ''", "Heure (start_time)"), |
| 69 | + ("end_time IS NOT NULL AND end_time != ''", "Heure de fin"), | |
| 70 | + ("status IS NOT NULL AND status != ''", "Statut (annulé/reporté/complet)"), | |
| 67 | 71 | ("artists IS NOT NULL AND artists NOT IN ('', '[]')", "Artistes"), |
| 68 | 72 | ("image IS NOT NULL AND image != ''", "Image"), |
| 69 | 73 | ("venue IS NOT NULL AND venue != ''", "Salle (venue)"), |
@@ -95,8 +99,12 @@ DEPANNAGE = { | ||
| 95 | 99 | "requis : vérifier `SCRAPFLY_API_KEY` dans `.env` et le solde " |
| 96 | 100 | "de crédits Scrapfly si le connecteur ne rapporte plus rien."], |
| 97 | 101 | "ticketmaster": ["Sans `TICKETMASTER_API_KEY` dans `.env`, le connecteur " |
| 98 | − "s'annonce « clé manquante » et ne retourne rien (statut " | |
| 99 | − "« prêt — clé requise »). Quota API : 5 req/s (throttle " | |
| 102 | + "tourne en mode REPLI (scraping des pages découverte " | |
| 103 | + "publiques) : pas de prix, pas de statut, images = plans " | |
| 104 | + "de salle. La clé Discovery (gratuite, inscription " | |
| 105 | + "developer.ticketmaster.com) débloque priceRanges, " | |
| 106 | + "dates.status.code (annulé/reporté), visuels 16:9 HD et " | |
| 107 | + "attractions → artistes. Quota API : 5 req/s (throttle " | |
| 100 | 108 | "0,25 s côté connecteur)."], |
| 101 | 109 | "bandsintown": ["L'API n'accepte que certains formats d'`app_id` : le " |
| 102 | 110 | "format widget `js_www.sorti-ka.com` est testé accepté " |
@@ -122,7 +130,20 @@ WAVE_HISTORY = ( | ||
| 122 | 130 | "source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, " |
| 123 | 131 | "atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions " |
| 124 | 132 | "Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs " |
| 125 | − "(brossard, ticketmaster, bandsintown)." | |
| 133 | + "(brossard, ticketmaster, bandsintown).\n" | |
| 134 | + "- **2026-08-19 — Phase 2 (travail de moine)** : colonnes additives " | |
| 135 | + "`end_time`, `status` (annulé/reporté/complet) et `quarantine` (règles " | |
| 136 | + "anti-aberrations, non publié mais réintégrable) ; règle d'ARCHIVAGE des " | |
| 137 | + "événements terminés à chaque cycle (jamais supprimés) ; dedup_key " | |
| 138 | + "inclut désormais l'heure (les séances multiples d'un même jour ne sont " | |
| 139 | + "plus écrasées à l'affichage) ; alerte « 0 événement futur / chute " | |
| 140 | + "> 80 % » par source (data/future_counts.json + /api/sources) ; heure et " | |
| 141 | + "description La Vitrine ; end_time/organisateur/statut Eventbrite ; " | |
| 142 | + "og:description Atuvu ; premières parties + portes + tournée evenko ; " | |
| 143 | + "offres billets Bandsintown ; taxonomie type-event + description " | |
| 144 | + "intégrale Brossard ; image Longueuil ; géocodage par ADRESSE CIVIQUE " | |
| 145 | + "prioritaire ; villes normalisées au Répertoire MAMH " | |
| 146 | + "(data/villes_canon.json) ; laval consignée « morte-a-la-source »." | |
| 126 | 147 | ) |
| 127 | 148 | |
| 128 | 149 | |
| 129 | 150 | |