SPB Git forge

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.

58commits 1branches 0releases
13.7 MBsize
maindefault branch
17 days agolast push
HTML 82.9% Python 15.2% TypeScript 0.9% JavaScript 0.7%

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 1 mo ago (Aug 19, 2026) parent 19a4806

23 changed files +457 −353

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