SPB Git

spb/sorti-ka

Public

Toutes les sorties et tous les événements du Québec, un seul endroit — 7 connecteurs, fiches SSR, design Groupe KA.

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>
Simon-Pierre Boucher committed (Aug 19, 2026) parent 19a4806 Browse files

23 changed files +457 −353

modified data/sources.json +4 −3
@@ -39,11 +39,12 @@
39 "name": "Ville de Laval — Calendrier des activités", 39 "name": "Ville de Laval — Calendrier des activités",
40 "url": "https://www.donneesquebec.ca/recherche/dataset/calendrier-des-activites", 40 "url": "https://www.donneesquebec.ca/recherche/dataset/calendrier-des-activites",
41 "type": "donnees-ouvertes", 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 "acces_legal": "Licence CC 4.0 (Données Québec) — Ville de Laval", 43 "acces_legal": "Licence CC 4.0 (Données Québec) — Ville de Laval",
44 "couverture": "Activités municipales, Laval", 44 "couverture": "Activités municipales, Laval",
45 "cadence": "horaire (watcher PM2)", 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 "id": "sherbrooke", 50 "id": "sherbrooke",
@@ -230,4 +231,4 @@
230 "note": "Cloudflare bloque tout GET non navigateur (403) et aucun jeu « événements » sur Données Québec (vérifié 2026-08-18)" 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 # Sorti-Ka — Connecteurs de sources d'événements 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 ⚠️ **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 ». 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 | Source | Type | Statut | Actifs | GPS | Prix | Heure | Artistes | Image | Salle | Dernier sync | 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 | 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 | 5679 | 97 % | 100 % | 21 % | 0 % | 58 % | 4 % | 2026-08-18 05:01 | 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 | 1787 | 27 % | 46 % | 94 % | 1 % | 100 % | 99 % | 2026-08-18 05:00 | 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 | actif | 277 | 51 % | 0 % | 95 % | 0 % | 98 % | 90 % | 2026-08-18 04:55 | 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 | 271 | 0 % | 100 % | 88 % | 0 % | 100 % | 0 % | 2026-08-18 05:01 | 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 | 9 | 0 % | 0 % | 100 % | 0 % | 0 % | 0 % | 2026-08-18 05:52 | 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 | 426 | 100 % | 65 % | 100 % | 0 % | 97 % | 100 % | 2026-08-18 05:52 | 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 | 13 | 77 % | 0 % | 0 % | 0 % | 100 % | 0 % | 2026-08-18 05:52 | 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 % | 99 % | 100 % | 100 % | 2026-08-18 04:55 | 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 | 145 | 62 % | 35 % | 0 % | 0 % | 100 % | 100 % | 2026-08-18 04:52 | 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 | 5127 | 52 % | 0 % | 0 % | 0 % | 100 % | 100 % | 2026-08-18 04:55 | 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 | 264 | 0 % | 0 % | 55 % | 0 % | 57 % | 54 % | 2026-08-18 04:55 | 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 | 330 | 100 % | 0 % | 96 % | 0 % | 90 % | 100 % | 2026-08-18 05:51 | 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 | 372 | 100 % | 1 % | 100 % | 100 % | 8 % | 100 % | 2026-08-18 04:52 | 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 ## Sources abandonnées 28 ## Sources abandonnées
29 29
modified docs/connecteurs/atuvu.md +30 −25
@@ -1,6 +1,6 @@
1 # Atuvu.ca — calendrier culturel (`atuvu`) 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 **Statut : actif** · Type : `agregateur` · Connecteur : `sortika/connectors/atuvu.py` 5 **Statut : actif** · Type : `agregateur` · Connecteur : `sortika/connectors/atuvu.py`
6 6
@@ -38,28 +38,30 @@
38 38
39 ## Champs récupérés → schéma 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 | Champ (`events.*`) | Description | Complétude | Exemple réel | 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 | `description` — Description | texte descriptif (source ou fiche détail) | 0 % | ∅ | 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 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] | 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 | `address` — Adresse | adresse civique | 0 % | ∅ | 50 | `address` — Adresse | adresse civique | 0 % | ∅ |
51−| `city` — Ville | municipalité | 97 % | Québec | 51+| `city` — Ville | municipalité | 97 % | Montréal |
52−| `region` — Région | région administrative | 93 % | Capitale-Nationale | 52+| `region` — Région | région administrative | 94 % | Montréal |
53−| `lat` — GPS (lat/lng) | coordonnées géographiques | 62 % | 46.7705941, -71.2847897 | 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-12 | 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-12 | 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) | 0 % | ∅ | 56+| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 9 % | 18:00 |
57−| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 29 % | 0 | 57+| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ |
58−| `price_min` — Prix min | tarif minimal réel ($) | 35 % | 47.66 | 58+| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ |
59−| `price_label` — Libellé prix | étiquette tarifaire affichable | 29 % | 47.66 $ (prix régulier atuvu.ca) | 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 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | 62 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
61 | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | 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 | `website` — Site web | site officiel de l'événement | 0 % | ∅ | 65 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
64 66
65 ## Fréquence & budgets 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 ## Volumétrie & complétude live 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**) 81+- **Événements en base** : 162 (dont **151 actifs**)
80−- **GPS** : 90/145 actifs (62 %) 82+- **GPS** : 94/151 actifs (62 %)
81−- **Prix** : 51/145 actifs (35 %) 83+- **Prix** : 56/151 actifs (37 %)
82−- **Heure (start_time)** : 0/145 actifs (0 %) 84+- **Heure (start_time)** : 14/151 actifs (9 %)
83−- **Artistes** : 0/145 actifs (0 %) 85+- **Heure de fin** : 0/151 actifs (0 %)
84−- **Image** : 145/145 actifs (100 %) 86+- **Statut (annulé/reporté/complet)** : 0/151 actifs (0 %)
85−- **Salle (venue)** : 145/145 actifs (100 %) 87+- **Artistes** : 0/151 actifs (0 %)
86−- **Dernier sync** : 2026-08-18 04:52 — fetched 156, +0 ajoutés, ~2 mis à jour, -0 retirés 88+- **Image** : 151/151 actifs (100 %)
87−- **Syncs enregistrés** (sync_log) : 18 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 ## Erreurs & dépannage 93 ## Erreurs & dépannage
90 94
@@ -101,6 +105,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
101 105
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. 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 - **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). 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 Commits touchant `sortika/connectors/atuvu.py` : 110 Commits touchant `sortika/connectors/atuvu.py` :
106 111
modified docs/connecteurs/bandsintown.md +28 −23
@@ -1,6 +1,6 @@
1 # Bandsintown — dates de concerts par artiste (`bandsintown`) 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 **Statut : actif** · Type : `agregateur` · Connecteur : `sortika/connectors/bandsintown.py` 5 **Statut : actif** · Type : `agregateur` · Connecteur : `sortika/connectors/bandsintown.py`
6 6
@@ -43,28 +43,30 @@
43 43
44 ## Champs récupérés → schéma 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 | Champ (`events.*`) | Description | Complétude | Exemple réel | 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 | 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) | 17 % | ∅ | 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/108509738?app_id=js_www.sorti-ka.com&came_from=267&utm_medium=api&… | 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 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] | 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 | 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 % | Rue Vézina | 55+| `address` — Adresse | adresse civique | 98 % | 21 Rue Tri Jean |
56−| `city` — Ville | municipalité | 100 % | Saint-roch-de-l'achigan | 56+| `city` — Ville | municipalité | 100 % | Grenville |
57−| `region` — Région | région administrative | 98 % | Lanaudière | 57+| `region` — Région | région administrative | 99 % | Laurentides |
58−| `lat` — GPS (lat/lng) | coordonnées géographiques | 100 % | 45.860801, -73.593176 | 58+| `lat` — GPS (lat/lng) | coordonnées géographiques | 100 % | 45.630063, -74.600568 |
59 | `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-22 | 59 | `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-22 |
60 | `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-22 | 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 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 1 % | 1 | 64 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 1 % | 1 |
63 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | 65 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ |
64 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | 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 | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | 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 | `website` — Site web | site officiel de l'événement | 0 % | ∅ | 70 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
69 71
70 ## Fréquence & budgets 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 ## Volumétrie & complétude live 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**) 87+- **Événements en base** : 372 (dont **370 actifs**)
86−- **GPS** : 372/372 actifs (100 %) 88+- **GPS** : 370/370 actifs (100 %)
87−- **Prix** : 4/372 actifs (1 %) 89+- **Prix** : 4/370 actifs (1 %)
88−- **Heure (start_time)** : 371/372 actifs (100 %) 90+- **Heure (start_time)** : 369/370 actifs (100 %)
89−- **Artistes** : 372/372 actifs (100 %) 91+- **Heure de fin** : 0/370 actifs (0 %)
90−- **Image** : 29/372 actifs (8 %) 92+- **Statut (annulé/reporté/complet)** : 0/370 actifs (0 %)
91−- **Salle (venue)** : 372/372 actifs (100 %) 93+- **Artistes** : 370/370 actifs (100 %)
92−- **Dernier sync** : 2026-08-18 04:52 — fetched 372, +0 ajoutés, ~0 mis à jour, -0 retirés 94+- **Image** : 27/370 actifs (7 %)
93−- **Syncs enregistrés** (sync_log) : 4 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 ## Erreurs & dépannage 99 ## Erreurs & dépannage
96 100
@@ -107,6 +111,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
107 111
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. 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 - **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-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 Commits touchant `sortika/connectors/bandsintown.py` : 116 Commits touchant `sortika/connectors/bandsintown.py` :
112 117
modified docs/connecteurs/brossard.md +28 −23
@@ -1,6 +1,6 @@
1 # Ville de Brossard — Calendrier des événements (`brossard`) 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 **Statut : actif** · Type : `municipal` · Connecteur : `sortika/connectors/brossard.py` 5 **Statut : actif** · Type : `municipal` · Connecteur : `sortika/connectors/brossard.py`
6 6
@@ -43,28 +43,30 @@
43 43
44 ## Champs récupérés → schéma 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 | Champ (`events.*`) | Description | Complétude | Exemple réel | 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) | 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 % | Dans le cadre des Journées de la culture, viens créer ton propre bracelet d’amitié ! Choisis par… | 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-libre-cree-ton-bracelet-damitie-26-septembre-2… | 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 % | ["conference"] | 53+| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["famille"] |
54−| `venue` — Salle (venue) | nom du lieu | 54 % | Bibliothèque de Brossard Georgette-Lepage | 54+| `venue` — Salle (venue) | nom du lieu | 94 % | Salle d'animation |
55−| `address` — Adresse | adresse civique | 54 % | 7855, av San Francisco | 55+| `address` — Adresse | adresse civique | 94 % | 7855, av San Francisco |
56 | `city` — Ville | municipalité | 100 % | Brossard | 56 | `city` — Ville | municipalité | 100 % | Brossard |
57 | `region` — Région | région administrative | 100 % | Montérégie | 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 | 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-26 | 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-26 | 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) | 55 % | 13:00 | 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 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | 64 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ |
63 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | 65 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ |
64 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | 66 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
65 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | 67 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
66 | `organizer` — Organisateur | promoteur / organisme | 100 % | Ville de Brossard | 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 | `website` — Site web | site officiel de l'événement | 0 % | ∅ | 70 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
69 71
70 ## Fréquence & budgets 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 ## Volumétrie & complétude live 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**) 86+- **Événements en base** : 264 (dont **150 actifs**)
85−- **GPS** : 1/264 actifs (0 %) 87+- **GPS** : 141/150 actifs (94 %)
86−- **Prix** : 0/264 actifs (0 %) 88+- **Prix** : 0/150 actifs (0 %)
87−- **Heure (start_time)** : 145/264 actifs (55 %) 89+- **Heure (start_time)** : 144/150 actifs (96 %)
88−- **Artistes** : 0/264 actifs (0 %) 90+- **Heure de fin** : 0/150 actifs (0 %)
89−- **Image** : 151/264 actifs (57 %) 91+- **Statut (annulé/reporté/complet)** : 0/150 actifs (0 %)
90−- **Salle (venue)** : 142/264 actifs (54 %) 92+- **Artistes** : 0/150 actifs (0 %)
91−- **Dernier sync** : 2026-08-18 04:55 — fetched 264, +2 ajoutés, ~0 mis à jour, -0 retirés 93+- **Image** : 150/150 actifs (100 %)
92−- **Syncs enregistrés** (sync_log) : 4 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 ## Erreurs & dépannage 98 ## Erreurs & dépannage
95 99
@@ -105,6 +109,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
105 109
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. 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 - **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). 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 Commits touchant `sortika/connectors/brossard.py` : 114 Commits touchant `sortika/connectors/brossard.py` :
110 115
modified docs/connecteurs/cantonsdelest.md +26 −21
@@ -1,6 +1,6 @@
1 # Tourisme Cantons-de-l'Est — calendrier officiel (ATR Estrie) (`cantonsdelest`) 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 **Statut : actif** · Type : `tourisme-regional` · Connecteur : `sortika/connectors/cantonsdelest.py` 5 **Statut : actif** · Type : `tourisme-regional` · Connecteur : `sortika/connectors/cantonsdelest.py`
6 6
@@ -41,28 +41,30 @@
41 41
42 ## Champs récupérés → schéma 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 | Champ (`events.*`) | Description | Complétude | Exemple réel | 46 | Champ (`events.*`) | Description | Complétude | Exemple réel |
47 |---|---|---|---| 47 |---|---|---|---|
48−| `title` — Titre | titre de l'événement | 100 % | ShazamFest | 48+| `title` — Titre | titre de l'événement | 100 % | Vieillir en santé |
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… | 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/329/shazamfest | 50+| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.cantonsdelest.com/evenements/10200/vieillir-en-sante/4714 |
51 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] | 51 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] |
52 | `venue` — Salle (venue) | nom du lieu | 0 % | ∅ | 52 | `venue` — Salle (venue) | nom du lieu | 0 % | ∅ |
53−| `address` — Adresse | adresse civique | 85 % | 2722 Chemin de Ways Mills | 53+| `address` — Adresse | adresse civique | 91 % | 225 Rue Frontenac |
54−| `city` — Ville | municipalité | 100 % | Barnston-Ouest | 54+| `city` — Ville | municipalité | 100 % | Sherbrooke |
55 | `region` — Région | région administrative | 100 % | Estrie | 55 | `region` — Région | région administrative | 100 % | Estrie |
56−| `lat` — GPS (lat/lng) | coordonnées géographiques | 77 % | 45.126982, -71.99712 | 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-07-09 | 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-07-12 | 58+| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-19 |
59 | `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 0 % | ∅ | 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 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | 62 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ |
61 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | 63 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ |
62 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | 64 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
63 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | 65 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
64 | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | 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 | `website` — Site web | site officiel de l'événement | 0 % | ∅ | 68 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
67 69
68 ## Fréquence & budgets 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 ## Volumétrie & complétude live 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**) 84+- **Événements en base** : 23 (dont **11 actifs**)
83−- **GPS** : 10/13 actifs (77 %) 85+- **GPS** : 10/11 actifs (91 %)
84−- **Prix** : 0/13 actifs (0 %) 86+- **Prix** : 0/11 actifs (0 %)
85−- **Heure (start_time)** : 0/13 actifs (0 %) 87+- **Heure (start_time)** : 0/11 actifs (0 %)
86−- **Artistes** : 0/13 actifs (0 %) 88+- **Heure de fin** : 0/11 actifs (0 %)
87−- **Image** : 13/13 actifs (100 %) 89+- **Statut (annulé/reporté/complet)** : 0/11 actifs (0 %)
88−- **Salle (venue)** : 0/13 actifs (0 %) 90+- **Artistes** : 0/11 actifs (0 %)
89−- **Dernier sync** : 2026-08-18 05:52 — fetched 13, +13 ajoutés, ~0 mis à jour, -0 retirés 91+- **Image** : 11/11 actifs (100 %)
90−- **Syncs enregistrés** (sync_log) : 1 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 ## Erreurs & dépannage 96 ## Erreurs & dépannage
93 97
@@ -103,6 +107,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
103 107
104 - **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 - **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 - **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). 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 Commits touchant `sortika/connectors/cantonsdelest.py` : 112 Commits touchant `sortika/connectors/cantonsdelest.py` :
108 113
modified docs/connecteurs/evenko.md +24 −19
@@ -1,6 +1,6 @@
1 # evenko — grands concerts et festivals (`evenko`) 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 **Statut : actif** · Type : `promoteur` · Connecteur : `sortika/connectors/evenko.py` 5 **Statut : actif** · Type : `promoteur` · Connecteur : `sortika/connectors/evenko.py`
6 6
@@ -40,28 +40,30 @@
40 40
41 ## Champs récupérés → schéma 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 | Champ (`events.*`) | Description | Complétude | Exemple réel | 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 | 47+| `title` — Titre | titre de l'événement | 100 % | Bunt. |
48−| `description` — Description | texte descriptif (source ou fiche détail) | 18 % | ∅ | 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/310064E3C5686712?lang=fr-ca&brand=placebell | 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 % | ["autre"] | 50+| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] |
51−| `venue` — Salle (venue) | nom du lieu | 100 % | Place Bell | 51+| `venue` — Salle (venue) | nom du lieu | 100 % | MTELUS |
52 | `address` — Adresse | adresse civique | 0 % | ∅ | 52 | `address` — Adresse | adresse civique | 0 % | ∅ |
53−| `city` — Ville | municipalité | 100 % | Laval | 53+| `city` — Ville | municipalité | 100 % | Montréal |
54−| `region` — Région | région administrative | 100 % | Laval | 54+| `region` — Région | région administrative | 100 % | Montréal |
55−| `lat` — GPS (lat/lng) | coordonnées géographiques | 77 % | 45.5558423, -73.7216633 | 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-12-17 | 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-12-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 % | 19:00 | 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 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | 61 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ |
60 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | 62 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ |
61 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | 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 | `organizer` — Organisateur | promoteur / organisme | 100 % | evenko | 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 | `website` — Site web | site officiel de l'événement | 0 % | ∅ | 67 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
66 68
67 ## Fréquence & budgets 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 ## Volumétrie & complétude live 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 - **GPS** : 326/421 actifs (77 %) 79 - **GPS** : 326/421 actifs (77 %)
78 - **Prix** : 0/421 actifs (0 %) 80 - **Prix** : 0/421 actifs (0 %)
79 - **Heure (start_time)** : 418/421 actifs (99 %) 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 - **Artistes** : 418/421 actifs (99 %) 84 - **Artistes** : 418/421 actifs (99 %)
81 - **Image** : 421/421 actifs (100 %) 85 - **Image** : 421/421 actifs (100 %)
82 - **Salle (venue)** : 421/421 actifs (100 %) 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 87+- **Dernier sync** : 2026-08-19 01:16 — fetched 422, +0 ajoutés, ~422 mis à jour, -0 retirés
84−- **Syncs enregistrés** (sync_log) : 20 88+- **Syncs enregistrés** (sync_log) : 39
85 89
86 ## Erreurs & dépannage 90 ## Erreurs & dépannage
87 91
@@ -97,6 +101,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
97 101
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. 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 - **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). 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 Commits touchant `sortika/connectors/evenko.py` : 106 Commits touchant `sortika/connectors/evenko.py` :
102 107
modified docs/connecteurs/eventbrite.md +30 −25
@@ -1,6 +1,6 @@
1 # Eventbrite — billetterie libre-service (Québec) (`eventbrite`) 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 **Statut : actif** · Type : `billetterie` · Connecteur : `sortika/connectors/eventbrite.py` 5 **Statut : actif** · Type : `billetterie` · Connecteur : `sortika/connectors/eventbrite.py`
6 6
@@ -46,28 +46,30 @@
46 46
47 ## Champs récupérés → schéma 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 | Champ (`events.*`) | Description | Complétude | Exemple réel | 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 | 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 % | VERSION 100% FRANCO DE YOU'RE GONNA RIRE 2 | 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.ca/e/billets-sugar-sammy-montreal-en-francais-1989398621831 | 55+| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.eventbrite.com/e/artillery-avec-drowning-in-blood-tickets-1992308860433 |
56 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] | 56 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] |
57−| `venue` — Salle (venue) | nom du lieu | 100 % | Salle Pierre-Mercure | 57+| `venue` — Salle (venue) | nom du lieu | 100 % | Piranha Bar |
58−| `address` — Adresse | adresse civique | 100 % | 300 Boulevard de Maisonneuve Est | 58+| `address` — Adresse | adresse civique | 100 % | 680 Rue Sainte-Catherine Ouest |
59 | `city` — Ville | municipalité | 100 % | Montréal | 59 | `city` — Ville | municipalité | 100 % | Montréal |
60 | `region` — Région | région administrative | 99 % | Montréal | 60 | `region` — Région | région administrative | 99 % | Montréal |
61−| `lat` — GPS (lat/lng) | coordonnées géographiques | 100 % | 45.513753, -73.562262 | 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-12 | 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-12 | 63+| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-09-15 |
64 | `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 19:00 | 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 | 65+| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 100 % | 23:00 |
66−| `price_min` — Prix min | tarif minimal réel ($) | 63 % | 59.99 | 66+| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ |
67−| `price_label` — Libellé prix | étiquette tarifaire affichable | 65 % | 59.99 $ à 79.99 $ (Eventbrite) | 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 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | 70 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
69−| `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | 71+| `organizer` — Organisateur | promoteur / organisme | 67 % | 13 Media Concerts |
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… | 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 | `website` — Site web | site officiel de l'événement | 0 % | ∅ | 73 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
72 74
73 ## Fréquence & budgets 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 ## Volumétrie & complétude live 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**) 89+- **Événements en base** : 478 (dont **429 actifs**)
88−- **GPS** : 426/426 actifs (100 %) 90+- **GPS** : 429/429 actifs (100 %)
89−- **Prix** : 275/426 actifs (65 %) 91+- **Prix** : 376/429 actifs (88 %)
90−- **Heure (start_time)** : 426/426 actifs (100 %) 92+- **Heure (start_time)** : 429/429 actifs (100 %)
91−- **Artistes** : 0/426 actifs (0 %) 93+- **Heure de fin** : 429/429 actifs (100 %)
92−- **Image** : 415/426 actifs (97 %) 94+- **Statut (annulé/reporté/complet)** : 0/429 actifs (0 %)
93−- **Salle (venue)** : 426/426 actifs (100 %) 95+- **Artistes** : 0/429 actifs (0 %)
94−- **Dernier sync** : 2026-08-18 05:52 — fetched 426, +426 ajoutés, ~0 mis à jour, -0 retirés 96+- **Image** : 421/429 actifs (98 %)
95−- **Syncs enregistrés** (sync_log) : 1 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 ## Erreurs & dépannage 101 ## Erreurs & dépannage
98 102
@@ -108,6 +112,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
108 112
109 - **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. 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 - **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-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 Commits touchant `sortika/connectors/eventbrite.py` : 117 Commits touchant `sortika/connectors/eventbrite.py` :
113 118
modified docs/connecteurs/gatineau.md +2 −1
@@ -1,6 +1,6 @@
1 # Ville de Gatineau — Événements (`gatineau`) 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 **Statut : abandonnee** · Type : `municipal` · Connecteur : *aucun (source sans connecteur runtime)* 5 **Statut : abandonnee** · Type : `municipal` · Connecteur : *aucun (source sans connecteur runtime)*
6 6
@@ -43,3 +43,4 @@
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) 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 - **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. 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 - **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). 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 # Ville de Laval — Calendrier des activités (`laval`) 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 ## Description 7 ## Description
8 8
9 - **Source** : [Ville de Laval — Calendrier des activités](https://www.donneesquebec.ca/recherche/dataset/calendrier-des-activites) 9 - **Source** : [Ville de Laval — Calendrier des activités](https://www.donneesquebec.ca/recherche/dataset/calendrier-des-activites)
10 - **Couverture** : Activités municipales, Laval 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 ## Accès 13 ## Accès
14 14
@@ -33,28 +33,30 @@
33 33
34 ## Champs récupérés → schéma 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 | Champ (`events.*`) | Description | Complétude | Exemple réel | 38 | Champ (`events.*`) | Description | Complétude | Exemple réel |
39 |---|---|---|---| 39 |---|---|---|---|
40−| `title` — Titre | titre de l'événement | 100 % | Éducazoo | 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 % | Cadeaux, parades, chants langoureux et techniques parfois étranges : les animaux déballent un ar… | 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/biblio-jeunesse-educazoo-saint-valentin.aspx | 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 % | ["conference", "musique", "famille"] | 43+| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["communautaire", "patrimoine"] |
44−| `venue` — Salle (venue) | nom du lieu | 90 % | Bibliothèque Émile-Nelligan | 44+| `venue` — Salle (venue) | nom du lieu | 0 % | ∅ |
45 | `address` — Adresse | adresse civique | 0 % | ∅ | 45 | `address` — Adresse | adresse civique | 0 % | ∅ |
46 | `city` — Ville | municipalité | 100 % | Laval | 46 | `city` — Ville | municipalité | 100 % | Laval |
47 | `region` — Région | région administrative | 100 % | Laval | 47 | `region` — Région | région administrative | 100 % | Laval |
48−| `lat` — GPS (lat/lng) | coordonnées géographiques | 51 % | 45.5521349, -73.7077536 | 48+| `lat` — GPS (lat/lng) | coordonnées géographiques | 0 % | ∅ |
49−| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2025-02-15 | 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 % | 2025-02-15 | 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) | 95 % | 14:45 | 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 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | 54 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ |
53 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | 55 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ |
54 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | 56 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
55 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | 57 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
56 | `organizer` — Organisateur | promoteur / organisme | 100 % | Ville de Laval | 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 | `website` — Site web | site officiel de l'événement | 0 % | ∅ | 60 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
59 61
60 ## Fréquence & budgets 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 ## Volumétrie & complétude live 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**) 71+- **Événements en base** : 277 (dont **1 actifs**)
70−- **GPS** : 142/277 actifs (51 %) 72+- **GPS** : 0/1 actifs (0 %)
71−- **Prix** : 0/277 actifs (0 %) 73+- **Prix** : 0/1 actifs (0 %)
72−- **Heure (start_time)** : 264/277 actifs (95 %) 74+- **Heure (start_time)** : 1/1 actifs (100 %)
73−- **Artistes** : 0/277 actifs (0 %) 75+- **Heure de fin** : 0/1 actifs (0 %)
74−- **Image** : 271/277 actifs (98 %) 76+- **Statut (annulé/reporté/complet)** : 0/1 actifs (0 %)
75−- **Salle (venue)** : 248/277 actifs (90 %) 77+- **Artistes** : 0/1 actifs (0 %)
76−- **Dernier sync** : 2026-08-18 04:55 — fetched 293, +0 ajoutés, ~32 mis à jour, -0 retirés 78+- **Image** : 1/1 actifs (100 %)
77−- **Syncs enregistrés** (sync_log) : 23 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 ## Erreurs & dépannage 83 ## Erreurs & dépannage
80 84
@@ -92,6 +96,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
92 96
93 - **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. 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 - **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). 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 Commits touchant `sortika/connectors/laval.py` : 101 Commits touchant `sortika/connectors/laval.py` :
97 102
modified docs/connecteurs/lavitrine.md +31 −24
@@ -1,6 +1,6 @@
1 # La Vitrine culturelle (`lavitrine`) 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 **Statut : actif** · Type : `billetterie` · Connecteur : `sortika/connectors/lavitrine.py` 5 **Statut : actif** · Type : `billetterie` · Connecteur : `sortika/connectors/lavitrine.py`
6 6
@@ -27,8 +27,10 @@
27 > concerts (Grand Montréal + Québec + tournées). 27 > concerts (Grand Montréal + Québec + tournées).
28 > Extraction: sitemap.xml public (~2 000 fiches /fr/evenement/ + 185 28 > Extraction: sitemap.xml public (~2 000 fiches /fr/evenement/ + 185
29 > /fr/exposition/, lastmod par URL) puis pages fiche rendues 29 > /fr/exposition/, lastmod par URL) puis pages fiche rendues
30−> serveur (h1, bloc .event_calendar : jour/mois/année, salle, 30+> serveur (h1, bloc .event_calendar : jour/mois/année, HEURE
31−> ville ; og:image). GET directs — pas d'anti-bot. 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 > INCRÉMENTAL avec cache disque (data/lavitrine_cache.json) : 34 > INCRÉMENTAL avec cache disque (data/lavitrine_cache.json) :
33 > nouvelles fiches d'abord, re-visite roulante après 7 jours, 35 > nouvelles fiches d'abord, re-visite roulante après 7 jours,
34 > plafonné à LV_MAX_FETCH fiches/sync. 36 > plafonné à LV_MAX_FETCH fiches/sync.
@@ -41,28 +43,30 @@
41 43
42 ## Champs récupérés → schéma 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 | Champ (`events.*`) | Description | Complétude | Exemple réel | 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 | 50+| `title` — Titre | titre de l'événement | 100 % | Exterio |
49−| `description` — Description | texte descriptif (source ou fiche détail) | 0 % | ∅ | 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… |
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 | 52+| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.lavitrine.com/fr/evenement/exterio/19959 |
51−| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] | 53+| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] |
52−| `venue` — Salle (venue) | nom du lieu | 100 % | Théâtre Petit Champlain | 54+| `venue` — Salle (venue) | nom du lieu | 100 % | Grizzly Fuzz |
53 | `address` — Adresse | adresse civique | 0 % | ∅ | 55 | `address` — Adresse | adresse civique | 0 % | ∅ |
54 | `city` — Ville | municipalité | 100 % | Québec | 56 | `city` — Ville | municipalité | 100 % | Québec |
55 | `region` — Région | région administrative | 100 % | Capitale-Nationale | 57 | `region` — Région | région administrative | 100 % | Capitale-Nationale |
56−| `lat` — GPS (lat/lng) | coordonnées géographiques | 52 % | 46.8115511, -71.203632 | 58+| `lat` — GPS (lat/lng) | coordonnées géographiques | 52 % | 46.8132333, -71.2279284 |
57−| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-11-22 | 59+| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-12-18 |
58−| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-11-22 | 60+| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-12-18 |
59−| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 0 % | ∅ | 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 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | 64 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ |
61 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | 65 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ |
62 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | 66 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
63 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | 67 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
64 | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | 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 | `website` — Site web | site officiel de l'événement | 0 % | ∅ | 70 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
67 71
68 ## Fréquence & budgets 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 ## Volumétrie & complétude live 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**) 86+- **Événements en base** : 5145 (dont **5087 actifs**)
83−- **GPS** : 2681/5127 actifs (52 %) 87+- **GPS** : 2660/5087 actifs (52 %)
84−- **Prix** : 0/5127 actifs (0 %) 88+- **Prix** : 0/5087 actifs (0 %)
85−- **Heure (start_time)** : 0/5127 actifs (0 %) 89+- **Heure (start_time)** : 2609/5087 actifs (51 %)
86−- **Artistes** : 0/5127 actifs (0 %) 90+- **Heure de fin** : 0/5087 actifs (0 %)
87−- **Image** : 5127/5127 actifs (100 %) 91+- **Statut (annulé/reporté/complet)** : 0/5087 actifs (0 %)
88−- **Salle (venue)** : 5125/5127 actifs (100 %) 92+- **Artistes** : 0/5087 actifs (0 %)
89−- **Dernier sync** : 2026-08-18 04:55 — fetched 5127, +0 ajoutés, ~0 mis à jour, -0 retirés 93+- **Image** : 5087/5087 actifs (100 %)
90−- **Syncs enregistrés** (sync_log) : 13 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 ## Erreurs & dépannage 98 ## Erreurs & dépannage
93 99
@@ -104,6 +110,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
104 110
105 - **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. 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 - **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-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 Commits touchant `sortika/connectors/lavitrine.py` : 115 Commits touchant `sortika/connectors/lavitrine.py` :
109 116
modified docs/connecteurs/lepointdevente.md +31 −26
@@ -1,6 +1,6 @@
1 # Le point de vente — billetterie québécoise (`lepointdevente`) 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 **Statut : actif** · Type : `billetterie` · Connecteur : `sortika/connectors/lepointdevente.py` 5 **Statut : actif** · Type : `billetterie` · Connecteur : `sortika/connectors/lepointdevente.py`
6 6
@@ -44,28 +44,30 @@
44 44
45 ## Champs récupérés → schéma 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 | Champ (`events.*`) | Description | Complétude | Exemple réel | 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 | 51+| `title` — Titre | titre de l'événement | 100 % | Sam Vigneault en rodage |
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… | 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/ghj260915003 | 53+| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://lepointdevente.com/billets/7gw260926001 |
54 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] | 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 | `address` — Adresse | adresse civique | 0 % | ∅ | 56 | `address` — Adresse | adresse civique | 0 % | ∅ |
57−| `city` — Ville | municipalité | 100 % | Québec | 57+| `city` — Ville | municipalité | 100 % | Fossambault-sur-le-Lac |
58 | `region` — Région | région administrative | 98 % | Capitale-Nationale | 58 | `region` — Région | région administrative | 98 % | Capitale-Nationale |
59−| `lat` — GPS (lat/lng) | coordonnées géographiques | 27 % | 45.2564309, -73.6230701 | 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-15 | 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-15 | 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 % | 17:00 | 62+| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 94 % | 20:00 |
63−| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 46 % | 0 | 63+| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ |
64−| `price_min` — Prix min | tarif minimal réel ($) | 45 % | 261.26 | 64+| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ |
65−| `price_label` — Libellé prix | étiquette tarifaire affichable | 46 % | Admission générale 261.26 $ | 65+| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 92 % | 0 |
66−| `artists` — Artistes | têtes d'affiche / lineup (JSON) | 1 % | [] | 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 | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | 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 | `website` — Site web | site officiel de l'événement | 0 % | ∅ | 71 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
70 72
71 ## Fréquence & budgets 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 ## Volumétrie & complétude live 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**) 87+- **Événements en base** : 4237 (dont **1786 actifs**)
86−- **GPS** : 476/1787 actifs (27 %) 88+- **GPS** : 486/1786 actifs (27 %)
87−- **Prix** : 823/1787 actifs (46 %) 89+- **Prix** : 1647/1786 actifs (92 %)
88−- **Heure (start_time)** : 1673/1787 actifs (94 %) 90+- **Heure (start_time)** : 1673/1786 actifs (94 %)
89−- **Artistes** : 16/1787 actifs (1 %) 91+- **Heure de fin** : 0/1786 actifs (0 %)
90−- **Image** : 1787/1787 actifs (100 %) 92+- **Statut (annulé/reporté/complet)** : 0/1786 actifs (0 %)
91−- **Salle (venue)** : 1777/1787 actifs (99 %) 93+- **Artistes** : 16/1786 actifs (1 %)
92−- **Dernier sync** : 2026-08-18 05:00 — fetched 1787, +0 ajoutés, ~153 mis à jour, -0 retirés 94+- **Image** : 1786/1786 actifs (100 %)
93−- **Syncs enregistrés** (sync_log) : 24 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 ## Erreurs & dépannage 99 ## Erreurs & dépannage
96 100
@@ -107,6 +111,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
107 111
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. 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 - **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-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 Commits touchant `sortika/connectors/lepointdevente.py` : 116 Commits touchant `sortika/connectors/lepointdevente.py` :
112 117
modified docs/connecteurs/levis.md +2 −1
@@ -1,6 +1,6 @@
1 # Ville de Lévis — Calendrier (`levis`) 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 **Statut : abandonnee** · Type : `municipal` · Connecteur : *aucun (source sans connecteur runtime)* 5 **Statut : abandonnee** · Type : `municipal` · Connecteur : *aucun (source sans connecteur runtime)*
6 6
@@ -43,3 +43,4 @@
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) 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 - **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. 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 - **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). 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 # Ville de Longueuil — Événements (nouveau portail) (`longueuil`) 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 **Statut : actif** · Type : `municipal` · Connecteur : `sortika/connectors/longueuil.py` 5 **Statut : actif** · Type : `municipal` · Connecteur : `sortika/connectors/longueuil.py`
6 6
@@ -43,28 +43,30 @@
43 43
44 ## Champs récupérés → schéma 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 | Champ (`events.*`) | Description | Complétude | Exemple réel | 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 | 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 % | Découvrez le parc-nature Michel-Chartrand sous un nouvel angle lors de la première édition de la… | 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/journee-de-la-biodiversite-au-parc-michel-chartrand | 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 % | ["plein-air"] | 53+| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] |
54 | `venue` — Salle (venue) | nom du lieu | 0 % | ∅ | 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 | `city` — Ville | municipalité | 100 % | Longueuil | 56 | `city` — Ville | municipalité | 100 % | Longueuil |
57 | `region` — Région | région administrative | 100 % | Montérégie | 57 | `region` — Région | région administrative | 100 % | Montérégie |
58−| `lat` — GPS (lat/lng) | coordonnées géographiques | 0 % | ∅ | 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-08-29 | 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-29 | 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 % | 10:00 | 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 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | 64 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ |
63 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | 65 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ |
64 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | 66 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
65 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | 67 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
66 | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | 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 | `website` — Site web | site officiel de l'événement | 0 % | ∅ | 70 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
69 71
70 ## Fréquence & budgets 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 ## Volumétrie & complétude live 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**) 86+- **Événements en base** : 9 (dont **4 actifs**)
85−- **GPS** : 0/9 actifs (0 %) 87+- **GPS** : 3/4 actifs (75 %)
86−- **Prix** : 0/9 actifs (0 %) 88+- **Prix** : 0/4 actifs (0 %)
87−- **Heure (start_time)** : 9/9 actifs (100 %) 89+- **Heure (start_time)** : 4/4 actifs (100 %)
88−- **Artistes** : 0/9 actifs (0 %) 90+- **Heure de fin** : 2/4 actifs (50 %)
89−- **Image** : 0/9 actifs (0 %) 91+- **Statut (annulé/reporté/complet)** : 0/4 actifs (0 %)
90−- **Salle (venue)** : 0/9 actifs (0 %) 92+- **Artistes** : 0/4 actifs (0 %)
91−- **Dernier sync** : 2026-08-18 05:52 — fetched 9, +9 ajoutés, ~0 mis à jour, -0 retirés 93+- **Image** : 4/4 actifs (100 %)
92−- **Syncs enregistrés** (sync_log) : 1 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 ## Erreurs & dépannage 98 ## Erreurs & dépannage
95 99
@@ -105,6 +109,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
105 109
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. 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 - **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). 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 Commits touchant `sortika/connectors/longueuil.py` : 114 Commits touchant `sortika/connectors/longueuil.py` :
110 115
modified docs/connecteurs/montreal.md +29 −24
@@ -1,6 +1,6 @@
1 # Ville de Montréal — Événements publics (`montreal`) 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 **Statut : actif** · Type : `donnees-ouvertes` · Connecteur : `sortika/connectors/montreal.py` 5 **Statut : actif** · Type : `donnees-ouvertes` · Connecteur : `sortika/connectors/montreal.py`
6 6
@@ -37,28 +37,30 @@
37 37
38 ## Champs récupérés → schéma 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 | Champ (`events.*`) | Description | Complétude | Exemple réel | 42 | Champ (`events.*`) | Description | Complétude | Exemple réel |
43 |---|---|---|---| 43 |---|---|---|---|
44−| `title` — Titre | titre de l'événement | 100 % | Swing Tonique Jazz Band | 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 % | Fanfare Swing Tonique Jazz Band sur la Plaza St-Hubert le 20 août à 17h30. | 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/swing-tonique-jazz-band-114189 | 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 % | ["musique"] | 47+| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["communautaire"] |
48−| `venue` — Salle (venue) | nom du lieu | 4 % | Plaza St-Hubert | 48+| `venue` — Salle (venue) | nom du lieu | 5 % | Salle du conseil d'arrondissement |
49−| `address` — Adresse | adresse civique | 4 % | Coin rue Bellechasse et rue St-Hubert | 49+| `address` — Adresse | adresse civique | 5 % | 800, boulevard De Maisonneuve Est, rez-de-chaussée |
50 | `city` — Ville | municipalité | 100 % | Montréal | 50 | `city` — Ville | municipalité | 100 % | Montréal |
51 | `region` — Région | région administrative | 100 % | Montréal | 51 | `region` — Région | région administrative | 100 % | Montréal |
52−| `lat` — GPS (lat/lng) | coordonnées géographiques | 97 % | 45.534722, -73.599719 | 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-08-20 | 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-08-20 | 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) | 21 % | 17:30 | 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 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 100 % | 1 | 58 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 100 % | 1 |
57 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | 59 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ |
58 | `price_label` — Libellé prix | étiquette tarifaire affichable | 100 % | Gratuit — Entrée libre | 60 | `price_label` — Libellé prix | étiquette tarifaire affichable | 100 % | Gratuit — Entrée libre |
59 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | 61 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
60−| `organizer` — Organisateur | promoteur / organisme | 100 % | Ville de Montréal — Rosemont–La Petite-Patrie | 62+| `organizer` — Organisateur | promoteur / organisme | 100 % | Ville de Montréal — Ville-Marie |
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… | 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 | `website` — Site web | site officiel de l'événement | 0 % | ∅ | 64 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
63 65
64 ## Fréquence & budgets 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 ## Volumétrie & complétude live 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**) 80+- **Événements en base** : 5809 (dont **3291 actifs**)
79−- **GPS** : 5530/5679 actifs (97 %) 81+- **GPS** : 3253/3291 actifs (99 %)
80−- **Prix** : 5679/5679 actifs (100 %) 82+- **Prix** : 3291/3291 actifs (100 %)
81−- **Heure (start_time)** : 1187/5679 actifs (21 %) 83+- **Heure (start_time)** : 3277/3291 actifs (100 %)
82−- **Artistes** : 0/5679 actifs (0 %) 84+- **Heure de fin** : 288/3291 actifs (9 %)
83−- **Image** : 3296/5679 actifs (58 %) 85+- **Statut (annulé/reporté/complet)** : 0/3291 actifs (0 %)
84−- **Salle (venue)** : 246/5679 actifs (4 %) 86+- **Artistes** : 0/3291 actifs (0 %)
85−- **Dernier sync** : 2026-08-18 05:01 — fetched 5679, +0 ajoutés, ~299 mis à jour, -0 retirés 87+- **Image** : 3291/3291 actifs (100 %)
86−- **Syncs enregistrés** (sync_log) : 24 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 ## Erreurs & dépannage 92 ## Erreurs & dépannage
89 93
@@ -106,6 +110,7 @@ Erreurs relevées dans `sync_log` :
106 110
107 - **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. 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 - **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-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 Commits touchant `sortika/connectors/montreal.py` : 115 Commits touchant `sortika/connectors/montreal.py` :
111 116
modified docs/connecteurs/repentigny.md +2 −1
@@ -1,6 +1,6 @@
1 # Ville de Repentigny — Événements (`repentigny`) 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 **Statut : abandonnee** · Type : `donnees-ouvertes` · Connecteur : *aucun (source sans connecteur runtime)* 5 **Statut : abandonnee** · Type : `donnees-ouvertes` · Connecteur : *aucun (source sans connecteur runtime)*
6 6
@@ -43,3 +43,4 @@
43 - **Source abandonnée** — Jeu de données périmé — dernière date d'événement : 2021-09 (vérifié 2026-08-17) 43 - **Source abandonnée** — Jeu de données périmé — dernière date d'événement : 2021-09 (vérifié 2026-08-17)
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. 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 - **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). 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 # Ville de Saguenay — Événements culturels (`saguenay`) 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 **Statut : abandonnee** · Type : `donnees-ouvertes` · Connecteur : *aucun (source sans connecteur runtime)* 5 **Statut : abandonnee** · Type : `donnees-ouvertes` · Connecteur : *aucun (source sans connecteur runtime)*
6 6
@@ -43,3 +43,4 @@
43 - **Source abandonnée** — Jeu de données périmé — dernière date d'événement : 2022-06 (vérifié 2026-08-17) 43 - **Source abandonnée** — Jeu de données périmé — dernière date d'événement : 2022-06 (vérifié 2026-08-17)
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. 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 - **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). 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 # Ville de Sherbrooke — Calendrier des événements (`sherbrooke`) 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 **Statut : actif** · Type : `municipal` · Connecteur : `sortika/connectors/sherbrooke.py` 5 **Statut : actif** · Type : `municipal` · Connecteur : `sortika/connectors/sherbrooke.py`
6 6
@@ -36,28 +36,30 @@
36 36
37 ## Champs récupérés → schéma 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 | Champ (`events.*`) | Description | Complétude | Exemple réel | 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… | 43+| `title` — Titre | titre de l'événement | 100 % | Semaine de la Santé |
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… | 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/499/seance-d-ech… | 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 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] | 46 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] |
47 | `venue` — Salle (venue) | nom du lieu | 0 % | ∅ | 47 | `venue` — Salle (venue) | nom du lieu | 0 % | ∅ |
48 | `address` — Adresse | adresse civique | 0 % | ∅ | 48 | `address` — Adresse | adresse civique | 0 % | ∅ |
49 | `city` — Ville | municipalité | 100 % | Sherbrooke | 49 | `city` — Ville | municipalité | 100 % | Sherbrooke |
50 | `region` — Région | région administrative | 100 % | Estrie | 50 | `region` — Région | région administrative | 100 % | Estrie |
51 | `lat` — GPS (lat/lng) | coordonnées géographiques | 0 % | ∅ | 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 | 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 % | 2022-06-13 | 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) | 88 % | 18:30 | 54+| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 87 % | 09:00 |
55−| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 100 % | 1 | 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 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | 58 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ |
57 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | 59 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
58 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | 60 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
59 | `organizer` — Organisateur | promoteur / organisme | 100 % | Ville de Sherbrooke | 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 | `website` — Site web | site officiel de l'événement | 0 % | ∅ | 63 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
62 64
63 ## Fréquence & budgets 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 ## Volumétrie & complétude live 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**) 74+- **Événements en base** : 271 (dont **116 actifs**)
73−- **GPS** : 0/271 actifs (0 %) 75+- **GPS** : 0/116 actifs (0 %)
74−- **Prix** : 271/271 actifs (100 %) 76+- **Prix** : 116/116 actifs (100 %)
75−- **Heure (start_time)** : 239/271 actifs (88 %) 77+- **Heure (start_time)** : 101/116 actifs (87 %)
76−- **Artistes** : 0/271 actifs (0 %) 78+- **Heure de fin** : 107/116 actifs (92 %)
77−- **Image** : 270/271 actifs (100 %) 79+- **Statut (annulé/reporté/complet)** : 0/116 actifs (0 %)
78−- **Salle (venue)** : 0/271 actifs (0 %) 80+- **Artistes** : 0/116 actifs (0 %)
79−- **Dernier sync** : 2026-08-18 05:01 — fetched 271, +0 ajoutés, ~0 mis à jour, -0 retirés 81+- **Image** : 115/116 actifs (99 %)
80−- **Syncs enregistrés** (sync_log) : 16 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 ## Erreurs & dépannage 86 ## Erreurs & dépannage
83 87
@@ -93,6 +97,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
93 97
94 - **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. 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 - **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-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 Commits touchant `sortika/connectors/sherbrooke.py` : 102 Commits touchant `sortika/connectors/sherbrooke.py` :
98 103
modified docs/connecteurs/sitq.md +34 −25
@@ -1,6 +1,6 @@
1 # SIT Québec — Ministère du Tourisme (`sitq`) 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 **Statut : actif** · Type : `donnees-ouvertes` · Connecteur : `sortika/connectors/sitq.py` 5 **Statut : actif** · Type : `donnees-ouvertes` · Connecteur : `sortika/connectors/sitq.py`
6 6
@@ -41,29 +41,31 @@
41 41
42 ## Champs récupérés → schéma 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 | Champ (`events.*`) | Description | Complétude | Exemple réel | 46 | Champ (`events.*`) | Description | Complétude | Exemple réel |
47 |---|---|---|---| 47 |---|---|---|---|
48−| `title` — Titre | titre de l'événement | 100 % | JACKALOPE | 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) | 87 % | ∅ | 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://jackalopefest.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 % | ["sport", "musique"] | 51+| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["festival", "cinema"] |
52−| `venue` — Salle (venue) | nom du lieu | 66 % | Quai Jacques-Cartier | 52+| `venue` — Salle (venue) | nom du lieu | 74 % | Cinémathèque Québécoise |
53−| `address` — Adresse | adresse civique | 84 % | Rue de la Commune Est | 53+| `address` — Adresse | adresse civique | 84 % | 335 Boulevard de Maisonneuve Est |
54−| `city` — Ville | municipalité | 96 % | Montréal | 54+| `city` — Ville | municipalité | 95 % | Montréal |
55 | `region` — Région | région administrative | 99 % | Montréal | 55 | `region` — Région | région administrative | 99 % | Montréal |
56−| `lat` — GPS (lat/lng) | coordonnées géographiques | 97 % | 45.507703, -73.552067 | 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 | 99 % | 2026-09-11 | 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 | 99 % | 2026-09-13 | 58+| `end_date` — Date fin | date locale AAAA-MM-JJ | 98 % | 2026-10-18 |
59 | `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 0 % | ∅ | 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 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | 62 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ |
61 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | 63 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ |
62 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | 64 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
63 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | 65 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
64 | `organizer` — Organisateur | promoteur / organisme | 100 % | Tourisme Montréal | 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… | 67+| `image` — Image | visuel (og:image ou média source) | 63 % | https://nouveaucinema.ca/share-2025.jpg |
66−| `website` — Site web | site officiel de l'événement | 93 % | http://jackalopefest.ca | 68+| `website` — Site web | site officiel de l'événement | 95 % | http://www.nouveaucinema.ca |
67 69
68 ## Fréquence & budgets 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 ## Volumétrie & complétude live 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**) 84+- **Événements en base** : 1607 (dont **876 actifs**)
83−- **GPS** : 1548/1598 actifs (97 %) 85+- **GPS** : 846/876 actifs (97 %)
84−- **Prix** : 0/1598 actifs (0 %) 86+- **Prix** : 0/876 actifs (0 %)
85−- **Heure (start_time)** : 0/1598 actifs (0 %) 87+- **Heure (start_time)** : 0/876 actifs (0 %)
86−- **Artistes** : 0/1598 actifs (0 %) 88+- **Heure de fin** : 0/876 actifs (0 %)
87−- **Image** : 558/1598 actifs (35 %) 89+- **Statut (annulé/reporté/complet)** : 0/876 actifs (0 %)
88−- **Salle (venue)** : 1050/1598 actifs (66 %) 90+- **Artistes** : 0/876 actifs (0 %)
89−- **Dernier sync** : 2026-08-18 05:01 — fetched 1598, +0 ajoutés, ~0 mis à jour, -0 retirés 91+- **Image** : 551/876 actifs (63 %)
90−- **Syncs enregistrés** (sync_log) : 23 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 ## Erreurs & dépannage 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 - 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;"` 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 - **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 - **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 - **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-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 Commits touchant `sortika/connectors/sitq.py` : 118 Commits touchant `sortika/connectors/sitq.py` :
110 119
modified docs/connecteurs/terrebonne.md +2 −1
@@ -1,6 +1,6 @@
1 # Ville de Terrebonne — Calendrier (`terrebonne`) 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 **Statut : abandonnee** · Type : `municipal` · Connecteur : *aucun (source sans connecteur runtime)* 5 **Statut : abandonnee** · Type : `municipal` · Connecteur : *aucun (source sans connecteur runtime)*
6 6
@@ -43,3 +43,4 @@
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) 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 - **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. 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 - **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). 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 # Ticketmaster — Discovery API (Québec) (`ticketmaster`) 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 **Statut : actif** · Type : `billetterie` · Connecteur : `sortika/connectors/ticketmaster.py` 5 **Statut : actif** · Type : `billetterie` · Connecteur : `sortika/connectors/ticketmaster.py`
6 6
@@ -46,28 +46,30 @@
46 46
47 ## Champs récupérés → schéma 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 | Champ (`events.*`) | Description | Complétude | Exemple réel | 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 | `description` — Description | texte descriptif (source ou fiche détail) | 0 % | ∅ | 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 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] | 56 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] |
57−| `venue` — Salle (venue) | nom du lieu | 100 % | Le Balcon X Terrasse | 57+| `venue` — Salle (venue) | nom du lieu | 100 % | Théâtre Capitole |
58−| `address` — Adresse | adresse civique | 100 % | 463 Rue Sainte-Catherine Ouest | 58+| `address` — Adresse | adresse civique | 100 % | 972 Rue Saint-Jean |
59−| `city` — Ville | municipalité | 100 % | Montreal | 59+| `city` — Ville | municipalité | 100 % | Québec |
60−| `region` — Région | région administrative | 100 % | Montréal | 60+| `region` — Région | région administrative | 100 % | Capitale-Nationale |
61−| `lat` — GPS (lat/lng) | coordonnées géographiques | 100 % | 45.505438, -73.568812 | 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-08-18 | 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-08-18 | 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 % | 19:00 | 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 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ | 67 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ |
66 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ | 68 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ |
67 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ | 69 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
68 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] | 70 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
69 | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ | 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 | `website` — Site web | site officiel de l'événement | 0 % | ∅ | 73 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
72 74
73 ## Fréquence & budgets 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 ## Volumétrie & complétude live 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**) 92+- **Événements en base** : 380 (dont **368 actifs**)
91−- **GPS** : 330/330 actifs (100 %) 93+- **GPS** : 368/368 actifs (100 %)
92−- **Prix** : 0/330 actifs (0 %) 94+- **Prix** : 0/368 actifs (0 %)
93−- **Heure (start_time)** : 318/330 actifs (96 %) 95+- **Heure (start_time)** : 354/368 actifs (96 %)
94−- **Artistes** : 0/330 actifs (0 %) 96+- **Heure de fin** : 0/368 actifs (0 %)
95−- **Image** : 297/330 actifs (90 %) 97+- **Statut (annulé/reporté/complet)** : 14/368 actifs (4 %)
96−- **Salle (venue)** : 330/330 actifs (100 %) 98+- **Artistes** : 0/368 actifs (0 %)
97−- **Dernier sync** : 2026-08-18 05:51 — fetched 330, +330 ajoutés, ~0 mis à jour, -0 retirés 99+- **Image** : 336/368 actifs (91 %)
98−- **Syncs enregistrés** (sync_log) : 5 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 ## Erreurs & dépannage 104 ## Erreurs & dépannage
101 105
102 Aucune erreur dans `sync_log` pour cette source. ✅ 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 - 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;"` 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 ## Licence / attribution 111 ## Licence / attribution
@@ -112,6 +116,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
112 116
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. 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 - **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). 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 Commits touchant `sortika/connectors/ticketmaster.py` : 121 Commits touchant `sortika/connectors/ticketmaster.py` :
117 122
modified docs/connecteurs/trois-rivieres.md +2 −1
@@ -1,6 +1,6 @@
1 # Ville de Trois-Rivières — Événements (`trois-rivieres`) 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 **Statut : abandonnee** · Type : `municipal` · Connecteur : *aucun (source sans connecteur runtime)* 5 **Statut : abandonnee** · Type : `municipal` · Connecteur : *aucun (source sans connecteur runtime)*
6 6
@@ -43,3 +43,4 @@
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) 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 - **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. 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 - **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). 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 ("start_date", "Date début", "date locale AAAA-MM-JJ"), 50 ("start_date", "Date début", "date locale AAAA-MM-JJ"),
51 ("end_date", "Date fin", "date locale AAAA-MM-JJ"), 51 ("end_date", "Date fin", "date locale AAAA-MM-JJ"),
52 ("start_time", "Heure (start_time)", "heure locale HH:MM (Québec)"), 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 ("is_free", "Gratuité (is_free)", "1 gratuit / 0 payant / NULL inconnu"), 55 ("is_free", "Gratuité (is_free)", "1 gratuit / 0 payant / NULL inconnu"),
54 ("price_min", "Prix min", "tarif minimal réel ($)"), 56 ("price_min", "Prix min", "tarif minimal réel ($)"),
55 ("price_label", "Libellé prix", "étiquette tarifaire affichable"), 57 ("price_label", "Libellé prix", "étiquette tarifaire affichable"),
@@ -64,6 +66,8 @@ KEY_METRICS = [
64 ("lat IS NOT NULL AND lng IS NOT NULL", "GPS"), 66 ("lat IS NOT NULL AND lng IS NOT NULL", "GPS"),
65 ("(is_free IS NOT NULL OR price_min IS NOT NULL OR (price_label IS NOT NULL AND price_label != ''))", "Prix"), 67 ("(is_free IS NOT NULL OR price_min IS NOT NULL OR (price_label IS NOT NULL AND price_label != ''))", "Prix"),
66 ("start_time IS NOT NULL AND start_time != ''", "Heure (start_time)"), 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 ("artists IS NOT NULL AND artists NOT IN ('', '[]')", "Artistes"), 71 ("artists IS NOT NULL AND artists NOT IN ('', '[]')", "Artistes"),
68 ("image IS NOT NULL AND image != ''", "Image"), 72 ("image IS NOT NULL AND image != ''", "Image"),
69 ("venue IS NOT NULL AND venue != ''", "Salle (venue)"), 73 ("venue IS NOT NULL AND venue != ''", "Salle (venue)"),
@@ -95,8 +99,12 @@ DEPANNAGE = {
95 "requis : vérifier `SCRAPFLY_API_KEY` dans `.env` et le solde " 99 "requis : vérifier `SCRAPFLY_API_KEY` dans `.env` et le solde "
96 "de crédits Scrapfly si le connecteur ne rapporte plus rien."], 100 "de crédits Scrapfly si le connecteur ne rapporte plus rien."],
97 "ticketmaster": ["Sans `TICKETMASTER_API_KEY` dans `.env`, le connecteur " 101 "ticketmaster": ["Sans `TICKETMASTER_API_KEY` dans `.env`, le connecteur "
98− "s'annonce « clé manquante » et ne retourne rien (statut " 102+ "tourne en mode REPLI (scraping des pages découverte "
99− "« prêt — clé requise »). Quota API : 5 req/s (throttle " 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 "0,25 s côté connecteur)."], 108 "0,25 s côté connecteur)."],
101 "bandsintown": ["L'API n'accepte que certains formats d'`app_id` : le " 109 "bandsintown": ["L'API n'accepte que certains formats d'`app_id` : le "
102 "format widget `js_www.sorti-ka.com` est testé accepté " 110 "format widget `js_www.sorti-ka.com` est testé accepté "
@@ -122,7 +130,20 @@ WAVE_HISTORY = (
122 "source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, " 130 "source la publie (lepointdevente, evenko, Laval, Sherbrooke, Montréal, "
123 "atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions " 131 "atuvu) ; artistes (headliners evenko, lineup Bandsintown, attractions "
124 "Ticketmaster, patrons sûrs sur les titres) ; 3 nouveaux connecteurs " 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
Menu

Theme