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%

Phase 5 — billetterie Ticketpro (API JSON multi-tenants : St-Denis, Fun Nation, ExpoCité, PdC, SAG…) + salle Odyscène (Ste-Thérèse, Laurentides) via sallesjsonld

- ticketpro.py : API /api/v1/pages publique par tenant (aucun anti-bot),
  1 Event par (spectacle, date à venir), lieu complet avec GPS, tags,
  cancelled/soldout, image ; 6 tenants QC (data/ticketpro_tenants.json),
  restauration/musée à créneaux exclus — 361 séances actives au 1er sync
- salles_jsonld.json : + Odyscène (TheaterEvent JSON-LD, robots ouvert)
  → 33 événements Laurentides au 1er passage
- docs/connecteurs régénérés (40 sources)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Simon-Pierre Boucher committed 1 mo ago (Aug 23, 2026) parent eb8eef8

45 changed files +841 −515

modified data/salles_jsonld.json +10 −0
@@ -27,6 +27,16 @@
27 27 "salle": "Théâtre Capitole",
28 28 "ville": "Québec",
29 29 "robots": "Disallow: /cpresources/ /vendor/ seulement (vérifié 2026-08-19)"
30 + },
31 + {
32 + "id": "odyscene",
33 + "nom": "Odyscène (Théâtre Lionel-Groulx / Cabaret BMO, Sainte-Thérèse)",
34 + "listes": ["https://odyscene.com/programmation/",
35 + "https://odyscene.com/programmation-estivale/"],
36 + "motif": "odyscene\\.com/programmation/(?!categories/)[a-z0-9-]{3,}",
37 + "salle": "Théâtre Lionel-Groulx",
38 + "ville": "Sainte-Thérèse",
39 + "robots": "Disallow: (vide — tout permis, Yoast, vérifié 2026-08-22)"
30 40 }
31 41 ]
32 42 }
modified data/sources.json +11 −0
@@ -453,6 +453,17 @@
453 453 "couverture": "26 organisations 100 % QC : Salle Albert-Rousseau, Petit Champlain, Diffusion Saguenay, Gatineau (Odyssée, Jean-Despréz), Vieux Terrebonne, Palace de Granby, Vieux Clocher Magog/Waterloo, La Tuque, Festival Western de St-Tite, clubs LHJMQ/LNAH…",
454 454 "cadence": "horaire (watcher PM2)",
455 455 "statut": "actif"
456 + },
457 + {
458 + "id": "ticketpro",
459 + "name": "Ticketpro — billetterie canadienne (tenants Québec)",
460 + "url": "https://www.ticketpro.ca/",
461 + "type": "billetterie",
462 + "extraction": "API JSON publique de la nouvelle plateforme SPA par tenant (<org>.ticketpro.ca/api/v1/pages, aucun anti-bot ni rendu JS) : 1 fiche par spectacle avec titre, artiste, description, image, lieu complet (adresse, ville, code postal, lat/lng), toutes les dates horodatées, tags et drapeaux cancelled/soldout → 1 Event par (page, date à venir). 6 tenants QC dans data/ticketpro_tenants.json (tproqc agrège la province mais pas tprotsd), dédup inter-tenants par id de page. Lieux de restauration (soupers-spectacles St-Denis) et musée à créneaux exclus par config. startingPrice toujours 0 → aucun prix émis.",
463 + "acces_legal": "Billetterie publique ; robots.txt n'interdit que /admin/ /gui/ /report/ (vérifié 2026-08-22) ; API du site officiel consommée telle quelle, GET throttlés 1 s, UA honnête, lien d'achat vers la fiche officielle /fr/pages/<id> du tenant",
464 + "couverture": "Théâtre St-Denis + Studio St-Denis (Montréal), Fun Nation (Salle Pierre-Mercure, Monument-National, Club Soda), ExpoCité (Québec), Salle André-Gagnon (La Pocatière), Palais des congrès de Montréal, La Belle Église de Chertsey, Théâtre Rialto, Huntingdon… ~200 spectacles / ~1 100 séances datées (vérifié 2026-08-22)",
465 + "cadence": "horaire (watcher PM2)",
466 + "statut": "actif"
456 467 }
457 468 ]
458 469 }
\ No newline at end of file
added data/ticketpro_tenants.json +16 −0
@@ -0,0 +1,16 @@
1 +{
2 + "_comment": "Sorti-Ka — tenants québécois de la billetterie Ticketpro (nouvelle plateforme SPA, API /api/v1). Auteur : Simon-Pierre Boucher <contact@spboucher.ai>. Chaque tenant = <domaine>.ticketpro.ca ; l'API /api/v1/pages y est publique (vérifié 2026-08-22). tproqc agrège la majorité des salles QC mais PAS tprotsd (vérifié) → les deux sont requis, dédup par id de page. Tenants hors Québec (tproatlantic, tprobarriecolts, goredsgo…) exclus par périmètre. tpromuseerodrigue exclu : créneaux d'admission de musée (176 plages quasi identiques), pas des événements. exclure_lieux : réservations de restaurants (soupers-spectacles du groupe St-Denis) filtrées par nom de lieu normalisé (sous-chaîne, sans accents ni casse).",
3 + "tenants": [
4 + { "domaine": "tproqc", "nom": "Ticketpro Québec (agrégateur provincial)" },
5 + { "domaine": "tprotsd", "nom": "Théâtre St-Denis / Studio St-Denis (Montréal)" },
6 + { "domaine": "tprofunnation", "nom": "Fun Nation (Montréal)" },
7 + { "domaine": "expocitetpro", "nom": "ExpoCité — Centre de foires & Pavillon Guy-Lafleur (Québec)" },
8 + { "domaine": "sag", "nom": "Salle André-Gagnon (La Pocatière)" },
9 + { "domaine": "tpropdc", "nom": "Palais des congrès de Montréal" }
10 + ],
11 + "exclure_lieux": [
12 + "restaurant le moliere",
13 + "trattoria dell'arte",
14 + "musee rodrigue"
15 + ]
16 +}
modified docs/connecteurs/INDEX.md +33 −32
@@ -1,8 +1,8 @@
1 1 # Sorti-Ka — Connecteurs de sources d'événements
2 2
3 −> Index généré le 2026-08-21 21:47 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-22 23:01 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 −**39 sources au registre** — 30 actives/prêtes, 9 abandonnées · **24986 événements en base** (dont 17695 actifs).
5 +**40 sources au registre** — 31 actives/prêtes, 9 abandonnées · **25968 événements en base** (dont 18227 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,36 +10,37 @@
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 | 1020 | 97 % | 0 % | 0 % | 0 % | 0 % | 0 % | 63 % | 74 % | 2026-08-21 20:55 |
14 −| [Ville de Montréal — Événements publics](montreal.md) | donnees-ouvertes | actif | 3567 | 99 % | 100 % | 99 % | 99 % | 0 % | 0 % | 100 % | 4 % | 2026-08-21 20:55 |
15 −| [Le point de vente — billetterie québécoise](lepointdevente.md) | billetterie | actif | 1789 | 30 % | 93 % | 94 % | 0 % | 0 % | 1 % | 100 % | 99 % | 2026-08-21 20:54 |
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-21 20:50 |
17 −| [Ville de Sherbrooke — Calendrier des événements](sherbrooke.md) | municipal | actif | 114 | 0 % | 100 % | 86 % | 92 % | 0 % | 0 % | 99 % | 0 % | 2026-08-21 20:55 |
18 −| [Ville de Longueuil — Événements (nouveau portail)](longueuil.md) | municipal | actif | 4 | 75 % | 0 % | 100 % | 50 % | 0 % | 0 % | 100 % | 0 % | 2026-08-21 20:54 |
19 −| [Eventbrite — billetterie libre-service (Québec)](eventbrite.md) | billetterie | actif | 438 | 100 % | 89 % | 100 % | 100 % | 0 % | 0 % | 98 % | 100 % | 2026-08-21 20:50 |
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-21 20:49 |
21 −| [evenko — grands concerts et festivals](evenko.md) | promoteur | actif | 417 | 97 % | 0 % | 99 % | 0 % | 1 % | 99 % | 100 % | 100 % | 2026-08-21 20:49 |
22 −| [Atuvu.ca — calendrier culturel](atuvu.md) | agregateur | actif | 224 | 82 % | 25 % | 46 % | 0 % | 0 % | 0 % | 100 % | 100 % | 2026-08-21 20:49 |
23 −| [La Vitrine culturelle](lavitrine.md) | billetterie | actif | 5069 | 69 % | 0 % | 100 % | 0 % | 0 % | 0 % | 100 % | 100 % | 2026-08-21 20:53 |
24 −| [Ville de Brossard — Calendrier des événements](brossard.md) | municipal | actif | 147 | 95 % | 0 % | 96 % | 0 % | 0 % | 0 % | 100 % | 95 % | 2026-08-21 20:49 |
25 −| [Ticketmaster — Discovery API (Québec)](ticketmaster.md) | billetterie | actif | 360 | 100 % | 0 % | 96 % | 0 % | 4 % | 0 % | 90 % | 100 % | 2026-08-21 20:56 |
26 −| [Bandsintown — dates de concerts par artiste](bandsintown.md) | agregateur | actif | 521 | 100 % | 1 % | 100 % | 0 % | 0 % | 100 % | 9 % | 100 % | 2026-08-21 20:49 |
27 −| [Ville de Laval — calendrier vivant laval.ca](lavalweb.md) | municipal | actif | 462 | 75 % | 0 % | 98 % | 0 % | 0 % | 0 % | 0 % | 100 % | 2026-08-21 20:53 |
28 −| [Tourisme Outaouais — calendrier des événements (ATR)](outaouais.md) | tourisme-regional | actif | 24 | 0 % | 0 % | 0 % | 0 % | 0 % | 0 % | 100 % | 0 % | 2026-08-21 20:55 |
29 −| [Tourisme Lanaudière — événements (ATR)](lanaudiere.md) | tourisme-regional | actif | 44 | 0 % | 0 % | 0 % | 0 % | 0 % | 0 % | 93 % | 0 % | 2026-08-21 20:50 |
30 −| [Sorties Saguenay — portail événementiel de la Ville](saguenaysorties.md) | municipal | actif | 437 | 80 % | 0 % | 100 % | 0 % | 0 % | 0 % | 100 % | 86 % | 2026-08-21 20:55 |
31 −| [Tourisme Bas-Saint-Laurent — événements (ATR)](bassaintlaurent.md) | tourisme-regional | actif | 20 | 100 % | 0 % | 0 % | 0 % | 0 % | 0 % | 100 % | 0 % | 2026-08-21 20:49 |
32 −| [Québec animée — Ville de Québec](quebecanimee.md) | municipal | actif | 121 | 100 % | 100 % | 0 % | 0 % | 0 % | 0 % | 100 % | 100 % | 2026-08-21 20:55 |
33 −| [Place des Arts — calendrier multi-salles](placedesarts.md) | salle-de-spectacle | actif | 347 | 94 % | 73 % | 100 % | 0 % | 0 % | 0 % | 100 % | 100 % | 2026-08-21 20:55 |
34 −| [LHJMQ — matchs des équipes québécoises](lhjmq.md) | sport | actif | 421 | 99 % | 0 % | 100 % | 0 % | 0 % | 0 % | 0 % | 100 % | 2026-08-21 20:54 |
35 −| [Salles de spectacle — moteur générique JSON-LD Event](sallesjsonld.md) | salle-de-spectacle | actif | 278 | 100 % | 97 % | 100 % | 47 % | 1 % | 0 % | 3 % | 100 % | 2026-08-21 20:55 |
36 −| [Tourisme Gaspésie — événements (ATR)](gaspesie.md) | tourisme-regional | actif | 10 | 90 % | 0 % | 0 % | 0 % | 0 % | 0 % | 100 % | 0 % | 2026-08-21 21:08 |
37 −| [Tuxedo Billet — billetterie québécoise multi-tenants](tuxedobillet.md) | billetterie | actif | 252 | 90 % | 0 % | 0 % | 0 % | 0 % | 0 % | 100 % | 100 % | 2026-08-21 21:44 |
38 −| [Tourisme Montérégie — événements (ATR)](monteregie.md) | tourisme-regional | actif | 28 | 100 % | 0 % | 0 % | 0 % | 0 % | 0 % | 96 % | 0 % | 2026-08-21 21:11 |
39 −| [Tourisme Centre-du-Québec — événements (ATR)](centreduquebec.md) | tourisme-regional | actif | 9 | 0 % | 0 % | 0 % | 0 % | 0 % | 0 % | 100 % | 0 % | 2026-08-21 21:09 |
40 −| [Tourisme Chaudière-Appalaches — festivals et événements (ATR)](chaudiereappalaches.md) | tourisme-regional | actif | 28 | 100 % | 0 % | 0 % | 0 % | 0 % | 0 % | 100 % | 0 % | 2026-08-21 21:09 |
41 −| [TicketAcces.net — billetterie régionale québécoise](ticketacces.md) | billetterie | actif | 1320 | 73 % | 6 % | 100 % | 0 % | 0 % | 0 % | 100 % | 100 % | 2026-08-21 21:40 |
42 −| [Réseau Ovation — billetterie québécoise multi-salles](ovation.md) | billetterie | actif | 212 | 100 % | 0 % | 100 % | 0 % | 0 % | 94 % | 100 % | 100 % | 2026-08-21 21:46 |
13 +| [SIT Québec — Ministère du Tourisme](sitq.md) | donnees-ouvertes | actif | 1014 | 97 % | 0 % | 0 % | 0 % | 0 % | 0 % | 63 % | 74 % | 2026-08-22 22:28 |
14 +| [Ville de Montréal — Événements publics](montreal.md) | donnees-ouvertes | actif | 3522 | 99 % | 100 % | 99 % | 99 % | 0 % | 0 % | 100 % | 4 % | 2026-08-22 22:27 |
15 +| [Le point de vente — billetterie québécoise](lepointdevente.md) | billetterie | actif | 1790 | 30 % | 92 % | 93 % | 0 % | 0 % | 1 % | 100 % | 99 % | 2026-08-22 22:27 |
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-22 22:23 |
17 +| [Ville de Sherbrooke — Calendrier des événements](sherbrooke.md) | municipal | actif | 109 | 0 % | 100 % | 85 % | 92 % | 0 % | 0 % | 99 % | 0 % | 2026-08-22 22:28 |
18 +| [Ville de Longueuil — Événements (nouveau portail)](longueuil.md) | municipal | actif | 4 | 75 % | 0 % | 100 % | 50 % | 0 % | 0 % | 100 % | 0 % | 2026-08-22 22:27 |
19 +| [Eventbrite — billetterie libre-service (Québec)](eventbrite.md) | billetterie | actif | 435 | 100 % | 88 % | 100 % | 100 % | 0 % | 0 % | 98 % | 100 % | 2026-08-22 22:23 |
20 +| [Tourisme Cantons-de-l'Est — calendrier officiel (ATR Estrie)](cantonsdelest.md) | tourisme-regional | actif | 11 | 82 % | 0 % | 0 % | 0 % | 0 % | 0 % | 100 % | 0 % | 2026-08-22 22:22 |
21 +| [evenko — grands concerts et festivals](evenko.md) | promoteur | actif | 413 | 97 % | 0 % | 99 % | 0 % | 1 % | 99 % | 100 % | 100 % | 2026-08-22 22:22 |
22 +| [Atuvu.ca — calendrier culturel](atuvu.md) | agregateur | actif | 216 | 82 % | 23 % | 46 % | 0 % | 0 % | 0 % | 100 % | 100 % | 2026-08-22 22:22 |
23 +| [La Vitrine culturelle](lavitrine.md) | billetterie | actif | 5039 | 69 % | 0 % | 100 % | 0 % | 0 % | 0 % | 100 % | 100 % | 2026-08-22 22:26 |
24 +| [Ville de Brossard — Calendrier des événements](brossard.md) | municipal | actif | 146 | 95 % | 0 % | 96 % | 0 % | 0 % | 0 % | 100 % | 95 % | 2026-08-22 22:22 |
25 +| [Ticketmaster — Discovery API (Québec)](ticketmaster.md) | billetterie | actif | 359 | 100 % | 0 % | 96 % | 0 % | 4 % | 0 % | 89 % | 100 % | 2026-08-22 22:29 |
26 +| [Bandsintown — dates de concerts par artiste](bandsintown.md) | agregateur | actif | 519 | 100 % | 1 % | 100 % | 0 % | 0 % | 100 % | 8 % | 100 % | 2026-08-22 22:22 |
27 +| [Ville de Laval — calendrier vivant laval.ca](lavalweb.md) | municipal | actif | 443 | 75 % | 0 % | 98 % | 0 % | 0 % | 0 % | 0 % | 100 % | 2026-08-22 22:26 |
28 +| [Tourisme Outaouais — calendrier des événements (ATR)](outaouais.md) | tourisme-regional | actif | 24 | 0 % | 0 % | 0 % | 0 % | 0 % | 0 % | 100 % | 0 % | 2026-08-22 22:27 |
29 +| [Tourisme Lanaudière — événements (ATR)](lanaudiere.md) | tourisme-regional | actif | 44 | 0 % | 0 % | 0 % | 0 % | 0 % | 0 % | 93 % | 0 % | 2026-08-22 22:23 |
30 +| [Sorties Saguenay — portail événementiel de la Ville](saguenaysorties.md) | municipal | actif | 438 | 80 % | 0 % | 100 % | 0 % | 0 % | 0 % | 100 % | 86 % | 2026-08-22 22:28 |
31 +| [Tourisme Bas-Saint-Laurent — événements (ATR)](bassaintlaurent.md) | tourisme-regional | actif | 20 | 100 % | 0 % | 0 % | 0 % | 0 % | 0 % | 100 % | 0 % | 2026-08-22 22:22 |
32 +| [Québec animée — Ville de Québec](quebecanimee.md) | municipal | actif | 102 | 100 % | 100 % | 0 % | 0 % | 0 % | 0 % | 100 % | 100 % | 2026-08-22 22:27 |
33 +| [Place des Arts — calendrier multi-salles](placedesarts.md) | salle-de-spectacle | actif | 346 | 94 % | 73 % | 100 % | 0 % | 0 % | 0 % | 100 % | 100 % | 2026-08-22 22:27 |
34 +| [LHJMQ — matchs des équipes québécoises](lhjmq.md) | sport | actif | 417 | 99 % | 0 % | 100 % | 0 % | 0 % | 0 % | 0 % | 100 % | 2026-08-22 22:27 |
35 +| [Salles de spectacle — moteur générique JSON-LD Event](sallesjsonld.md) | salle-de-spectacle | actif | 308 | 100 % | 97 % | 100 % | 53 % | 1 % | 0 % | 13 % | 100 % | 2026-08-22 22:59 |
36 +| [Tourisme Gaspésie — événements (ATR)](gaspesie.md) | tourisme-regional | actif | 10 | 90 % | 0 % | 0 % | 0 % | 0 % | 0 % | 100 % | 0 % | 2026-08-22 22:23 |
37 +| [Tuxedo Billet — billetterie québécoise multi-tenants](tuxedobillet.md) | billetterie | actif | 442 | 44 % | 0 % | 0 % | 0 % | 0 % | 0 % | 100 % | 100 % | 2026-08-22 22:29 |
38 +| [Tourisme Montérégie — événements (ATR)](monteregie.md) | tourisme-regional | actif | 28 | 100 % | 0 % | 0 % | 0 % | 0 % | 0 % | 96 % | 0 % | 2026-08-22 22:27 |
39 +| [Tourisme Centre-du-Québec — événements (ATR)](centreduquebec.md) | tourisme-regional | actif | 9 | 0 % | 0 % | 0 % | 0 % | 0 % | 0 % | 100 % | 0 % | 2026-08-22 22:22 |
40 +| [Tourisme Chaudière-Appalaches — festivals et événements (ATR)](chaudiereappalaches.md) | tourisme-regional | actif | 28 | 100 % | 0 % | 0 % | 0 % | 0 % | 0 % | 100 % | 0 % | 2026-08-22 22:22 |
41 +| [TicketAcces.net — billetterie régionale québécoise](ticketacces.md) | billetterie | actif | 1318 | 74 % | 21 % | 100 % | 0 % | 0 % | 0 % | 99 % | 100 % | 2026-08-22 22:28 |
42 +| [Réseau Ovation — billetterie québécoise multi-salles](ovation.md) | billetterie | actif | 311 | 100 % | 0 % | 100 % | 0 % | 0 % | 90 % | 100 % | 100 % | 2026-08-22 22:27 |
43 +| [Ticketpro — billetterie canadienne (tenants Québec)](ticketpro.md) | billetterie | actif | 361 | 99 % | 0 % | 100 % | 0 % | 0 % | 78 % | 100 % | 100 % | 2026-08-22 22:57 |
43 44
44 45 ## Sources abandonnées
45 46
modified docs/connecteurs/atuvu.md +28 −28
@@ -1,6 +1,6 @@
1 1 # Atuvu.ca — calendrier culturel (`atuvu`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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,30 +38,30 @@
38 38
39 39 ## Champs récupérés → schéma
40 40
41 −Complétude mesurée sur les **224 événements actifs** de la source ; exemples tirés d'un événement réel (`atuvu:une-femme-denfer-2026-08-21`).
41 +Complétude mesurée sur les **216 événements actifs** de la source ; exemples tirés d'un événement réel (`atuvu:on-daaaaance-2026-08-22`).
42 42
43 43 | Champ (`events.*`) | Description | Complétude | Exemple réel |
44 44 |---|---|---|---|
45 −| `title` — Titre | titre de l'événement | 100 % | Une femme d'enfer |
45 +| `title` — Titre | titre de l'événement | 100 % | On Daaaaance |
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/une-femme-denfer |
47 +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://atuvu.ca/billets-spectacle/on-daaaaance |
48 48 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique", "arts-scene"] |
49 −| `venue` — Salle (venue) | nom du lieu | 100 % | La Comédie de Montréal |
49 +| `venue` — Salle (venue) | nom du lieu | 100 % | Maison Mère Baie-Saint-Paul |
50 50 | `address` — Adresse | adresse civique | 0 % | ∅ |
51 −| `city` — Ville | municipalité | 98 % | Montréal |
52 −| `region` — Région | région administrative | 96 % | Montréal |
53 −| `lat` — GPS (lat/lng) | coordonnées géographiques | 82 % | 45.518607, -73.558419 |
54 −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-21 |
55 −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-21 |
56 −| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 46 % | 20:00 |
51 +| `city` — Ville | municipalité | 98 % | Baie-Saint-Paul |
52 +| `region` — Région | région administrative | 96 % | Capitale-Nationale |
53 +| `lat` — GPS (lat/lng) | coordonnées géographiques | 82 % | 47.4384969, -70.5066321 |
54 +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-22 |
55 +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-22 |
56 +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 46 % | 11:30 |
57 57 | `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ |
58 58 | `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ |
59 −| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 19 % | 0 |
60 −| `price_min` — Prix min | tarif minimal réel ($) | 25 % | 35.0 |
61 −| `price_label` — Libellé prix | étiquette tarifaire affichable | 19 % | 35.00 $ (prix régulier atuvu.ca) |
59 +| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 18 % | ∅ |
60 +| `price_min` — Prix min | tarif minimal réel ($) | 23 % | 0.0 |
61 +| `price_label` — Libellé prix | étiquette tarifaire affichable | 18 % | ∅ |
62 62 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
63 63 | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ |
64 −| `image` — Image | visuel (og:image ou média source) | 100 % | https://atuvu.ca/uploads/images/2026/06/femme-denfer.jpg |
64 +| `image` — Image | visuel (og:image ou média source) | 100 % | https://atuvu.ca/uploads/images/2026/07/on-daaaaance.jpg |
65 65 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
66 66
67 67 ## Fréquence & budgets
@@ -76,19 +76,19 @@ Complétude mesurée sur les **224 événements actifs** de la source ; exemples
76 76
77 77 ## Volumétrie & complétude live
78 78
79 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
80 −
81 −- **Événements en base** : 249 (dont **224 actifs**)
82 −- **GPS** : 183/224 actifs (82 %)
83 −- **Prix** : 55/224 actifs (25 %)
84 −- **Heure (start_time)** : 103/224 actifs (46 %)
85 −- **Heure de fin** : 0/224 actifs (0 %)
86 −- **Statut (annulé/reporté/complet)** : 0/224 actifs (0 %)
87 −- **Artistes** : 0/224 actifs (0 %)
88 −- **Image** : 224/224 actifs (100 %)
89 −- **Salle (venue)** : 224/224 actifs (100 %)
90 −- **Dernier sync** : 2026-08-21 20:49 — fetched 253, +0 ajoutés, ~2 mis à jour, -0 retirés
91 −- **Syncs enregistrés** (sync_log) : 98
79 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
80 +
81 +- **Événements en base** : 249 (dont **216 actifs**)
82 +- **GPS** : 177/216 actifs (82 %)
83 +- **Prix** : 50/216 actifs (23 %)
84 +- **Heure (start_time)** : 100/216 actifs (46 %)
85 +- **Heure de fin** : 0/216 actifs (0 %)
86 +- **Statut (annulé/reporté/complet)** : 0/216 actifs (0 %)
87 +- **Artistes** : 0/216 actifs (0 %)
88 +- **Image** : 216/216 actifs (100 %)
89 +- **Salle (venue)** : 216/216 actifs (100 %)
90 +- **Dernier sync** : 2026-08-22 22:22 — fetched 253, +0 ajoutés, ~2 mis à jour, -0 retirés
91 +- **Syncs enregistrés** (sync_log) : 119
92 92
93 93 ## Erreurs & dépannage
94 94
modified docs/connecteurs/bandsintown.md +16 −16
@@ -1,6 +1,6 @@
1 1 # Bandsintown — dates de concerts par artiste (`bandsintown`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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,7 +43,7 @@
43 43
44 44 ## Champs récupérés → schéma
45 45
46 −Complétude mesurée sur les **521 événements actifs** de la source ; exemples tirés d'un événement réel (`bandsintown:108801594`).
46 +Complétude mesurée sur les **519 événements actifs** de la source ; exemples tirés d'un événement réel (`bandsintown:108801594`).
47 47
48 48 | Champ (`events.*`) | Description | Complétude | Exemple réel |
49 49 |---|---|---|---|
@@ -66,7 +66,7 @@ Complétude mesurée sur les **521 événements actifs** de la source ; exemples
66 66 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
67 67 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 100 % | ["Fine Food Market"] |
68 68 | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ |
69 −| `image` — Image | visuel (og:image ou média source) | 9 % | https://photos.bandsintown.com/large/25970249.jpeg |
69 +| `image` — Image | visuel (og:image ou média source) | 8 % | https://photos.bandsintown.com/large/25970249.jpeg |
70 70 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
71 71
72 72 ## Fréquence & budgets
@@ -82,19 +82,19 @@ Complétude mesurée sur les **521 événements actifs** de la source ; exemples
82 82
83 83 ## Volumétrie & complétude live
84 84
85 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
86 −
87 −- **Événements en base** : 529 (dont **521 actifs**)
88 −- **GPS** : 521/521 actifs (100 %)
89 −- **Prix** : 5/521 actifs (1 %)
90 −- **Heure (start_time)** : 520/521 actifs (100 %)
91 −- **Heure de fin** : 0/521 actifs (0 %)
92 −- **Statut (annulé/reporté/complet)** : 0/521 actifs (0 %)
93 −- **Artistes** : 521/521 actifs (100 %)
94 −- **Image** : 48/521 actifs (9 %)
95 −- **Salle (venue)** : 521/521 actifs (100 %)
96 −- **Dernier sync** : 2026-08-21 20:49 — fetched 521, +0 ajoutés, ~0 mis à jour, -0 retirés
97 −- **Syncs enregistrés** (sync_log) : 83
85 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
86 +
87 +- **Événements en base** : 532 (dont **519 actifs**)
88 +- **GPS** : 519/519 actifs (100 %)
89 +- **Prix** : 5/519 actifs (1 %)
90 +- **Heure (start_time)** : 518/519 actifs (100 %)
91 +- **Heure de fin** : 0/519 actifs (0 %)
92 +- **Statut (annulé/reporté/complet)** : 0/519 actifs (0 %)
93 +- **Artistes** : 519/519 actifs (100 %)
94 +- **Image** : 44/519 actifs (8 %)
95 +- **Salle (venue)** : 519/519 actifs (100 %)
96 +- **Dernier sync** : 2026-08-22 22:22 — fetched 522, +0 ajoutés, ~0 mis à jour, -0 retirés
97 +- **Syncs enregistrés** (sync_log) : 104
98 98
99 99 ## Erreurs & dépannage
100 100
modified docs/connecteurs/bassaintlaurent.md +4 −4
@@ -1,6 +1,6 @@
1 1 # Tourisme Bas-Saint-Laurent — événements (ATR) (`bassaintlaurent`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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/bassaintlaurent.py`
6 6
@@ -78,7 +78,7 @@ Complétude mesurée sur les **20 événements actifs** de la source ; exemples
78 78
79 79 ## Volumétrie & complétude live
80 80
81 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
81 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
82 82
83 83 - **Événements en base** : 27 (dont **20 actifs**)
84 84 - **GPS** : 20/20 actifs (100 %)
@@ -89,8 +89,8 @@ Complétude mesurée sur les **20 événements actifs** de la source ; exemples
89 89 - **Artistes** : 0/20 actifs (0 %)
90 90 - **Image** : 20/20 actifs (100 %)
91 91 - **Salle (venue)** : 0/20 actifs (0 %)
92 −- **Dernier sync** : 2026-08-21 20:49 — fetched 27, +0 ajoutés, ~0 mis à jour, -0 retirés
93 −- **Syncs enregistrés** (sync_log) : 60
92 +- **Dernier sync** : 2026-08-22 22:22 — fetched 27, +0 ajoutés, ~0 mis à jour, -0 retirés
93 +- **Syncs enregistrés** (sync_log) : 81
94 94
95 95 ## Erreurs & dépannage
96 96
modified docs/connecteurs/brossard.md +15 −15
@@ -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-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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,7 +43,7 @@
43 43
44 44 ## Champs récupérés → schéma
45 45
46 −Complétude mesurée sur les **147 événements actifs** de la source ; exemples tirés d'un événement réel (`brossard:37838`).
46 +Complétude mesurée sur les **146 é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 |---|---|---|---|
@@ -81,19 +81,19 @@ Complétude mesurée sur les **147 événements actifs** de la source ; exemples
81 81
82 82 ## Volumétrie & complétude live
83 83
84 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
85 −
86 −- **Événements en base** : 264 (dont **147 actifs**)
87 −- **GPS** : 139/147 actifs (95 %)
88 −- **Prix** : 0/147 actifs (0 %)
89 −- **Heure (start_time)** : 141/147 actifs (96 %)
90 −- **Heure de fin** : 0/147 actifs (0 %)
91 −- **Statut (annulé/reporté/complet)** : 0/147 actifs (0 %)
92 −- **Artistes** : 0/147 actifs (0 %)
93 −- **Image** : 147/147 actifs (100 %)
94 −- **Salle (venue)** : 139/147 actifs (95 %)
95 −- **Dernier sync** : 2026-08-21 20:49 — fetched 264, +0 ajoutés, ~0 mis à jour, -0 retirés
96 −- **Syncs enregistrés** (sync_log) : 83
84 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
85 +
86 +- **Événements en base** : 264 (dont **146 actifs**)
87 +- **GPS** : 138/146 actifs (95 %)
88 +- **Prix** : 0/146 actifs (0 %)
89 +- **Heure (start_time)** : 140/146 actifs (96 %)
90 +- **Heure de fin** : 0/146 actifs (0 %)
91 +- **Statut (annulé/reporté/complet)** : 0/146 actifs (0 %)
92 +- **Artistes** : 0/146 actifs (0 %)
93 +- **Image** : 146/146 actifs (100 %)
94 +- **Salle (venue)** : 138/146 actifs (95 %)
95 +- **Dernier sync** : 2026-08-22 22:22 — fetched 264, +0 ajoutés, ~0 mis à jour, -0 retirés
96 +- **Syncs enregistrés** (sync_log) : 104
97 97
98 98 ## Erreurs & dépannage
99 99
modified docs/connecteurs/cantonsdelest.md +16 −16
@@ -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-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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,20 +41,20 @@
41 41
42 42 ## Champs récupérés → schéma
43 43
44 −Complétude mesurée sur les **11 événements actifs** de la source ; exemples tirés d'un événement réel (`cantonsdelest:7646-2584`).
44 +Complétude mesurée sur les **11 événements actifs** de la source ; exemples tirés d'un événement réel (`cantonsdelest:10138-4642`).
45 45
46 46 | Champ (`events.*`) | Description | Complétude | Exemple réel |
47 47 |---|---|---|---|
48 −| `title` — Titre | titre de l'événement | 100 % | NanoFest |
49 −| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | Le NanoFest présente de la musique, de la poésie, du conte, de la danse, du cirque et de l’art v… |
50 −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.cantonsdelest.com/evenements/7646/nanofest/2584 |
51 −| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] |
48 +| `title` — Titre | titre de l'événement | 100 % | Festival Malvina |
49 +| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | Pour sa première édition, le Festival Malvina réunit artistes, chercheurs et spécialistes des te… |
50 +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.cantonsdelest.com/evenements/10138/festival-malvina/4642 |
51 +| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["festival"] |
52 52 | `venue` — Salle (venue) | nom du lieu | 0 % | ∅ |
53 −| `address` — Adresse | adresse civique | 82 % | ∅ |
54 −| `city` — Ville | municipalité | 100 % | Bury |
53 +| `address` — Adresse | adresse civique | 82 % | 309 Chemin de Malvina |
54 +| `city` — Ville | municipalité | 100 % | Saint-Malo |
55 55 | `region` — Région | région administrative | 100 % | Estrie |
56 −| `lat` — GPS (lat/lng) | coordonnées géographiques | 91 % | 45.510797, -71.442105 |
57 −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-21 |
56 +| `lat` — GPS (lat/lng) | coordonnées géographiques | 82 % | 45.186432, -71.447036 |
57 +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-22 |
58 58 | `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-23 |
59 59 | `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 0 % | ∅ |
60 60 | `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **11 événements actifs** de la source ; exemples
64 64 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
65 65 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
66 66 | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ |
67 −| `image` — Image | visuel (og:image ou média source) | 100 % | https://mto.media.tourinsoft.eu/upload/IMG-0065.png?width=1191&height=670 |
67 +| `image` — Image | visuel (og:image ou média source) | 100 % | https://mto.media.tourinsoft.eu/upload/Site-du-ccdMalvina-en-visite.jpg?width=1191&height=670 |
68 68 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
69 69
70 70 ## Fréquence & budgets
@@ -79,10 +79,10 @@ Complétude mesurée sur les **11 événements actifs** de la source ; exemples
79 79
80 80 ## Volumétrie & complétude live
81 81
82 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
82 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
83 83
84 −- **Événements en base** : 47 (dont **11 actifs**)
85 −- **GPS** : 10/11 actifs (91 %)
84 +- **Événements en base** : 59 (dont **11 actifs**)
85 +- **GPS** : 9/11 actifs (82 %)
86 86 - **Prix** : 0/11 actifs (0 %)
87 87 - **Heure (start_time)** : 0/11 actifs (0 %)
88 88 - **Heure de fin** : 0/11 actifs (0 %)
@@ -90,8 +90,8 @@ Complétude mesurée sur les **11 événements actifs** de la source ; exemples
90 90 - **Artistes** : 0/11 actifs (0 %)
91 91 - **Image** : 11/11 actifs (100 %)
92 92 - **Salle (venue)** : 0/11 actifs (0 %)
93 −- **Dernier sync** : 2026-08-21 20:49 — fetched 13, +0 ajoutés, ~0 mis à jour, -0 retirés
94 −- **Syncs enregistrés** (sync_log) : 80
93 +- **Dernier sync** : 2026-08-22 22:22 — fetched 13, +0 ajoutés, ~0 mis à jour, -0 retirés
94 +- **Syncs enregistrés** (sync_log) : 101
95 95
96 96 ## Erreurs & dépannage
97 97
modified docs/connecteurs/centreduquebec.md +8 −4
@@ -1,6 +1,6 @@
1 1 # Tourisme Centre-du-Québec — événements (ATR) (`centreduquebec`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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/centreduquebec.py`
6 6
@@ -79,7 +79,7 @@ Complétude mesurée sur les **9 événements actifs** de la source ; exemples t
79 79
80 80 ## Volumétrie & complétude live
81 81
82 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
82 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
83 83
84 84 - **Événements en base** : 9 (dont **9 actifs**)
85 85 - **GPS** : 0/9 actifs (0 %)
@@ -90,8 +90,8 @@ Complétude mesurée sur les **9 événements actifs** de la source ; exemples t
90 90 - **Artistes** : 0/9 actifs (0 %)
91 91 - **Image** : 9/9 actifs (100 %)
92 92 - **Salle (venue)** : 0/9 actifs (0 %)
93 −- **Dernier sync** : 2026-08-21 21:09 — fetched 9, +0 ajoutés, ~0 mis à jour, -0 retirés
94 −- **Syncs enregistrés** (sync_log) : 3
93 +- **Dernier sync** : 2026-08-22 22:22 — fetched 9, +0 ajoutés, ~0 mis à jour, -0 retirés
94 +- **Syncs enregistrés** (sync_log) : 24
95 95
96 96 ## Erreurs & dépannage
97 97
@@ -108,3 +108,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
108 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.
109 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 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 ».
111 +
112 +Commits touchant `sortika/connectors/centreduquebec.py` :
113 +
114 +- `5973906` 2026-08-21 Phase 4 — 7 nouveaux connecteurs : régions manquantes (Montérégie, Centre-du-Québec, Chaudière-Appalaches, Gaspésie via Scrapfly) + billetteries QC (TicketAcces, Réseau Ovation, Tuxedo via acteur Apify ka-tuxedo)
modified docs/connecteurs/chaudiereappalaches.md +8 −4
@@ -1,6 +1,6 @@
1 1 # Tourisme Chaudière-Appalaches — festivals et événements (ATR) (`chaudiereappalaches`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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/chaudiereappalaches.py`
6 6
@@ -81,7 +81,7 @@ Complétude mesurée sur les **28 événements actifs** de la source ; exemples
81 81
82 82 ## Volumétrie & complétude live
83 83
84 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
84 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
85 85
86 86 - **Événements en base** : 28 (dont **28 actifs**)
87 87 - **GPS** : 28/28 actifs (100 %)
@@ -92,8 +92,8 @@ Complétude mesurée sur les **28 événements actifs** de la source ; exemples
92 92 - **Artistes** : 0/28 actifs (0 %)
93 93 - **Image** : 28/28 actifs (100 %)
94 94 - **Salle (venue)** : 0/28 actifs (0 %)
95 −- **Dernier sync** : 2026-08-21 21:09 — fetched 28, +0 ajoutés, ~0 mis à jour, -0 retirés
96 −- **Syncs enregistrés** (sync_log) : 3
95 +- **Dernier sync** : 2026-08-22 22:22 — fetched 28, +0 ajoutés, ~0 mis à jour, -0 retirés
96 +- **Syncs enregistrés** (sync_log) : 24
97 97
98 98 ## Erreurs & dépannage
99 99
@@ -110,3 +110,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
110 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.
111 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 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 ».
113 +
114 +Commits touchant `sortika/connectors/chaudiereappalaches.py` :
115 +
116 +- `5973906` 2026-08-21 Phase 4 — 7 nouveaux connecteurs : régions manquantes (Montérégie, Centre-du-Québec, Chaudière-Appalaches, Gaspésie via Scrapfly) + billetteries QC (TicketAcces, Réseau Ovation, Tuxedo via acteur Apify ka-tuxedo)
modified docs/connecteurs/clubs-pros.md +1 −1
@@ -1,6 +1,6 @@
1 1 # Clubs professionnels (CF Montréal, Alouettes, Rocket, Victoire…) (`clubs-pros`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
4 4
5 5 **Statut : abandonnee** · Type : `sport` · Connecteur : *aucun (source sans connecteur runtime)*
6 6
modified docs/connecteurs/evenko.md +15 −15
@@ -1,6 +1,6 @@
1 1 # evenko — grands concerts et festivals (`evenko`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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,7 +40,7 @@
40 40
41 41 ## Champs récupérés → schéma
42 42
43 −Complétude mesurée sur les **417 événements actifs** de la source ; exemples tirés d'un événement réel (`evenko:e008639`).
43 +Complétude mesurée sur les **413 événements actifs** de la source ; exemples tirés d'un événement réel (`evenko:e008639`).
44 44
45 45 | Champ (`events.*`) | Description | Complétude | Exemple réel |
46 46 |---|---|---|---|
@@ -73,19 +73,19 @@ Complétude mesurée sur les **417 événements actifs** de la source ; exemples
73 73
74 74 ## Volumétrie & complétude live
75 75
76 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
77 −
78 −- **Événements en base** : 426 (dont **417 actifs**)
79 −- **GPS** : 404/417 actifs (97 %)
80 −- **Prix** : 0/417 actifs (0 %)
81 −- **Heure (start_time)** : 414/417 actifs (99 %)
82 −- **Heure de fin** : 0/417 actifs (0 %)
83 −- **Statut (annulé/reporté/complet)** : 4/417 actifs (1 %)
84 −- **Artistes** : 414/417 actifs (99 %)
85 −- **Image** : 417/417 actifs (100 %)
86 −- **Salle (venue)** : 417/417 actifs (100 %)
87 −- **Dernier sync** : 2026-08-21 20:49 — fetched 417, +0 ajoutés, ~0 mis à jour, -0 retirés
88 −- **Syncs enregistrés** (sync_log) : 99
76 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
77 +
78 +- **Événements en base** : 426 (dont **413 actifs**)
79 +- **GPS** : 400/413 actifs (97 %)
80 +- **Prix** : 0/413 actifs (0 %)
81 +- **Heure (start_time)** : 410/413 actifs (99 %)
82 +- **Heure de fin** : 0/413 actifs (0 %)
83 +- **Statut (annulé/reporté/complet)** : 4/413 actifs (1 %)
84 +- **Artistes** : 410/413 actifs (99 %)
85 +- **Image** : 413/413 actifs (100 %)
86 +- **Salle (venue)** : 413/413 actifs (100 %)
87 +- **Dernier sync** : 2026-08-22 22:22 — fetched 413, +0 ajoutés, ~0 mis à jour, -0 retirés
88 +- **Syncs enregistrés** (sync_log) : 120
89 89
90 90 ## Erreurs & dépannage
91 91
modified docs/connecteurs/eventbrite.md +29 −29
@@ -1,6 +1,6 @@
1 1 # Eventbrite — billetterie libre-service (Québec) (`eventbrite`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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,30 +46,30 @@
46 46
47 47 ## Champs récupérés → schéma
48 48
49 −Complétude mesurée sur les **438 événements actifs** de la source ; exemples tirés d'un événement réel (`eventbrite:1997881258626`).
49 +Complétude mesurée sur les **435 événements actifs** de la source ; exemples tirés d'un événement réel (`eventbrite:1998507569940`).
50 50
51 51 | Champ (`events.*`) | Description | Complétude | Exemple réel |
52 52 |---|---|---|---|
53 −| `title` — Titre | titre de l'événement | 100 % | SANTA RM - CELEBRA 20 AÑOS / MONTREAL, CANADA |
54 −| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | SANTA RM CELEBRA POR PRIMERA VEZ 20 AÑOS DE TRAYECTORIA EN MONTREAL DISFRUTA EN VIVO TODOS SUS G… |
55 −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.eventbrite.ca/e/santa-rm-celebra-20-anos-montreal-canada-tickets-1997881258626 |
53 +| `title` — Titre | titre de l'événement | 100 % | 5 à Set: Cleo Sol's "Gold" Album Listening Party |
54 +| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | Join us at Velora Café for a listening party of Cleo Sol's album: "Gold" on vinyl. |
55 +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.eventbrite.com/e/5-a-set-cleo-sols-gold-album-listening-party-tickets-1998507569940 |
56 56 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] |
57 −| `venue` — Salle (venue) | nom du lieu | 100 % | 60 Rue Saint-Jacques |
58 −| `address` — Adresse | adresse civique | 100 % | 60 Rue Saint-Jacques |
57 +| `venue` — Salle (venue) | nom du lieu | 100 % | Velora Cafe Patisserie |
58 +| `address` — Adresse | adresse civique | 100 % | 3009 Rue Notre-Dame 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.505461, -73.556948 |
62 −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-10-03 |
63 −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-10-03 |
61 +| `lat` — GPS (lat/lng) | coordonnées géographiques | 100 % | 45.481172, -73.578329 |
62 +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-25 |
63 +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-25 |
64 64 | `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 19:00 |
65 −| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 100 % | 22:30 |
65 +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 100 % | 21:30 |
66 66 | `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ |
67 −| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 89 % | 0 |
68 −| `price_min` — Prix min | tarif minimal réel ($) | 87 % | 60.03 |
69 −| `price_label` — Libellé prix | étiquette tarifaire affichable | 89 % | 60.03 $ à 106.88 $ (Eventbrite) |
67 +| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 88 % | 0 |
68 +| `price_min` — Prix min | tarif minimal réel ($) | 88 % | 11.44 |
69 +| `price_label` — Libellé prix | étiquette tarifaire affichable | 88 % | 11.44 $ (Eventbrite) |
70 70 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
71 −| `organizer` — Organisateur | promoteur / organisme | 96 % | DIEGO MX |
72 −| `image` — Image | visuel (og:image ou média source) | 98 % | https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F1191383521%2F2637625526451%2F1%2For… |
71 +| `organizer` — Organisateur | promoteur / organisme | 97 % | 5 à Set |
72 +| `image` — Image | visuel (og:image ou média source) | 98 % | https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F1191546814%2F2985293405298%2F1%2For… |
73 73 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
74 74
75 75 ## Fréquence & budgets
@@ -84,19 +84,19 @@ Complétude mesurée sur les **438 événements actifs** de la source ; exemples
84 84
85 85 ## Volumétrie & complétude live
86 86
87 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
88 −
89 −- **Événements en base** : 527 (dont **438 actifs**)
90 −- **GPS** : 438/438 actifs (100 %)
91 −- **Prix** : 388/438 actifs (89 %)
92 −- **Heure (start_time)** : 438/438 actifs (100 %)
93 −- **Heure de fin** : 438/438 actifs (100 %)
94 −- **Statut (annulé/reporté/complet)** : 0/438 actifs (0 %)
95 −- **Artistes** : 0/438 actifs (0 %)
96 −- **Image** : 428/438 actifs (98 %)
97 −- **Salle (venue)** : 438/438 actifs (100 %)
98 −- **Dernier sync** : 2026-08-21 20:50 — fetched 427, +5 ajoutés, ~1 mis à jour, -2 retirés
99 −- **Syncs enregistrés** (sync_log) : 81
87 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
88 +
89 +- **Événements en base** : 570 (dont **435 actifs**)
90 +- **GPS** : 435/435 actifs (100 %)
91 +- **Prix** : 384/435 actifs (88 %)
92 +- **Heure (start_time)** : 435/435 actifs (100 %)
93 +- **Heure de fin** : 435/435 actifs (100 %)
94 +- **Statut (annulé/reporté/complet)** : 0/435 actifs (0 %)
95 +- **Artistes** : 0/435 actifs (0 %)
96 +- **Image** : 426/435 actifs (98 %)
97 +- **Salle (venue)** : 435/435 actifs (100 %)
98 +- **Dernier sync** : 2026-08-22 22:23 — fetched 432, +3 ajoutés, ~0 mis à jour, -11 retirés
99 +- **Syncs enregistrés** (sync_log) : 102
100 100
101 101 ## Erreurs & dépannage
102 102
modified docs/connecteurs/gaspesie.md +8 −4
@@ -1,6 +1,6 @@
1 1 # Tourisme Gaspésie — événements (ATR) (`gaspesie`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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/gaspesie.py`
6 6
@@ -83,7 +83,7 @@ Complétude mesurée sur les **10 événements actifs** de la source ; exemples
83 83
84 84 ## Volumétrie & complétude live
85 85
86 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
86 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
87 87
88 88 - **Événements en base** : 26 (dont **10 actifs**)
89 89 - **GPS** : 9/10 actifs (90 %)
@@ -94,8 +94,8 @@ Complétude mesurée sur les **10 événements actifs** de la source ; exemples
94 94 - **Artistes** : 0/10 actifs (0 %)
95 95 - **Image** : 10/10 actifs (100 %)
96 96 - **Salle (venue)** : 0/10 actifs (0 %)
97 −- **Dernier sync** : 2026-08-21 21:08 — fetched 26, +0 ajoutés, ~0 mis à jour, -0 retirés
98 −- **Syncs enregistrés** (sync_log) : 4
97 +- **Dernier sync** : 2026-08-22 22:23 — fetched 26, +0 ajoutés, ~0 mis à jour, -0 retirés
98 +- **Syncs enregistrés** (sync_log) : 25
99 99
100 100 ## Erreurs & dépannage
101 101
@@ -112,3 +112,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
112 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.
113 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 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 ».
115 +
116 +Commits touchant `sortika/connectors/gaspesie.py` :
117 +
118 +- `5973906` 2026-08-21 Phase 4 — 7 nouveaux connecteurs : régions manquantes (Montérégie, Centre-du-Québec, Chaudière-Appalaches, Gaspésie via Scrapfly) + billetteries QC (TicketAcces, Réseau Ovation, Tuxedo via acteur Apify ka-tuxedo)
modified docs/connecteurs/gatineau.md +1 −1
@@ -1,6 +1,6 @@
1 1 # Ville de Gatineau — Événements (`gatineau`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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
modified docs/connecteurs/lanaudiere.md +4 −4
@@ -1,6 +1,6 @@
1 1 # Tourisme Lanaudière — événements (ATR) (`lanaudiere`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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/lanaudiere.py`
6 6
@@ -80,7 +80,7 @@ Complétude mesurée sur les **44 événements actifs** de la source ; exemples
80 80
81 81 ## Volumétrie & complétude live
82 82
83 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
83 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
84 84
85 85 - **Événements en base** : 81 (dont **44 actifs**)
86 86 - **GPS** : 0/44 actifs (0 %)
@@ -91,8 +91,8 @@ Complétude mesurée sur les **44 événements actifs** de la source ; exemples
91 91 - **Artistes** : 0/44 actifs (0 %)
92 92 - **Image** : 41/44 actifs (93 %)
93 93 - **Salle (venue)** : 0/44 actifs (0 %)
94 −- **Dernier sync** : 2026-08-21 20:50 — fetched 81, +0 ajoutés, ~0 mis à jour, -0 retirés
95 −- **Syncs enregistrés** (sync_log) : 60
94 +- **Dernier sync** : 2026-08-22 22:23 — fetched 81, +0 ajoutés, ~0 mis à jour, -0 retirés
95 +- **Syncs enregistrés** (sync_log) : 81
96 96
97 97 ## Erreurs & dépannage
98 98
modified docs/connecteurs/laurentides.md +1 −1
@@ -1,6 +1,6 @@
1 1 # Tourisme Laurentides — événements (ATR) (`laurentides`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
4 4
5 5 **Statut : abandonnee** · Type : `tourisme-regional` · Connecteur : *aucun (source sans connecteur runtime)*
6 6
modified docs/connecteurs/laval.md +4 −4
@@ -1,6 +1,6 @@
1 1 # Ville de Laval — Calendrier des activités (`laval`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
4 4
5 5 **Statut : morte-a-la-source** · Type : `donnees-ouvertes` · Connecteur : `sortika/connectors/laval.py`
6 6
@@ -67,7 +67,7 @@ Complétude mesurée sur les **1 événements actifs** de la source ; exemples t
67 67
68 68 ## Volumétrie & complétude live
69 69
70 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
70 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
71 71
72 72 - **Événements en base** : 277 (dont **1 actifs**)
73 73 - **GPS** : 0/1 actifs (0 %)
@@ -78,8 +78,8 @@ Complétude mesurée sur les **1 événements actifs** de la source ; exemples t
78 78 - **Artistes** : 0/1 actifs (0 %)
79 79 - **Image** : 1/1 actifs (100 %)
80 80 - **Salle (venue)** : 0/1 actifs (0 %)
81 −- **Dernier sync** : 2026-08-21 20:50 — fetched 293, +0 ajoutés, ~32 mis à jour, -0 retirés
82 −- **Syncs enregistrés** (sync_log) : 102
81 +- **Dernier sync** : 2026-08-22 22:23 — fetched 293, +0 ajoutés, ~32 mis à jour, -0 retirés
82 +- **Syncs enregistrés** (sync_log) : 123
83 83
84 84 ## Erreurs & dépannage
85 85
modified docs/connecteurs/lavalweb.md +16 −16
@@ -1,6 +1,6 @@
1 1 # Ville de Laval — calendrier vivant laval.ca (`lavalweb`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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/lavalweb.py`
6 6
@@ -41,12 +41,12 @@
41 41
42 42 ## Champs récupérés → schéma
43 43
44 −Complétude mesurée sur les **462 événements actifs** de la source ; exemples tirés d'un événement réel (`lavalweb:halloween-exposition-de-plantes-carnivores-et-dautres-etrangetes`).
44 +Complétude mesurée sur les **443 événements actifs** de la source ; exemples tirés d'un événement réel (`lavalweb:halloween-exposition-de-plantes-carnivores-et-dautres-etrangetes`).
45 45
46 46 | Champ (`events.*`) | Description | Complétude | Exemple réel |
47 47 |---|---|---|---|
48 48 | `title` — Titre | titre de l'événement | 100 % | Halloween : exposition de plantes carnivores et d’autres étrangetés |
49 −| `description` — Description | texte descriptif (source ou fiche détail) | 48 % | ∅ |
49 +| `description` — Description | texte descriptif (source ou fiche détail) | 49 % | ∅ |
50 50 | `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.laval.ca/calendrier-activites/halloween-exposition-de-plantes-carnivores-et-dautres-… |
51 51 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["exposition-musee"] |
52 52 | `venue` — Salle (venue) | nom du lieu | 100 % | Centre de la Nature |
@@ -80,19 +80,19 @@ Complétude mesurée sur les **462 événements actifs** de la source ; exemples
80 80
81 81 ## Volumétrie & complétude live
82 82
83 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
84 −
85 −- **Événements en base** : 555 (dont **462 actifs**)
86 −- **GPS** : 348/462 actifs (75 %)
87 −- **Prix** : 0/462 actifs (0 %)
88 −- **Heure (start_time)** : 453/462 actifs (98 %)
89 −- **Heure de fin** : 0/462 actifs (0 %)
90 −- **Statut (annulé/reporté/complet)** : 0/462 actifs (0 %)
91 −- **Artistes** : 0/462 actifs (0 %)
92 −- **Image** : 0/462 actifs (0 %)
93 −- **Salle (venue)** : 462/462 actifs (100 %)
94 −- **Dernier sync** : 2026-08-21 20:53 — fetched 461, +0 ajoutés, ~0 mis à jour, -3 retirés
95 −- **Syncs enregistrés** (sync_log) : 60
83 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
84 +
85 +- **Événements en base** : 555 (dont **443 actifs**)
86 +- **GPS** : 331/443 actifs (75 %)
87 +- **Prix** : 0/443 actifs (0 %)
88 +- **Heure (start_time)** : 434/443 actifs (98 %)
89 +- **Heure de fin** : 0/443 actifs (0 %)
90 +- **Statut (annulé/reporté/complet)** : 0/443 actifs (0 %)
91 +- **Artistes** : 0/443 actifs (0 %)
92 +- **Image** : 0/443 actifs (0 %)
93 +- **Salle (venue)** : 443/443 actifs (100 %)
94 +- **Dernier sync** : 2026-08-22 22:26 — fetched 441, +0 ajoutés, ~0 mis à jour, -0 retirés
95 +- **Syncs enregistrés** (sync_log) : 81
96 96
97 97 ## Erreurs & dépannage
98 98
modified docs/connecteurs/lavitrine.md +25 −25
@@ -1,6 +1,6 @@
1 1 # La Vitrine culturelle (`lavitrine`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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
@@ -43,21 +43,21 @@
43 43
44 44 ## Champs récupérés → schéma
45 45
46 −Complétude mesurée sur les **5069 événements actifs** de la source ; exemples tirés d'un événement réel (`lavitrine:12490-2027-03-06`).
46 +Complétude mesurée sur les **5039 événements actifs** de la source ; exemples tirés d'un événement réel (`lavitrine:38808-2027-03-19`).
47 47
48 48 | Champ (`events.*`) | Description | Complétude | Exemple réel |
49 49 |---|---|---|---|
50 −| `title` — Titre | titre de l'événement | 100 % | Les Tireux d'Roches |
51 −| `description` — Description | texte descriptif (source ou fiche détail) | 99 % | Depuis 1998, Les Tireux d’Roches se sont affirmés comme des conteurs d’histoires et des artisans… |
52 −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.lavitrine.com/fr/evenement/les-tireux-droches/12490 |
50 +| `title` — Titre | titre de l'événement | 100 % | Guy Nantel - Bienveillant En rodage |
51 +| `description` — Description | texte descriptif (source ou fiche détail) | 99 % | Alors que l’actualité regorge de sujets explosifs, d’opinions tranchées et de contradictions bie… |
52 +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.lavitrine.com/fr/evenement/guy-nantel-bienveillant-en-rodage/38808 |
53 53 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] |
54 −| `venue` — Salle (venue) | nom du lieu | 100 % | Espace Mandeville |
54 +| `venue` — Salle (venue) | nom du lieu | 100 % | Théâtre Le Patriote |
55 55 | `address` — Adresse | adresse civique | 0 % | ∅ |
56 −| `city` — Ville | municipalité | 100 % | Drummondville |
57 −| `region` — Région | région administrative | 100 % | Centre-du-Québec |
58 −| `lat` — GPS (lat/lng) | coordonnées géographiques | 69 % | 45.883252, -72.489597 |
59 −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2027-03-06 |
60 −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2027-03-06 |
56 +| `city` — Ville | municipalité | 100 % | Sainte-Agathe-des-Monts |
57 +| `region` — Région | région administrative | 100 % | Laurentides |
58 +| `lat` — GPS (lat/lng) | coordonnées géographiques | 69 % | 46.0308044, -74.284975 |
59 +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2027-03-19 |
60 +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2027-03-19 |
61 61 | `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 20:00 |
62 62 | `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ |
63 63 | `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ |
@@ -66,7 +66,7 @@ Complétude mesurée sur les **5069 événements actifs** de la source ; exemple
66 66 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
67 67 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
68 68 | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ |
69 −| `image` — Image | visuel (og:image ou média source) | 100 % | https://lvc-medias.lavitrine.com/83ac1924-a8fe-5cb3-9778-a11e5cc3757c.jpg |
69 +| `image` — Image | visuel (og:image ou média source) | 100 % | https://lvc-medias.lavitrine.com/adfa7a36-cd01-5248-b4bf-ffada84d38e9.png |
70 70 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
71 71
72 72 ## Fréquence & budgets
@@ -81,19 +81,19 @@ Complétude mesurée sur les **5069 événements actifs** de la source ; exemple
81 81
82 82 ## Volumétrie & complétude live
83 83
84 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
85 −
86 −- **Événements en base** : 5172 (dont **5069 actifs**)
87 −- **GPS** : 3496/5069 actifs (69 %)
88 −- **Prix** : 0/5069 actifs (0 %)
89 −- **Heure (start_time)** : 5069/5069 actifs (100 %)
90 −- **Heure de fin** : 0/5069 actifs (0 %)
91 −- **Statut (annulé/reporté/complet)** : 0/5069 actifs (0 %)
92 −- **Artistes** : 0/5069 actifs (0 %)
93 −- **Image** : 5069/5069 actifs (100 %)
94 −- **Salle (venue)** : 5067/5069 actifs (100 %)
95 −- **Dernier sync** : 2026-08-21 20:53 — fetched 5120, +0 ajoutés, ~0 mis à jour, -0 retirés
96 −- **Syncs enregistrés** (sync_log) : 93
84 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
85 +
86 +- **Événements en base** : 5173 (dont **5039 actifs**)
87 +- **GPS** : 3473/5039 actifs (69 %)
88 +- **Prix** : 0/5039 actifs (0 %)
89 +- **Heure (start_time)** : 5039/5039 actifs (100 %)
90 +- **Heure de fin** : 0/5039 actifs (0 %)
91 +- **Statut (annulé/reporté/complet)** : 0/5039 actifs (0 %)
92 +- **Artistes** : 0/5039 actifs (0 %)
93 +- **Image** : 5039/5039 actifs (100 %)
94 +- **Salle (venue)** : 5037/5039 actifs (100 %)
95 +- **Dernier sync** : 2026-08-22 22:26 — fetched 5120, +0 ajoutés, ~0 mis à jour, -0 retirés
96 +- **Syncs enregistrés** (sync_log) : 114
97 97
98 98 ## Erreurs & dépannage
99 99
modified docs/connecteurs/lepointdevente.md +20 −20
@@ -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-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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,12 +44,12 @@
44 44
45 45 ## Champs récupérés → schéma
46 46
47 −Complétude mesurée sur les **1789 événements actifs** de la source ; exemples tirés d'un événement réel (`lepointdevente:7gw260926001`).
47 +Complétude mesurée sur les **1790 é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 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… |
52 +| `description` — Description | texte descriptif (source ou fiche détail) | 87 % | Sam Vigneault en rodage– HumoristeSamedi 26 septembre 2026 à la Chapelle du LacOriginaire de Ple… |
53 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 55 | `venue` — Salle (venue) | nom du lieu | 99 % | Chapelle du Lac |
@@ -59,12 +59,12 @@ Complétude mesurée sur les **1789 événements actifs** de la source ; exemple
59 59 | `lat` — GPS (lat/lng) | coordonnées géographiques | 30 % | 46.8903229, -71.6121222 |
60 60 | `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-09-26 |
61 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 |
62 +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 93 % | 20:00 |
63 63 | `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ |
64 64 | `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ |
65 −| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 93 % | 0 |
66 −| `price_min` — Prix min | tarif minimal réel ($) | 91 % | 30.0 |
67 −| `price_label` — Libellé prix | étiquette tarifaire affichable | 93 % | Table basse et chaise 30 $ · Table-bar et tabouret avec dossier 30 $ · Table-bistro et tabouret … |
65 +| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 92 % | 0 |
66 +| `price_min` — Prix min | tarif minimal réel ($) | 90 % | 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 68 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 1 % | ["Sam Vigneault"] |
69 69 | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ |
70 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 |
@@ -82,19 +82,19 @@ Complétude mesurée sur les **1789 événements actifs** de la source ; exemple
82 82
83 83 ## Volumétrie & complétude live
84 84
85 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
86 −
87 −- **Événements en base** : 4396 (dont **1789 actifs**)
88 −- **GPS** : 539/1789 actifs (30 %)
89 −- **Prix** : 1660/1789 actifs (93 %)
90 −- **Heure (start_time)** : 1675/1789 actifs (94 %)
91 −- **Heure de fin** : 0/1789 actifs (0 %)
92 −- **Statut (annulé/reporté/complet)** : 0/1789 actifs (0 %)
93 −- **Artistes** : 15/1789 actifs (1 %)
94 −- **Image** : 1789/1789 actifs (100 %)
95 −- **Salle (venue)** : 1780/1789 actifs (99 %)
96 −- **Dernier sync** : 2026-08-21 20:54 — fetched 1786, +1 ajoutés, ~4 mis à jour, -0 retirés
97 −- **Syncs enregistrés** (sync_log) : 103
85 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
86 +
87 +- **Événements en base** : 4446 (dont **1790 actifs**)
88 +- **GPS** : 533/1790 actifs (30 %)
89 +- **Prix** : 1645/1790 actifs (92 %)
90 +- **Heure (start_time)** : 1673/1790 actifs (93 %)
91 +- **Heure de fin** : 0/1790 actifs (0 %)
92 +- **Statut (annulé/reporté/complet)** : 0/1790 actifs (0 %)
93 +- **Artistes** : 16/1790 actifs (1 %)
94 +- **Image** : 1790/1790 actifs (100 %)
95 +- **Salle (venue)** : 1781/1790 actifs (99 %)
96 +- **Dernier sync** : 2026-08-22 22:27 — fetched 1745, +1 ajoutés, ~5 mis à jour, -21 retirés
97 +- **Syncs enregistrés** (sync_log) : 124
98 98
99 99 ## Erreurs & dépannage
100 100
modified docs/connecteurs/levis.md +1 −1
@@ -1,6 +1,6 @@
1 1 # Ville de Lévis — Calendrier (`levis`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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
modified docs/connecteurs/lhjmq.md +25 −25
@@ -1,6 +1,6 @@
1 1 # LHJMQ — matchs des équipes québécoises (`lhjmq`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
4 4
5 5 **Statut : actif** · Type : `sport` · Connecteur : `sortika/connectors/lhjmq.py`
6 6
@@ -44,22 +44,22 @@
44 44
45 45 ## Champs récupérés → schéma
46 46
47 −Complétude mesurée sur les **421 événements actifs** de la source ; exemples tirés d'un événement réel (`lhjmq:32601`).
47 +Complétude mesurée sur les **417 événements actifs** de la source ; exemples tirés d'un événement réel (`lhjmq:32606`).
48 48
49 49 | Champ (`events.*`) | Description | Complétude | Exemple réel |
50 50 |---|---|---|---|
51 −| `title` — Titre | titre de l'événement | 100 % | LHJMQ : Voltigeurs (Drummondville) c. Cataractes (Shawinigan) |
52 −| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | Match de la Ligue de hockey junior Maritimes Québec (LHJMQ) — Voltigeurs (Drummondville) en visi… |
53 −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://theqmjhl.ca/gamecentre/32601 |
51 +| `title` — Titre | titre de l'événement | 100 % | LHJMQ : Cataractes (Shawinigan) c. Voltigeurs (Drummondville) |
52 +| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | Match de la Ligue de hockey junior Maritimes Québec (LHJMQ) — Cataractes (Shawinigan) en visite … |
53 +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://theqmjhl.ca/gamecentre/32606 |
54 54 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["sport"] |
55 −| `venue` — Salle (venue) | nom du lieu | 100 % | Aréna de Grand-Mère |
55 +| `venue` — Salle (venue) | nom du lieu | 100 % | Centre sportif Girardin - Drummondville (QC) |
56 56 | `address` — Adresse | adresse civique | 0 % | ∅ |
57 −| `city` — Ville | municipalité | 100 % | Shawinigan |
58 −| `region` — Région | région administrative | 100 % | Mauricie |
59 −| `lat` — GPS (lat/lng) | coordonnées géographiques | 99 % | 46.6119958, -72.6893595 |
60 −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-21 |
61 −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-21 |
62 −| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 15:00 |
57 +| `city` — Ville | municipalité | 100 % | Drummondville |
58 +| `region` — Région | région administrative | 100 % | Centre-du-Québec |
59 +| `lat` — GPS (lat/lng) | coordonnées géographiques | 99 % | 45.8744982, -72.5000621 |
60 +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-22 |
61 +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-22 |
62 +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 14:00 |
63 63 | `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ |
64 64 | `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ |
65 65 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ |
@@ -77,19 +77,19 @@ Complétude mesurée sur les **421 événements actifs** de la source ; exemples
77 77
78 78 ## Volumétrie & complétude live
79 79
80 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
81 −
82 −- **Événements en base** : 423 (dont **421 actifs**)
83 −- **GPS** : 415/421 actifs (99 %)
84 −- **Prix** : 0/421 actifs (0 %)
85 −- **Heure (start_time)** : 421/421 actifs (100 %)
86 −- **Heure de fin** : 0/421 actifs (0 %)
87 −- **Statut (annulé/reporté/complet)** : 0/421 actifs (0 %)
88 −- **Artistes** : 0/421 actifs (0 %)
89 −- **Image** : 0/421 actifs (0 %)
90 −- **Salle (venue)** : 421/421 actifs (100 %)
91 −- **Dernier sync** : 2026-08-21 20:54 — fetched 423, +0 ajoutés, ~0 mis à jour, -0 retirés
92 −- **Syncs enregistrés** (sync_log) : 60
80 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
81 +
82 +- **Événements en base** : 423 (dont **417 actifs**)
83 +- **GPS** : 411/417 actifs (99 %)
84 +- **Prix** : 0/417 actifs (0 %)
85 +- **Heure (start_time)** : 417/417 actifs (100 %)
86 +- **Heure de fin** : 0/417 actifs (0 %)
87 +- **Statut (annulé/reporté/complet)** : 0/417 actifs (0 %)
88 +- **Artistes** : 0/417 actifs (0 %)
89 +- **Image** : 0/417 actifs (0 %)
90 +- **Salle (venue)** : 417/417 actifs (100 %)
91 +- **Dernier sync** : 2026-08-22 22:27 — fetched 423, +0 ajoutés, ~0 mis à jour, -0 retirés
92 +- **Syncs enregistrés** (sync_log) : 81
93 93
94 94 ## Erreurs & dépannage
95 95
modified docs/connecteurs/longueuil.md +4 −4
@@ -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-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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
@@ -81,7 +81,7 @@ Complétude mesurée sur les **4 événements actifs** de la source ; exemples t
81 81
82 82 ## Volumétrie & complétude live
83 83
84 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
84 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
85 85
86 86 - **Événements en base** : 9 (dont **4 actifs**)
87 87 - **GPS** : 3/4 actifs (75 %)
@@ -92,8 +92,8 @@ Complétude mesurée sur les **4 événements actifs** de la source ; exemples t
92 92 - **Artistes** : 0/4 actifs (0 %)
93 93 - **Image** : 4/4 actifs (100 %)
94 94 - **Salle (venue)** : 0/4 actifs (0 %)
95 −- **Dernier sync** : 2026-08-21 20:54 — fetched 9, +0 ajoutés, ~0 mis à jour, -0 retirés
96 −- **Syncs enregistrés** (sync_log) : 80
95 +- **Dernier sync** : 2026-08-22 22:27 — fetched 9, +0 ajoutés, ~0 mis à jour, -0 retirés
96 +- **Syncs enregistrés** (sync_log) : 101
97 97
98 98 ## Erreurs & dépannage
99 99
modified docs/connecteurs/mauricie.md +1 −1
@@ -1,6 +1,6 @@
1 1 # Tourisme Mauricie — événements (ATR) (`mauricie`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
4 4
5 5 **Statut : abandonnee** · Type : `tourisme-regional` · Connecteur : *aucun (source sans connecteur runtime)*
6 6
modified docs/connecteurs/monteregie.md +8 −4
@@ -1,6 +1,6 @@
1 1 # Tourisme Montérégie — événements (ATR) (`monteregie`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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/monteregie.py`
6 6
@@ -81,7 +81,7 @@ Complétude mesurée sur les **28 événements actifs** de la source ; exemples
81 81
82 82 ## Volumétrie & complétude live
83 83
84 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
84 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
85 85
86 86 - **Événements en base** : 78 (dont **28 actifs**)
87 87 - **GPS** : 28/28 actifs (100 %)
@@ -92,8 +92,8 @@ Complétude mesurée sur les **28 événements actifs** de la source ; exemples
92 92 - **Artistes** : 0/28 actifs (0 %)
93 93 - **Image** : 27/28 actifs (96 %)
94 94 - **Salle (venue)** : 0/28 actifs (0 %)
95 −- **Dernier sync** : 2026-08-21 21:11 — fetched 78, +0 ajoutés, ~0 mis à jour, -0 retirés
96 −- **Syncs enregistrés** (sync_log) : 7
95 +- **Dernier sync** : 2026-08-22 22:27 — fetched 78, +0 ajoutés, ~0 mis à jour, -0 retirés
96 +- **Syncs enregistrés** (sync_log) : 28
97 97
98 98 ## Erreurs & dépannage
99 99
@@ -110,3 +110,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
110 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.
111 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 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 ».
113 +
114 +Commits touchant `sortika/connectors/monteregie.py` :
115 +
116 +- `5973906` 2026-08-21 Phase 4 — 7 nouveaux connecteurs : régions manquantes (Montérégie, Centre-du-Québec, Chaudière-Appalaches, Gaspésie via Scrapfly) + billetteries QC (TicketAcces, Réseau Ovation, Tuxedo via acteur Apify ka-tuxedo)
modified docs/connecteurs/montreal.md +15 −14
@@ -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-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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,7 +37,7 @@
37 37
38 38 ## Champs récupérés → schéma
39 39
40 −Complétude mesurée sur les **3567 événements actifs** de la source ; exemples tirés d'un événement réel (`montreal:schulichbon-pasteur-nelson-lee-denise-djokic-et-kyoko-hashimoto-118821`).
40 +Complétude mesurée sur les **3522 événements actifs** de la source ; exemples tirés d'un événement réel (`montreal:schulichbon-pasteur-nelson-lee-denise-djokic-et-kyoko-hashimoto-118821`).
41 41
42 42 | Champ (`events.*`) | Description | Complétude | Exemple réel |
43 43 |---|---|---|---|
@@ -75,19 +75,19 @@ Complétude mesurée sur les **3567 événements actifs** de la source ; exemple
75 75
76 76 ## Volumétrie & complétude live
77 77
78 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
78 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
79 79
80 −- **Événements en base** : 6205 (dont **3567 actifs**)
81 −- **GPS** : 3531/3567 actifs (99 %)
82 −- **Prix** : 3567/3567 actifs (100 %)
83 −- **Heure (start_time)** : 3548/3567 actifs (99 %)
84 −- **Heure de fin** : 3548/3567 actifs (99 %)
85 −- **Statut (annulé/reporté/complet)** : 0/3567 actifs (0 %)
86 −- **Artistes** : 0/3567 actifs (0 %)
87 −- **Image** : 3567/3567 actifs (100 %)
88 −- **Salle (venue)** : 155/3567 actifs (4 %)
89 −- **Dernier sync** : 2026-08-21 20:55 — fetched 5855, +36 ajoutés, ~6 mis à jour, -0 retirés
90 −- **Syncs enregistrés** (sync_log) : 103
80 +- **Événements en base** : 6207 (dont **3522 actifs**)
81 +- **GPS** : 3486/3522 actifs (99 %)
82 +- **Prix** : 3522/3522 actifs (100 %)
83 +- **Heure (start_time)** : 3503/3522 actifs (99 %)
84 +- **Heure de fin** : 3503/3522 actifs (99 %)
85 +- **Statut (annulé/reporté/complet)** : 0/3522 actifs (0 %)
86 +- **Artistes** : 0/3522 actifs (0 %)
87 +- **Image** : 3522/3522 actifs (100 %)
88 +- **Salle (venue)** : 154/3522 actifs (4 %)
89 +- **Dernier sync** : 2026-08-22 22:27 — fetched 5757, +0 ajoutés, ~0 mis à jour, -0 retirés
90 +- **Syncs enregistrés** (sync_log) : 124
91 91
92 92 ## Erreurs & dépannage
93 93
@@ -95,6 +95,7 @@ Erreurs relevées dans `sync_log` :
95 95
96 96 | Erreur | Occurrences | Dernière fois |
97 97 |---|---|---|
98 +| 503 Server Error: Service Unavailable for url: https://donnees.montreal.ca/api/3/action/datastor… | 1 | 2026-08-22 02:31 |
98 99 | 403 Client Error: Forbidden for url: https://donnees.montreal.ca/api/3/action/datastore_search?r… | 1 | 2026-08-17 15:45 |
99 100
100 101 - Le WAF de donnees.montreal.ca renvoie **403** à tout User-Agent contenant « bot » — le UA `SortiKa/1.0 (+URL; courriel)` est volontairement sans ce mot. Un 403 ponctuel est en général transitoire (WAF) ; vérifier le UA avant tout.
modified docs/connecteurs/outaouais.md +4 −4
@@ -1,6 +1,6 @@
1 1 # Tourisme Outaouais — calendrier des événements (ATR) (`outaouais`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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/outaouais.py`
6 6
@@ -75,7 +75,7 @@ Complétude mesurée sur les **24 événements actifs** de la source ; exemples
75 75
76 76 ## Volumétrie & complétude live
77 77
78 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
78 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
79 79
80 80 - **Événements en base** : 162 (dont **24 actifs**)
81 81 - **GPS** : 0/24 actifs (0 %)
@@ -86,8 +86,8 @@ Complétude mesurée sur les **24 événements actifs** de la source ; exemples
86 86 - **Artistes** : 0/24 actifs (0 %)
87 87 - **Image** : 24/24 actifs (100 %)
88 88 - **Salle (venue)** : 0/24 actifs (0 %)
89 −- **Dernier sync** : 2026-08-21 20:55 — fetched 159, +0 ajoutés, ~0 mis à jour, -0 retirés
90 −- **Syncs enregistrés** (sync_log) : 61
89 +- **Dernier sync** : 2026-08-22 22:27 — fetched 159, +0 ajoutés, ~0 mis à jour, -0 retirés
90 +- **Syncs enregistrés** (sync_log) : 82
91 91
92 92 ## Erreurs & dépannage
93 93
modified docs/connecteurs/ovation.md +32 −28
@@ -1,6 +1,6 @@
1 1 # Réseau Ovation — billetterie québécoise multi-salles (`ovation`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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/ovation.py`
6 6
@@ -53,30 +53,30 @@
53 53
54 54 ## Champs récupérés → schéma
55 55
56 −Complétude mesurée sur les **212 événements actifs** de la source ; exemples tirés d'un événement réel (`ovation:00000O-1D068U`).
56 +Complétude mesurée sur les **311 événements actifs** de la source ; exemples tirés d'un événement réel (`ovation:00000P-0104ZJ`).
57 57
58 58 | Champ (`events.*`) | Description | Complétude | Exemple réel |
59 59 |---|---|---|---|
60 −| `title` — Titre | titre de l'événement | 100 % | Louis-Jean Cormier et l’Orchestre FILMharmonique |
61 −| `description` — Description | texte descriptif (source ou fiche détail) | 77 % | Depuis plus de vingt ans, Louis-Jean Cormier explore l’intime avec une sensibilité qui a marqué … |
62 −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://m.ovation.ca/00000O/fr/Event/?eventId=1D068U |
63 −| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] |
64 −| `venue` — Salle (venue) | nom du lieu | 100 % | Centre culturel de l’Université de Sherbrooke - Salle Maurice-O’Bready |
65 −| `address` — Adresse | adresse civique | 100 % | 2500, boul. de l’Université |
66 −| `city` — Ville | municipalité | 100 % | Sherbrooke |
67 −| `region` — Région | région administrative | 100 % | Estrie |
68 −| `lat` — GPS (lat/lng) | coordonnées géographiques | 100 % | 45.3767733, -71.940274 |
69 −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-09-10 |
70 −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-09-10 |
60 +| `title` — Titre | titre de l'événement | 100 % | Maxim Martin — Bon chien |
61 +| `description` — Description | texte descriptif (source ou fiche détail) | 75 % | Même après cinq one-man-show, un livre et une série sur son quotidien avec sa fille, Maxim Marti… |
62 +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://m.ovation.ca/00000P/fr/Event/?eventId=0104ZJ |
63 +| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["arts-scene"] |
64 +| `venue` — Salle (venue) | nom du lieu | 100 % | Maison des arts Desjardins Drummondville - Salle principale |
65 +| `address` — Adresse | adresse civique | 100 % | 175, rue Ringuet |
66 +| `city` — Ville | municipalité | 100 % | Drummondville |
67 +| `region` — Région | région administrative | 100 % | Centre-du-Québec |
68 +| `lat` — GPS (lat/lng) | coordonnées géographiques | 100 % | 45.8771456, -72.5006843 |
69 +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2027-01-08 |
70 +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2027-01-08 |
71 71 | `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 20:00 |
72 72 | `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ |
73 73 | `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ |
74 74 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ |
75 75 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ |
76 76 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
77 −| `artists` — Artistes | têtes d'affiche / lineup (JSON) | 94 % | ["Louis-Jean Cormier", "Orchestre FILMharmonique"] |
78 −| `organizer` — Organisateur | promoteur / organisme | 100 % | Centre culturel de l'Université de Sherbrooke |
79 −| `image` — Image | visuel (og:image ou média source) | 100 % | https://m.ovation.ca/product-catalog-images/thumbnails/ca5a09cd-236b-427a-aa44-f79eafcb130c.jpg |
77 +| `artists` — Artistes | têtes d'affiche / lineup (JSON) | 90 % | ["Maxim Martin"] |
78 +| `organizer` — Organisateur | promoteur / organisme | 100 % | Maison des Arts Desjardins Drummondville |
79 +| `image` — Image | visuel (og:image ou média source) | 100 % | https://m.ovation.ca/product-catalog-images/thumbnails/28ea40e8-efc8-4d42-a967-06a97817417a.jpg |
80 80 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
81 81
82 82 ## Fréquence & budgets
@@ -93,19 +93,19 @@ Complétude mesurée sur les **212 événements actifs** de la source ; exemples
93 93
94 94 ## Volumétrie & complétude live
95 95
96 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
96 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
97 97
98 −- **Événements en base** : 212 (dont **212 actifs**)
99 −- **GPS** : 212/212 actifs (100 %)
100 −- **Prix** : 0/212 actifs (0 %)
101 −- **Heure (start_time)** : 212/212 actifs (100 %)
102 −- **Heure de fin** : 0/212 actifs (0 %)
103 −- **Statut (annulé/reporté/complet)** : 0/212 actifs (0 %)
104 −- **Artistes** : 199/212 actifs (94 %)
105 −- **Image** : 211/212 actifs (100 %)
106 −- **Salle (venue)** : 212/212 actifs (100 %)
107 −- **Dernier sync** : 2026-08-21 21:46 — fetched 212, +212 ajoutés, ~0 mis à jour, -0 retirés
108 −- **Syncs enregistrés** (sync_log) : 1
98 +- **Événements en base** : 312 (dont **311 actifs**)
99 +- **GPS** : 311/311 actifs (100 %)
100 +- **Prix** : 0/311 actifs (0 %)
101 +- **Heure (start_time)** : 311/311 actifs (100 %)
102 +- **Heure de fin** : 0/311 actifs (0 %)
103 +- **Statut (annulé/reporté/complet)** : 0/311 actifs (0 %)
104 +- **Artistes** : 279/311 actifs (90 %)
105 +- **Image** : 310/311 actifs (100 %)
106 +- **Salle (venue)** : 311/311 actifs (100 %)
107 +- **Dernier sync** : 2026-08-22 22:27 — fetched 311, +0 ajoutés, ~0 mis à jour, -0 retirés
108 +- **Syncs enregistrés** (sync_log) : 22
109 109
110 110 ## Erreurs & dépannage
111 111
@@ -122,3 +122,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
122 122 - **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.
123 123 - **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).
124 124 - **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 ».
125 +
126 +Commits touchant `sortika/connectors/ovation.py` :
127 +
128 +- `5973906` 2026-08-21 Phase 4 — 7 nouveaux connecteurs : régions manquantes (Montérégie, Centre-du-Québec, Chaudière-Appalaches, Gaspésie via Scrapfly) + billetteries QC (TicketAcces, Réseau Ovation, Tuxedo via acteur Apify ka-tuxedo)
modified docs/connecteurs/placedesarts.md +15 −15
@@ -1,6 +1,6 @@
1 1 # Place des Arts — calendrier multi-salles (`placedesarts`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
4 4
5 5 **Statut : actif** · Type : `salle-de-spectacle` · Connecteur : `sortika/connectors/placedesarts.py`
6 6
@@ -44,7 +44,7 @@
44 44
45 45 ## Champs récupérés → schéma
46 46
47 −Complétude mesurée sur les **347 événements actifs** de la source ; exemples tirés d'un événement réel (`placedesarts:24-poses-portraits-2026-09-02-19:30`).
47 +Complétude mesurée sur les **346 événements actifs** de la source ; exemples tirés d'un événement réel (`placedesarts:24-poses-portraits-2026-09-02-19:30`).
48 48
49 49 | Champ (`events.*`) | Description | Complétude | Exemple réel |
50 50 |---|---|---|---|
@@ -82,19 +82,19 @@ Complétude mesurée sur les **347 événements actifs** de la source ; exemples
82 82
83 83 ## Volumétrie & complétude live
84 84
85 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
86 −
87 −- **Événements en base** : 356 (dont **347 actifs**)
88 −- **GPS** : 325/347 actifs (94 %)
89 −- **Prix** : 253/347 actifs (73 %)
90 −- **Heure (start_time)** : 346/347 actifs (100 %)
91 −- **Heure de fin** : 0/347 actifs (0 %)
92 −- **Statut (annulé/reporté/complet)** : 0/347 actifs (0 %)
93 −- **Artistes** : 0/347 actifs (0 %)
94 −- **Image** : 347/347 actifs (100 %)
95 −- **Salle (venue)** : 347/347 actifs (100 %)
96 −- **Dernier sync** : 2026-08-21 20:55 — fetched 354, +0 ajoutés, ~0 mis à jour, -0 retirés
97 −- **Syncs enregistrés** (sync_log) : 60
85 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
86 +
87 +- **Événements en base** : 356 (dont **346 actifs**)
88 +- **GPS** : 324/346 actifs (94 %)
89 +- **Prix** : 252/346 actifs (73 %)
90 +- **Heure (start_time)** : 345/346 actifs (100 %)
91 +- **Heure de fin** : 0/346 actifs (0 %)
92 +- **Statut (annulé/reporté/complet)** : 0/346 actifs (0 %)
93 +- **Artistes** : 0/346 actifs (0 %)
94 +- **Image** : 346/346 actifs (100 %)
95 +- **Salle (venue)** : 346/346 actifs (100 %)
96 +- **Dernier sync** : 2026-08-22 22:27 — fetched 354, +0 ajoutés, ~0 mis à jour, -0 retirés
97 +- **Syncs enregistrés** (sync_log) : 81
98 98
99 99 ## Erreurs & dépannage
100 100
modified docs/connecteurs/quebecanimee.md +15 −15
@@ -1,6 +1,6 @@
1 1 # Québec animée — Ville de Québec (`quebecanimee`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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/quebecanimee.py`
6 6
@@ -41,7 +41,7 @@
41 41
42 42 ## Champs récupérés → schéma
43 43
44 −Complétude mesurée sur les **121 événements actifs** de la source ; exemples tirés d'un événement réel (`quebecanimee:videoprojection-sur-la-bibliotheque-gabrielle-roy-avec-irina-gonzalez-2026-09-04`).
44 +Complétude mesurée sur les **102 événements actifs** de la source ; exemples tirés d'un événement réel (`quebecanimee:videoprojection-sur-la-bibliotheque-gabrielle-roy-avec-irina-gonzalez-2026-09-04`).
45 45
46 46 | Champ (`events.*`) | Description | Complétude | Exemple réel |
47 47 |---|---|---|---|
@@ -79,19 +79,19 @@ Complétude mesurée sur les **121 événements actifs** de la source ; exemples
79 79
80 80 ## Volumétrie & complétude live
81 81
82 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
83 −
84 −- **Événements en base** : 131 (dont **121 actifs**)
85 −- **GPS** : 121/121 actifs (100 %)
86 −- **Prix** : 121/121 actifs (100 %)
87 −- **Heure (start_time)** : 0/121 actifs (0 %)
88 −- **Heure de fin** : 0/121 actifs (0 %)
89 −- **Statut (annulé/reporté/complet)** : 0/121 actifs (0 %)
90 −- **Artistes** : 0/121 actifs (0 %)
91 −- **Image** : 121/121 actifs (100 %)
92 −- **Salle (venue)** : 121/121 actifs (100 %)
93 −- **Dernier sync** : 2026-08-21 20:55 — fetched 115, +0 ajoutés, ~0 mis à jour, -0 retirés
94 −- **Syncs enregistrés** (sync_log) : 60
82 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
83 +
84 +- **Événements en base** : 131 (dont **102 actifs**)
85 +- **GPS** : 102/102 actifs (100 %)
86 +- **Prix** : 102/102 actifs (100 %)
87 +- **Heure (start_time)** : 0/102 actifs (0 %)
88 +- **Heure de fin** : 0/102 actifs (0 %)
89 +- **Statut (annulé/reporté/complet)** : 0/102 actifs (0 %)
90 +- **Artistes** : 0/102 actifs (0 %)
91 +- **Image** : 102/102 actifs (100 %)
92 +- **Salle (venue)** : 102/102 actifs (100 %)
93 +- **Dernier sync** : 2026-08-22 22:27 — fetched 102, +0 ajoutés, ~0 mis à jour, -0 retirés
94 +- **Syncs enregistrés** (sync_log) : 81
95 95
96 96 ## Erreurs & dépannage
97 97
modified docs/connecteurs/repentigny.md +1 −1
@@ -1,6 +1,6 @@
1 1 # Ville de Repentigny — Événements (`repentigny`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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
modified docs/connecteurs/saguenay.md +1 −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-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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
modified docs/connecteurs/saguenaysorties.md +22 −22
@@ -1,6 +1,6 @@
1 1 # Sorties Saguenay — portail événementiel de la Ville (`saguenaysorties`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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/saguenaysorties.py`
6 6
@@ -41,21 +41,21 @@
41 41
42 42 ## Champs récupérés → schéma
43 43
44 −Complétude mesurée sur les **437 événements actifs** de la source ; exemples tirés d'un événement réel (`saguenaysorties:570260-2027-01-28-20:00`).
44 +Complétude mesurée sur les **438 événements actifs** de la source ; exemples tirés d'un événement réel (`saguenaysorties:331172-2026-11-14-20:00`).
45 45
46 46 | Champ (`events.*`) | Description | Complétude | Exemple réel |
47 47 |---|---|---|---|
48 −| `title` — Titre | titre de l'événement | 100 % | Confessions d'un enfant du siècle dernier |
49 −| `description` — Description | texte descriptif (source ou fiche détail) | 98 % | Cinq facettes d’un jeune homme en quête de lui-même. Entre l’école et la maison, un adolescent d… |
50 −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://sorties.saguenay.ca/festivals?id=570260 |
51 −| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["arts-scene"] |
48 +| `title` — Titre | titre de l'événement | 100 % | Pierre Lapointe - Chansons démodées pour ceux qui ont le cœur abîmé |
49 +| `description` — Description | texte descriptif (source ou fiche détail) | 98 % | Les chansons démodées pour ceux qui ont le coeur abîmé de Pierre Lapointe sur scène, un spectacl… |
50 +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://sorties.saguenay.ca/festivals?id=331172 |
51 +| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique"] |
52 52 | `venue` — Salle (venue) | nom du lieu | 86 % | Théâtre C |
53 53 | `address` — Adresse | adresse civique | 100 % | 534 Rue Jacques-Cartier E |
54 54 | `city` — Ville | municipalité | 86 % | Chicoutimi |
55 55 | `region` — Région | région administrative | 100 % | Saguenay–Lac-Saint-Jean |
56 56 | `lat` — GPS (lat/lng) | coordonnées géographiques | 80 % | 48.424452, -71.053231 |
57 −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2027-01-28 |
58 −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2027-01-28 |
57 +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-11-14 |
58 +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-11-14 |
59 59 | `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 20:00 |
60 60 | `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ |
61 61 | `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **437 événements actifs** de la source ; exemples
64 64 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
65 65 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
66 66 | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ |
67 −| `image` — Image | visuel (og:image ou média source) | 100 % | https://lvc-medias.lavitrine.com/54f46863-28df-579a-8bcf-9471f0383d1f.jpg |
67 +| `image` — Image | visuel (og:image ou média source) | 100 % | https://lvc-medias.lavitrine.com/343c0962-3759-5b36-9776-ba53a67bbcc6.jpg |
68 68 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
69 69
70 70 ## Fréquence & budgets
@@ -80,19 +80,19 @@ Complétude mesurée sur les **437 événements actifs** de la source ; exemples
80 80
81 81 ## Volumétrie & complétude live
82 82
83 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
84 −
85 −- **Événements en base** : 460 (dont **437 actifs**)
86 −- **GPS** : 350/437 actifs (80 %)
87 −- **Prix** : 0/437 actifs (0 %)
88 −- **Heure (start_time)** : 436/437 actifs (100 %)
89 −- **Heure de fin** : 0/437 actifs (0 %)
90 −- **Statut (annulé/reporté/complet)** : 0/437 actifs (0 %)
91 −- **Artistes** : 0/437 actifs (0 %)
92 −- **Image** : 437/437 actifs (100 %)
93 −- **Salle (venue)** : 376/437 actifs (86 %)
94 −- **Dernier sync** : 2026-08-21 20:55 — fetched 437, +0 ajoutés, ~0 mis à jour, -14 retirés
95 −- **Syncs enregistrés** (sync_log) : 60
83 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
84 +
85 +- **Événements en base** : 460 (dont **438 actifs**)
86 +- **GPS** : 351/438 actifs (80 %)
87 +- **Prix** : 0/438 actifs (0 %)
88 +- **Heure (start_time)** : 437/438 actifs (100 %)
89 +- **Heure de fin** : 0/438 actifs (0 %)
90 +- **Statut (annulé/reporté/complet)** : 0/438 actifs (0 %)
91 +- **Artistes** : 0/438 actifs (0 %)
92 +- **Image** : 438/438 actifs (100 %)
93 +- **Salle (venue)** : 377/438 actifs (86 %)
94 +- **Dernier sync** : 2026-08-22 22:28 — fetched 438, +0 ajoutés, ~0 mis à jour, -0 retirés
95 +- **Syncs enregistrés** (sync_log) : 81
96 96
97 97 ## Erreurs & dépannage
98 98
modified docs/connecteurs/sallesjsonld.md +31 −31
@@ -1,6 +1,6 @@
1 1 # Salles de spectacle — moteur générique JSON-LD Event (`sallesjsonld`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
4 4
5 5 **Statut : actif** · Type : `salle-de-spectacle` · Connecteur : `sortika/connectors/sallesjsonld.py`
6 6
@@ -43,31 +43,31 @@
43 43
44 44 ## Champs récupérés → schéma
45 45
46 −Complétude mesurée sur les **278 événements actifs** de la source ; exemples tirés d'un événement réel (`sallesjsonld:grandtheatre-arpin-lepine-tournee-lune-brune-2026-10-04-0000`).
46 +Complétude mesurée sur les **308 événements actifs** de la source ; exemples tirés d'un événement réel (`sallesjsonld:odyscene-pierre-verville-en-rodage-2026-08-27-2000`).
47 47
48 48 | Champ (`events.*`) | Description | Complétude | Exemple réel |
49 49 |---|---|---|---|
50 −| `title` — Titre | titre de l'événement | 100 % | Tournée Lune Brune |
51 −| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | PRÉVENTE EN COURS Pour être informé des prochaines préventes, inscrivez vous à l'infolettre!Arpi… |
52 −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://grandtheatre.qc.ca/programmation/arpin-lepine-tournee-lune-brune/ |
50 +| `title` — Titre | titre de l'événement | 100 % | Pierre Verville |
51 +| `description` — Description | texte descriptif (source ou fiche détail) | 100 % | En rodage Plongez dans l’univers unique de Pierre Verville avec Pour une dernière voix, un spect… |
52 +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://odyscene.com/programmation/pierre-verville-en-rodage/ |
53 53 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] |
54 −| `venue` — Salle (venue) | nom du lieu | 100 % | Grand Théatre de Québec |
55 −| `address` — Adresse | adresse civique | 100 % | 269 Boulevard René-Lévesque E |
56 −| `city` — Ville | municipalité | 100 % | Québec |
57 −| `region` — Région | région administrative | 100 % | Capitale-Nationale |
58 −| `lat` — GPS (lat/lng) | coordonnées géographiques | 100 % | 46.8062847, -71.2217335 |
59 −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-10-03 |
60 −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-10-04 |
54 +| `venue` — Salle (venue) | nom du lieu | 100 % | Théâtre Lionel-Groulx |
55 +| `address` — Adresse | adresse civique | 96 % | ∅ |
56 +| `city` — Ville | municipalité | 100 % | Sainte-Thérèse |
57 +| `region` — Région | région administrative | 100 % | Laurentides |
58 +| `lat` — GPS (lat/lng) | coordonnées géographiques | 100 % | 45.642259, -73.842239 |
59 +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-27 |
60 +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-28 |
61 61 | `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 20:00 |
62 −| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 47 % | ∅ |
63 −| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 1 % | cancelled |
62 +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 53 % | 22:00 |
63 +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 1 % | ∅ |
64 64 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 97 % | 0 |
65 −| `price_min` — Prix min | tarif minimal réel ($) | 97 % | 25.0 |
66 −| `price_label` — Libellé prix | étiquette tarifaire affichable | 97 % | 25.00 $ |
65 +| `price_min` — Prix min | tarif minimal réel ($) | 97 % | 37.0 |
66 +| `price_label` — Libellé prix | étiquette tarifaire affichable | 97 % | 37 $ à 42 $ |
67 67 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
68 68 | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ |
69 −| `image` — Image | visuel (og:image ou média source) | 3 % | ∅ |
70 −| `website` — Site web | site officiel de l'événement | 100 % | https://am.ticketmaster.com/grandtheatre/fr-ca/buy/ism/UzEyNjEyMDE%3D |
69 +| `image` — Image | visuel (og:image ou média source) | 13 % | https://odyscene.com/wp-content/uploads/tuxedo/pierre20verville-onsp-ctxfe7h44jyexi.png |
70 +| `website` — Site web | site officiel de l'événement | 100 % | https://odyscene.com/programmation/pierre-verville-en-rodage/ |
71 71
72 72 ## Fréquence & budgets
73 73
@@ -81,19 +81,19 @@ Complétude mesurée sur les **278 événements actifs** de la source ; exemples
81 81
82 82 ## Volumétrie & complétude live
83 83
84 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
85 −
86 −- **Événements en base** : 282 (dont **278 actifs**)
87 −- **GPS** : 278/278 actifs (100 %)
88 −- **Prix** : 270/278 actifs (97 %)
89 −- **Heure (start_time)** : 278/278 actifs (100 %)
90 −- **Heure de fin** : 131/278 actifs (47 %)
91 −- **Statut (annulé/reporté/complet)** : 2/278 actifs (1 %)
92 −- **Artistes** : 0/278 actifs (0 %)
93 −- **Image** : 8/278 actifs (3 %)
94 −- **Salle (venue)** : 278/278 actifs (100 %)
95 −- **Dernier sync** : 2026-08-21 20:55 — fetched 281, +0 ajoutés, ~0 mis à jour, -0 retirés
96 −- **Syncs enregistrés** (sync_log) : 61
84 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
85 +
86 +- **Événements en base** : 315 (dont **308 actifs**)
87 +- **GPS** : 308/308 actifs (100 %)
88 +- **Prix** : 300/308 actifs (97 %)
89 +- **Heure (start_time)** : 308/308 actifs (100 %)
90 +- **Heure de fin** : 164/308 actifs (53 %)
91 +- **Statut (annulé/reporté/complet)** : 2/308 actifs (1 %)
92 +- **Artistes** : 0/308 actifs (0 %)
93 +- **Image** : 41/308 actifs (13 %)
94 +- **Salle (venue)** : 308/308 actifs (100 %)
95 +- **Dernier sync** : 2026-08-22 22:59 — fetched 309, +33 ajoutés, ~0 mis à jour, -0 retirés
96 +- **Syncs enregistrés** (sync_log) : 83
97 97
98 98 ## Erreurs & dépannage
99 99
modified docs/connecteurs/sherbrooke.md +25 −25
@@ -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-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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,30 +36,30 @@
36 36
37 37 ## Champs récupérés → schéma
38 38
39 −Complétude mesurée sur les **114 événements actifs** de la source ; exemples tirés d'un événement réel (`sherbrooke:2818`).
39 +Complétude mesurée sur les **109 événements actifs** de la source ; exemples tirés d'un événement réel (`sherbrooke:1610`).
40 40
41 41 | Champ (`events.*`) | Description | Complétude | Exemple réel |
42 42 |---|---|---|---|
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 −| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] |
43 +| `title` — Titre | titre de l'événement | 100 % | Festival de Danse Contemporaine de Sherbrooke |
44 +| `description` — Description | texte descriptif (source ou fiche détail) | 98 % | Le Festival de Danse Contemporaine de Sherbrooke (FDCS) est un événement récurrent annuel, dans … |
45 +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://www.sherbrooke.ca/fr/culture-sports-et-loisirs/calendrier-des-activites/1610/festival-de… |
46 +| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["festival", "arts-scene"] |
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 % | 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) | 86 % | 09:00 |
55 −| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 92 % | 17:00 |
52 +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-20 |
53 +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-22 |
54 +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 85 % | 19:00 |
55 +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 92 % | 21:00 |
56 56 | `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ |
57 −| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 100 % | 0 |
57 +| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 100 % | 1 |
58 58 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ |
59 59 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
60 60 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
61 61 | `organizer` — Organisateur | promoteur / organisme | 100 % | Ville de Sherbrooke |
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… |
62 +| `image` — Image | visuel (og:image ou média source) | 99 % | https://www.sherbrooke.ca/Fichiers/3337a882-4a53-e611-80ea-00155d09650f/Entities/b34b6e54-1f7d-4… |
63 63 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
64 64
65 65 ## Fréquence & budgets
@@ -69,19 +69,19 @@ Complétude mesurée sur les **114 événements actifs** de la source ; exemples
69 69
70 70 ## Volumétrie & complétude live
71 71
72 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
73 −
74 −- **Événements en base** : 275 (dont **114 actifs**)
75 −- **GPS** : 0/114 actifs (0 %)
76 −- **Prix** : 114/114 actifs (100 %)
77 −- **Heure (start_time)** : 98/114 actifs (86 %)
78 −- **Heure de fin** : 105/114 actifs (92 %)
79 −- **Statut (annulé/reporté/complet)** : 0/114 actifs (0 %)
80 −- **Artistes** : 0/114 actifs (0 %)
81 −- **Image** : 113/114 actifs (99 %)
82 −- **Salle (venue)** : 0/114 actifs (0 %)
83 −- **Dernier sync** : 2026-08-21 20:55 — fetched 274, +0 ajoutés, ~0 mis à jour, -0 retirés
84 −- **Syncs enregistrés** (sync_log) : 95
72 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
73 +
74 +- **Événements en base** : 275 (dont **109 actifs**)
75 +- **GPS** : 0/109 actifs (0 %)
76 +- **Prix** : 109/109 actifs (100 %)
77 +- **Heure (start_time)** : 93/109 actifs (85 %)
78 +- **Heure de fin** : 100/109 actifs (92 %)
79 +- **Statut (annulé/reporté/complet)** : 0/109 actifs (0 %)
80 +- **Artistes** : 0/109 actifs (0 %)
81 +- **Image** : 108/109 actifs (99 %)
82 +- **Salle (venue)** : 0/109 actifs (0 %)
83 +- **Dernier sync** : 2026-08-22 22:28 — fetched 274, +0 ajoutés, ~0 mis à jour, -0 retirés
84 +- **Syncs enregistrés** (sync_log) : 116
85 85
86 86 ## Erreurs & dépannage
87 87
modified docs/connecteurs/sitq.md +16 −16
@@ -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-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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,12 +41,12 @@
41 41
42 42 ## Champs récupérés → schéma
43 43
44 −Complétude mesurée sur les **1020 événements actifs** de la source ; exemples tirés d'un événement réel (`sitq:EVENMTOV503QAX`).
44 +Complétude mesurée sur les **1014 événements actifs** de la source ; exemples tirés d'un événement réel (`sitq:EVENMTOV503QAX`).
45 45
46 46 | Champ (`events.*`) | Description | Complétude | Exemple réel |
47 47 |---|---|---|---|
48 48 | `title` — Titre | titre de l'événement | 100 % | Génération MusiquePlus – 86-96 |
49 −| `description` — Description | texte descriptif (source ou fiche détail) | 89 % | Renseignements : info@espacestdenis.com |
49 +| `description` — Description | texte descriptif (source ou fiche détail) | 90 % | Renseignements : info@espacestdenis.com |
50 50 | `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://espacestdenis.com/evenement/generation-musique-plus/ |
51 51 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["musique", "cinema", "patrimoine"] |
52 52 | `venue` — Salle (venue) | nom du lieu | 74 % | Studio-Cabaret - Théâtre St-Denis |
@@ -79,19 +79,19 @@ Complétude mesurée sur les **1020 événements actifs** de la source ; exemple
79 79
80 80 ## Volumétrie & complétude live
81 81
82 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
83 −
84 −- **Événements en base** : 1814 (dont **1020 actifs**)
85 −- **GPS** : 987/1020 actifs (97 %)
86 −- **Prix** : 0/1020 actifs (0 %)
87 −- **Heure (start_time)** : 0/1020 actifs (0 %)
88 −- **Heure de fin** : 0/1020 actifs (0 %)
89 −- **Statut (annulé/reporté/complet)** : 0/1020 actifs (0 %)
90 −- **Artistes** : 0/1020 actifs (0 %)
91 −- **Image** : 644/1020 actifs (63 %)
92 −- **Salle (venue)** : 751/1020 actifs (74 %)
93 −- **Dernier sync** : 2026-08-21 20:55 — fetched 1798, +0 ajoutés, ~0 mis à jour, -3 retirés
94 −- **Syncs enregistrés** (sync_log) : 104
82 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
83 +
84 +- **Événements en base** : 1814 (dont **1014 actifs**)
85 +- **GPS** : 981/1014 actifs (97 %)
86 +- **Prix** : 0/1014 actifs (0 %)
87 +- **Heure (start_time)** : 0/1014 actifs (0 %)
88 +- **Heure de fin** : 0/1014 actifs (0 %)
89 +- **Statut (annulé/reporté/complet)** : 0/1014 actifs (0 %)
90 +- **Artistes** : 0/1014 actifs (0 %)
91 +- **Image** : 639/1014 actifs (63 %)
92 +- **Salle (venue)** : 748/1014 actifs (74 %)
93 +- **Dernier sync** : 2026-08-22 22:28 — fetched 1798, +0 ajoutés, ~0 mis à jour, -0 retirés
94 +- **Syncs enregistrés** (sync_log) : 125
95 95
96 96 ## Erreurs & dépannage
97 97
modified docs/connecteurs/terrebonne.md +1 −1
@@ -1,6 +1,6 @@
1 1 # Ville de Terrebonne — Calendrier (`terrebonne`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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
modified docs/connecteurs/ticketacces.md +31 −27
@@ -1,6 +1,6 @@
1 1 # TicketAcces.net — billetterie régionale québécoise (`ticketacces`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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/ticketacces.py`
6 6
@@ -59,30 +59,30 @@
59 59
60 60 ## Champs récupérés → schéma
61 61
62 −Complétude mesurée sur les **1320 événements actifs** de la source ; exemples tirés d'un événement réel (`ticketacces:salledesjardins-304-2026-08-22-17:00`).
62 +Complétude mesurée sur les **1318 événements actifs** de la source ; exemples tirés d'un événement réel (`ticketacces:lachapellespectacles-11094-2026-09-20-15:00`).
63 63
64 64 | Champ (`events.*`) | Description | Complétude | Exemple réel |
65 65 |---|---|---|---|
66 −| `title` — Titre | titre de l'événement | 100 % | Unchained and The madDogs - hommage à Joe Cocker — sur le Parvis |
67 −| `description` — Description | texte descriptif (source ou fiche détail) | 6 % | Venez voir Unchained and The madDogs - hommage à Joe Cocker avec Marie-Ève Brosseau en première … |
68 −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://salledesjardins.ticketacces.net/fr/organisation/representations/index.cfm?EvenementID=30… |
66 +| `title` — Titre | titre de l'événement | 100 % | Jeanick Fournier — Authentique - En supplémentaire |
67 +| `description` — Description | texte descriptif (source ou fiche détail) | 20 % | Certaines voix sont si puissantes qu'elles vous coupent le souffle dès la première note. La chan… |
68 +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://lachapellespectacles.ticketacces.net/fr/organisation/representations/index.cfm?Evenement… |
69 69 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["arts-scene"] |
70 −| `venue` — Salle (venue) | nom du lieu | 100 % | Carrefour culturel Estacade - Salle Desjardins |
70 +| `venue` — Salle (venue) | nom du lieu | 100 % | La Chapelle |
71 71 | `address` — Adresse | adresse civique | 0 % | ∅ |
72 −| `city` — Ville | municipalité | 100 % | Gatineau |
73 −| `region` — Région | région administrative | 100 % | Outaouais |
74 −| `lat` — GPS (lat/lng) | coordonnées géographiques | 73 % | 45.6229867, -72.9455913 |
75 −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-22 |
76 −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-22 |
77 −| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 17:00 |
72 +| `city` — Ville | municipalité | 100 % | Québec |
73 +| `region` — Région | région administrative | 100 % | Capitale-Nationale |
74 +| `lat` — GPS (lat/lng) | coordonnées géographiques | 74 % | 45.5231154, -73.5771387 |
75 +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-09-20 |
76 +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-09-20 |
77 +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 15:00 |
78 78 | `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ |
79 79 | `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ |
80 80 | `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ |
81 −| `price_min` — Prix min | tarif minimal réel ($) | 6 % | 0.0 |
81 +| `price_min` — Prix min | tarif minimal réel ($) | 21 % | 47.0 |
82 82 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
83 83 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
84 −| `organizer` — Organisateur | promoteur / organisme | 100 % | Carrefour culturel Estacade - Salle Desjardins |
85 −| `image` — Image | visuel (og:image ou média source) | 100 % | https://www.ticketacces.net/organisations/salledesjardins/evenements/petites/affiche-joe-cocker.… |
84 +| `organizer` — Organisateur | promoteur / organisme | 100 % | La Chapelle |
85 +| `image` — Image | visuel (og:image ou média source) | 99 % | https://www.ticketacces.net/organisations/lachapellespectacles/evenements/petites/nouveau-site-w… |
86 86 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
87 87
88 88 ## Fréquence & budgets
@@ -98,19 +98,19 @@ Complétude mesurée sur les **1320 événements actifs** de la source ; exemple
98 98
99 99 ## Volumétrie & complétude live
100 100
101 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
101 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
102 102
103 −- **Événements en base** : 1320 (dont **1320 actifs**)
104 −- **GPS** : 959/1320 actifs (73 %)
105 −- **Prix** : 76/1320 actifs (6 %)
106 −- **Heure (start_time)** : 1320/1320 actifs (100 %)
107 −- **Heure de fin** : 0/1320 actifs (0 %)
108 −- **Statut (annulé/reporté/complet)** : 0/1320 actifs (0 %)
109 −- **Artistes** : 0/1320 actifs (0 %)
110 −- **Image** : 1319/1320 actifs (100 %)
111 −- **Salle (venue)** : 1320/1320 actifs (100 %)
112 −- **Dernier sync** : 2026-08-21 21:40 — fetched 1320, +1320 ajoutés, ~0 mis à jour, -0 retirés
113 −- **Syncs enregistrés** (sync_log) : 1
103 +- **Événements en base** : 1359 (dont **1318 actifs**)
104 +- **GPS** : 974/1318 actifs (74 %)
105 +- **Prix** : 283/1318 actifs (21 %)
106 +- **Heure (start_time)** : 1318/1318 actifs (100 %)
107 +- **Heure de fin** : 0/1318 actifs (0 %)
108 +- **Statut (annulé/reporté/complet)** : 0/1318 actifs (0 %)
109 +- **Artistes** : 0/1318 actifs (0 %)
110 +- **Image** : 1300/1318 actifs (99 %)
111 +- **Salle (venue)** : 1318/1318 actifs (100 %)
112 +- **Dernier sync** : 2026-08-22 22:28 — fetched 1318, +0 ajoutés, ~0 mis à jour, -0 retirés
113 +- **Syncs enregistrés** (sync_log) : 22
114 114
115 115 ## Erreurs & dépannage
116 116
@@ -127,3 +127,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
127 127 - **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.
128 128 - **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).
129 129 - **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 ».
130 +
131 +Commits touchant `sortika/connectors/ticketacces.py` :
132 +
133 +- `5973906` 2026-08-21 Phase 4 — 7 nouveaux connecteurs : régions manquantes (Montérégie, Centre-du-Québec, Chaudière-Appalaches, Gaspésie via Scrapfly) + billetteries QC (TicketAcces, Réseau Ovation, Tuxedo via acteur Apify ka-tuxedo)
modified docs/connecteurs/ticketmaster.md +16 −16
@@ -1,6 +1,6 @@
1 1 # Ticketmaster — Discovery API (Québec) (`ticketmaster`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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,7 +46,7 @@
46 46
47 47 ## Champs récupérés → schéma
48 48
49 −Complétude mesurée sur les **360 événements actifs** de la source ; exemples tirés d'un événement réel (`ticketmaster:310064CAFB66B462`).
49 +Complétude mesurée sur les **359 événements actifs** de la source ; exemples tirés d'un événement réel (`ticketmaster:310064CAFB66B462`).
50 50
51 51 | Champ (`events.*`) | Description | Complétude | Exemple réel |
52 52 |---|---|---|---|
@@ -69,7 +69,7 @@ Complétude mesurée sur les **360 événements actifs** de la source ; exemples
69 69 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
70 70 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
71 71 | `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ |
72 −| `image` — Image | visuel (og:image ou média source) | 90 % | https://mapsapi.tmol.io/maps/geometry/3/event/310064CAFB66B462/staticImage?type=png&systemId=HOS… |
72 +| `image` — Image | visuel (og:image ou média source) | 89 % | https://mapsapi.tmol.io/maps/geometry/3/event/310064CAFB66B462/staticImage?type=png&systemId=HOS… |
73 73 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
74 74
75 75 ## Fréquence & budgets
@@ -87,19 +87,19 @@ Complétude mesurée sur les **360 événements actifs** de la source ; exemples
87 87
88 88 ## Volumétrie & complétude live
89 89
90 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
91 −
92 −- **Événements en base** : 394 (dont **360 actifs**)
93 −- **GPS** : 360/360 actifs (100 %)
94 −- **Prix** : 0/360 actifs (0 %)
95 −- **Heure (start_time)** : 345/360 actifs (96 %)
96 −- **Heure de fin** : 0/360 actifs (0 %)
97 −- **Statut (annulé/reporté/complet)** : 15/360 actifs (4 %)
98 −- **Artistes** : 0/360 actifs (0 %)
99 −- **Image** : 323/360 actifs (90 %)
100 −- **Salle (venue)** : 360/360 actifs (100 %)
101 −- **Dernier sync** : 2026-08-21 20:56 — fetched 360, +0 ajoutés, ~0 mis à jour, -0 retirés
102 −- **Syncs enregistrés** (sync_log) : 84
90 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
91 +
92 +- **Événements en base** : 404 (dont **359 actifs**)
93 +- **GPS** : 359/359 actifs (100 %)
94 +- **Prix** : 0/359 actifs (0 %)
95 +- **Heure (start_time)** : 346/359 actifs (96 %)
96 +- **Heure de fin** : 0/359 actifs (0 %)
97 +- **Statut (annulé/reporté/complet)** : 15/359 actifs (4 %)
98 +- **Artistes** : 0/359 actifs (0 %)
99 +- **Image** : 318/359 actifs (89 %)
100 +- **Salle (venue)** : 359/359 actifs (100 %)
101 +- **Dernier sync** : 2026-08-22 22:29 — fetched 360, +0 ajoutés, ~0 mis à jour, -0 retirés
102 +- **Syncs enregistrés** (sync_log) : 105
103 103
104 104 ## Erreurs & dépannage
105 105
added docs/connecteurs/ticketpro.md +113 −0
@@ -0,0 +1,113 @@
1 +# Ticketpro — billetterie canadienne (tenants Québec) (`ticketpro`)
2 +
3 +> Fiche générée le 2026-08-22 23:01 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
4 +
5 +**Statut : actif** · Type : `billetterie` · Connecteur : `sortika/connectors/ticketpro.py`
6 +
7 +## Description
8 +
9 +- **Source** : [Ticketpro — billetterie canadienne (tenants Québec)](https://www.ticketpro.ca/)
10 +- **Couverture** : Théâtre St-Denis + Studio St-Denis (Montréal), Fun Nation (Salle Pierre-Mercure, Monument-National, Club Soda), ExpoCité (Québec), Salle André-Gagnon (La Pocatière), Palais des congrès de Montréal, La Belle Église de Chertsey, Théâtre Rialto, Huntingdon… ~200 spectacles / ~1 100 séances datées (vérifié 2026-08-22)
11 +- **Extraction** : API JSON publique de la nouvelle plateforme SPA par tenant (<org>.ticketpro.ca/api/v1/pages, aucun anti-bot ni rendu JS) : 1 fiche par spectacle avec titre, artiste, description, image, lieu complet (adresse, ville, code postal, lat/lng), toutes les dates horodatées, tags et drapeaux cancelled/soldout → 1 Event par (page, date à venir). 6 tenants QC dans data/ticketpro_tenants.json (tproqc agrège la province mais pas tprotsd), dédup inter-tenants par id de page. Lieux de restauration (soupers-spectacles St-Denis) et musée à créneaux exclus par config. startingPrice toujours 0 → aucun prix émis.
12 +
13 +## Accès
14 +
15 +- **Type** : billetterie
16 +- **Endpoint** : voir URL source (https://www.ticketpro.ca/)
17 +- **Auth** : Aucune côté source ; `SCRAPFLY_API_KEY` requis pour le backend Scrapfly
18 +- **Pagination** : par numéro de page
19 +- **Backend** : Scrapfly (anti-bot / rendu JS) via `base.get_scrapfly()`
20 +- **Throttle** : 1.0 s entre requêtes
21 +- **Accès légal** : Billetterie publique ; robots.txt n'interdit que /admin/ /gui/ /report/ (vérifié 2026-08-22) ; API du site officiel consommée telle quelle, GET throttlés 1 s, UA honnête, lien d'achat vers la fiche officielle /fr/pages/<id> du tenant
22 +
23 +<details><summary>En-tête documentaire du connecteur</summary>
24 +
25 +> connectors/ticketpro.py : Ticketpro — billetterie canadienne, tenants Québec
26 +> (Phase 5). Grande billetterie indépendante (Théâtre St-Denis, Fun Nation,
27 +> ExpoCité, Salle André-Gagnon, Palais des congrès, salles régionales…).
28 +> Source : nouvelle plateforme SPA par tenant <org>.ticketpro.ca dont
29 +> l'API JSON est PUBLIQUE et sans anti-bot (vérifié 2026-08-22,
30 +> robots.txt : seuls /admin/ /gui/ /report/ interdits) :
31 +> GET /api/v1/pages = 1 fiche par spectacle avec titre, artiste,
32 +> sous-titre, description, image, lieu COMPLET (adresse, ville,
33 +> province, code postal, lat/lng), TOUTES les dates horodatées
34 +> des représentations, tags (catégories) et drapeaux
35 +> cancelled/soldout. AUCUN rendu JS ni Scrapfly nécessaire.
36 +> Extraction: 1 GET /api/v1/pages par tenant (6 tenants QC configurés dans
37 +> data/ticketpro_tenants.json — tproqc agrège la province mais
38 +> PAS tprotsd, vérifié) → 1 Event par (page, date à venir),
39 +> dédup inter-tenants par id de page (ids globaux). Les lieux
40 +> de restauration (soupers-spectacles) et le musée à créneaux
41 +> sont exclus par config (exclure_lieux). Filtre province:
42 +> provinceState == QC. startingPrice est toujours 0 sur ces
43 +> tenants → aucun prix émis (jamais inventé).
44 +> Accès : billetterie publique, API du site officiel, GET throttlés
45 +> 1 s, identification honnête, lien d'achat vers la fiche
46 +> officielle /fr/pages/<id> du tenant.
47 +
48 +</details>
49 +
50 +## Champs récupérés → schéma
51 +
52 +Complétude mesurée sur les **361 événements actifs** de la source ; exemples tirés d'un événement réel (`ticketpro:1678581012-2026-09-25T2000`).
53 +
54 +| Champ (`events.*`) | Description | Complétude | Exemple réel |
55 +|---|---|---|---|
56 +| `title` — Titre | titre de l'événement | 100 % | Fun Nation présente Jérémy Demay: Naturel |
57 +| `description` — Description | texte descriptif (source ou fiche détail) | 98 % | Jérémy Demay, le plus québécois des humoristes français, résidant au Québec depuis plus de 17 an… |
58 +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://tproqc.ticketpro.ca/fr/pages/1678581012 |
59 +| `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["arts-scene"] |
60 +| `venue` — Salle (venue) | nom du lieu | 100 % | Salle Pierre-Mercure du centre Pierre-Péladeau |
61 +| `address` — Adresse | adresse civique | 99 % | 300, boulevard De Maisonneuve Est |
62 +| `city` — Ville | municipalité | 100 % | Montréal |
63 +| `region` — Région | région administrative | 100 % | Montréal |
64 +| `lat` — GPS (lat/lng) | coordonnées géographiques | 99 % | 45.5134852, -73.5622721 |
65 +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-09-25 |
66 +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-09-25 |
67 +| `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 100 % | 20:00 |
68 +| `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ |
69 +| `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ |
70 +| `is_free` — Gratuité (is_free) | 1 gratuit / 0 payant / NULL inconnu | 0 % | ∅ |
71 +| `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ |
72 +| `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
73 +| `artists` — Artistes | têtes d'affiche / lineup (JSON) | 78 % | ["Jérémy Demay"] |
74 +| `organizer` — Organisateur | promoteur / organisme | 0 % | ∅ |
75 +| `image` — Image | visuel (og:image ou média source) | 100 % | https://tproqc.ticketpro.ca/api/v1/resources/1678588362.jpeg?version=2 |
76 +| `website` — Site web | site officiel de l'événement | 0 % | ∅ |
77 +
78 +## Fréquence & budgets
79 +
80 +- **Cadence** : horaire (watcher PM2)
81 +- **Budget global** : géocodage Nominatim plafonné à `SORTIKA_GEOCODE_MAX` (défaut 120) requêtes réseau/cycle, toutes sources confondues (`sortika/geocode.py`, cache disque).
82 +
83 +## Volumétrie & complétude live
84 +
85 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
86 +
87 +- **Événements en base** : 361 (dont **361 actifs**)
88 +- **GPS** : 357/361 actifs (99 %)
89 +- **Prix** : 0/361 actifs (0 %)
90 +- **Heure (start_time)** : 361/361 actifs (100 %)
91 +- **Heure de fin** : 0/361 actifs (0 %)
92 +- **Statut (annulé/reporté/complet)** : 0/361 actifs (0 %)
93 +- **Artistes** : 280/361 actifs (78 %)
94 +- **Image** : 361/361 actifs (100 %)
95 +- **Salle (venue)** : 361/361 actifs (100 %)
96 +- **Dernier sync** : 2026-08-22 22:57 — fetched 364, +361 ajoutés, ~0 mis à jour, -0 retirés
97 +- **Syncs enregistrés** (sync_log) : 1
98 +
99 +## Erreurs & dépannage
100 +
101 +Aucune erreur dans `sync_log` pour cette source. ✅
102 +
103 +- Rejouer un sync isolé : `python3 run.py sync --source ticketpro` (ou via le watcher PM2) ; inspecter ensuite `sync_log` : `sqlite3 data/sortika.db "SELECT * FROM sync_log WHERE source='ticketpro' ORDER BY ts DESC LIMIT 5;"`
104 +
105 +## Licence / attribution
106 +
107 +- Billetterie publique ; robots.txt n'interdit que /admin/ /gui/ /report/ (vérifié 2026-08-22) ; API du site officiel consommée telle quelle, GET throttlés 1 s, UA honnête, lien d'achat vers la fiche officielle /fr/pages/<id> du tenant
108 +
109 +## Historique
110 +
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.
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 ».
modified docs/connecteurs/trois-rivieres.md +1 −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-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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
modified docs/connecteurs/tuxedobillet.md +28 −24
@@ -1,6 +1,6 @@
1 1 # Tuxedo Billet — billetterie québécoise multi-tenants (`tuxedobillet`)
2 2
3 −> Fiche générée le 2026-08-21 21:47 EDT par `scripts/gen_connector_docs.py` — ne pas éditer à la main, relancer le script.
3 +> Fiche générée le 2026-08-22 23:01 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/tuxedobillet.py`
6 6
@@ -50,21 +50,21 @@
50 50
51 51 ## Champs récupérés → schéma
52 52
53 −Complétude mesurée sur les **252 événements actifs** de la source ; exemples tirés d'un événement réel (`tuxedobillet:centredesarts-le-duplex-260822`).
53 +Complétude mesurée sur les **442 événements actifs** de la source ; exemples tirés d'un événement réel (`tuxedobillet:centrepierrepeladeau-le-comte-de-monte-cristo`).
54 54
55 55 | Champ (`events.*`) | Description | Complétude | Exemple réel |
56 56 |---|---|---|---|
57 −| `title` — Titre | titre de l'événement | 100 % | Le duplex — Comédie - Théâtre d'été |
57 +| `title` — Titre | titre de l'événement | 100 % | Le Comte de Monte-Cristo — Présenté par Les Agents Doubles Productions |
58 58 | `description` — Description | texte descriptif (source ou fiche détail) | 0 % | ∅ |
59 −| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://centredesarts.tuxedobillet.com/main/le-duplex-260822 |
59 +| `url` — URL | lien vers la fiche originale / billetterie | 100 % | https://centrepierrepeladeau.tuxedobillet.com/main/le-comte-de-monte-cristo |
60 60 | `categories` — Catégories | taxonomie canonique Sorti-Ka (JSON) | 100 % | ["autre"] |
61 −| `venue` — Salle (venue) | nom du lieu | 100 % | Centre des arts Juliette-Lassonde |
61 +| `venue` — Salle (venue) | nom du lieu | 100 % | Centre Pierre-Péladeau |
62 62 | `address` — Adresse | adresse civique | 0 % | ∅ |
63 −| `city` — Ville | municipalité | 100 % | Saint-Hyacinthe |
64 −| `region` — Région | région administrative | 100 % | Montérégie |
65 −| `lat` — GPS (lat/lng) | coordonnées géographiques | 90 % | 45.6229339, -72.9455416 |
66 −| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-22 |
67 −| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-22 |
63 +| `city` — Ville | municipalité | 100 % | Montréal |
64 +| `region` — Région | région administrative | 96 % | Montréal |
65 +| `lat` — GPS (lat/lng) | coordonnées géographiques | 44 % | 45.5134852, -73.5622721 |
66 +| `start_date` — Date début | date locale AAAA-MM-JJ | 100 % | 2026-08-23 |
67 +| `end_date` — Date fin | date locale AAAA-MM-JJ | 100 % | 2026-08-23 |
68 68 | `start_time` — Heure (start_time) | heure locale HH:MM (Québec) | 0 % | ∅ |
69 69 | `end_time` — Heure de fin (end_time) | heure locale HH:MM (Québec) | 0 % | ∅ |
70 70 | `status` — Statut | cancelled / postponed / soldout (NULL = prévu) | 0 % | ∅ |
@@ -72,8 +72,8 @@ Complétude mesurée sur les **252 événements actifs** de la source ; exemples
72 72 | `price_min` — Prix min | tarif minimal réel ($) | 0 % | ∅ |
73 73 | `price_label` — Libellé prix | étiquette tarifaire affichable | 0 % | ∅ |
74 74 | `artists` — Artistes | têtes d'affiche / lineup (JSON) | 0 % | [] |
75 −| `organizer` — Organisateur | promoteur / organisme | 100 % | Centre des arts Juliette-Lassonde |
76 −| `image` — Image | visuel (og:image ou média source) | 100 % | https://tuxedov1.blob.core.windows.net/tuxedo-centredesarts/show/Le%20duplex_-OpJkp-kUHJSuv8wru8… |
75 +| `organizer` — Organisateur | promoteur / organisme | 100 % | Centre Pierre-Péladeau |
76 +| `image` — Image | visuel (og:image ou média source) | 100 % | https://tuxedov1.blob.core.windows.net/tuxedo-centrepierrepeladeau/show/Le%20Comte%20de%20Monte-… |
77 77 | `website` — Site web | site officiel de l'événement | 0 % | ∅ |
78 78
79 79 ## Fréquence & budgets
@@ -90,19 +90,19 @@ Complétude mesurée sur les **252 événements actifs** de la source ; exemples
90 90
91 91 ## Volumétrie & complétude live
92 92
93 −*(mesuré le 2026-08-21 21:47 EDT dans `data/sortika.db`)*
93 +*(mesuré le 2026-08-22 23:01 EDT dans `data/sortika.db`)*
94 94
95 −- **Événements en base** : 252 (dont **252 actifs**)
96 −- **GPS** : 226/252 actifs (90 %)
97 −- **Prix** : 0/252 actifs (0 %)
98 −- **Heure (start_time)** : 0/252 actifs (0 %)
99 −- **Heure de fin** : 0/252 actifs (0 %)
100 −- **Statut (annulé/reporté/complet)** : 0/252 actifs (0 %)
101 −- **Artistes** : 0/252 actifs (0 %)
102 −- **Image** : 252/252 actifs (100 %)
103 −- **Salle (venue)** : 252/252 actifs (100 %)
104 −- **Dernier sync** : 2026-08-21 21:44 — fetched 252, +252 ajoutés, ~0 mis à jour, -0 retirés
105 −- **Syncs enregistrés** (sync_log) : 1
95 +- **Événements en base** : 580 (dont **442 actifs**)
96 +- **GPS** : 195/442 actifs (44 %)
97 +- **Prix** : 0/442 actifs (0 %)
98 +- **Heure (start_time)** : 0/442 actifs (0 %)
99 +- **Heure de fin** : 0/442 actifs (0 %)
100 +- **Statut (annulé/reporté/complet)** : 0/442 actifs (0 %)
101 +- **Artistes** : 0/442 actifs (0 %)
102 +- **Image** : 442/442 actifs (100 %)
103 +- **Salle (venue)** : 442/442 actifs (100 %)
104 +- **Dernier sync** : 2026-08-22 22:29 — fetched 442, +0 ajoutés, ~0 mis à jour, -0 retirés
105 +- **Syncs enregistrés** (sync_log) : 22
106 106
107 107 ## Erreurs & dépannage
108 108
@@ -119,3 +119,7 @@ Aucune erreur dans `sync_log` pour cette source. ✅
119 119 - **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.
120 120 - **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).
121 121 - **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 ».
122 +
123 +Commits touchant `sortika/connectors/tuxedobillet.py` :
124 +
125 +- `5973906` 2026-08-21 Phase 4 — 7 nouveaux connecteurs : régions manquantes (Montérégie, Centre-du-Québec, Chaudière-Appalaches, Gaspésie via Scrapfly) + billetteries QC (TicketAcces, Réseau Ovation, Tuxedo via acteur Apify ka-tuxedo)
added sortika/connectors/ticketpro.py +146 −0
@@ -0,0 +1,146 @@
1 +# -----------------------------------------------------------------------------
2 +# Sorti-Ka — Agrégateur de sorties & événements (province de Québec)
3 +# Auteur : Simon-Pierre Boucher — contact@spboucher.ai
4 +# connectors/ticketpro.py : Ticketpro — billetterie canadienne, tenants Québec
5 +# (Phase 5). Grande billetterie indépendante (Théâtre St-Denis, Fun Nation,
6 +# ExpoCité, Salle André-Gagnon, Palais des congrès, salles régionales…).
7 +# Source : nouvelle plateforme SPA par tenant <org>.ticketpro.ca dont
8 +# l'API JSON est PUBLIQUE et sans anti-bot (vérifié 2026-08-22,
9 +# robots.txt : seuls /admin/ /gui/ /report/ interdits) :
10 +# GET /api/v1/pages = 1 fiche par spectacle avec titre, artiste,
11 +# sous-titre, description, image, lieu COMPLET (adresse, ville,
12 +# province, code postal, lat/lng), TOUTES les dates horodatées
13 +# des représentations, tags (catégories) et drapeaux
14 +# cancelled/soldout. AUCUN rendu JS ni Scrapfly nécessaire.
15 +# Extraction: 1 GET /api/v1/pages par tenant (6 tenants QC configurés dans
16 +# data/ticketpro_tenants.json — tproqc agrège la province mais
17 +# PAS tprotsd, vérifié) → 1 Event par (page, date à venir),
18 +# dédup inter-tenants par id de page (ids globaux). Les lieux
19 +# de restauration (soupers-spectacles) et le musée à créneaux
20 +# sont exclus par config (exclure_lieux). Filtre province:
21 +# provinceState == QC. startingPrice est toujours 0 sur ces
22 +# tenants → aucun prix émis (jamais inventé).
23 +# Accès : billetterie publique, API du site officiel, GET throttlés
24 +# 1 s, identification honnête, lien d'achat vers la fiche
25 +# officielle /fr/pages/<id> du tenant.
26 +# -----------------------------------------------------------------------------
27 +from __future__ import annotations
28 +
29 +import json
30 +import re
31 +from datetime import date
32 +from pathlib import Path
33 +
34 +from ..normalize import clean_text, strip_accents
35 +from ..schema import Event
36 +from .base import BaseConnector
37 +
38 +CONFIG_PATH = Path(__file__).resolve().parents[2] / "data" / "ticketpro_tenants.json"
39 +
40 +_TAG_RE = re.compile(r"<[^>]+>")
41 +_BLOCK_RE = re.compile(r"<(style|script)[^>]*>.*?</\1>", re.S | re.I)
42 +# CSS inline hors balise (les fiches en contiennent parfois du résiduel)
43 +_CSS_RE = re.compile(r"(?:@media[^{]*|[\w\.\#\-]+\s*)\{[^}]*\}")
44 +_DATE_RE = re.compile(r"^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2})")
45 +
46 +
47 +def _strip_html(raw: str) -> str:
48 + """HTML de description → texte plat (les fiches sont en HTML riche)."""
49 + txt = _BLOCK_RE.sub(" ", raw or "")
50 + txt = _CSS_RE.sub(" ", _TAG_RE.sub(" ", txt))
51 + return clean_text(txt)
52 +
53 +
54 +def _lieu_key(name: str) -> str:
55 + return strip_accents(clean_text(name or "")).lower()
56 +
57 +
58 +class TicketproConnector(BaseConnector):
59 + source_id = "ticketpro"
60 + request_delay = 1.0
61 +
62 + def _load_config(self) -> dict:
63 + try:
64 + return json.loads(CONFIG_PATH.read_text(encoding="utf-8"))
65 + except Exception:
66 + return {"tenants": [], "exclure_lieux": []}
67 +
68 + def _events_from_page(self, tenant: str, page: dict,
69 + excluded: list[str]) -> list[Event]:
70 + title = clean_text(page.get("title") or "")
71 + dates = page.get("dates") or []
72 + loc = (page.get("locations") or [{}])[0] or {}
73 + if not title or not dates:
74 + return []
75 + if (loc.get("provinceState") or "QC").upper() != "QC":
76 + return [] # tenant QC mais salle hors province
77 + venue_key = _lieu_key(loc.get("name") or "")
78 + if any(x in venue_key for x in excluded):
79 + return [] # restauration / musée à créneaux
80 +
81 + page_id = page.get("id")
82 + url = f"https://{tenant}.ticketpro.ca/fr/pages/{page.get('slug') or page_id}"
83 + image = page.get("imageUrlBig") or page.get("imageUrlSmall") or ""
84 + if image and not image.startswith("http"):
85 + # « /v1/resources/… » → servi par l'API du tenant (vérifié 200)
86 + image = f"https://{tenant}.ticketpro.ca/api{image}"
87 + status = ("cancelled" if page.get("cancelled")
88 + else "soldout" if page.get("soldout") else "")
89 + artist = clean_text(page.get("artist") or "")
90 + raw_cats = [t.get("smallName") or t.get("name") or ""
91 + for t in page.get("tags") or []]
92 + description = _strip_html(page.get("description")
93 + or page.get("miniDescription") or "")
94 +
95 + today = date.today().isoformat()
96 + events: list[Event] = []
97 + for d in dates:
98 + m = _DATE_RE.match(str(d))
99 + if not m:
100 + continue
101 + day, hh, mm = m.group(1), m.group(2), m.group(3)
102 + if day < today: # l'API conserve les dates passées
103 + continue
104 + events.append(Event(
105 + source=self.source_id,
106 + external_id=f"{page_id}-{day}T{hh}{mm}",
107 + url=url,
108 + title=title,
109 + description=description,
110 + raw_categories=[c for c in raw_cats if c] or [title],
111 + venue=clean_text(loc.get("name") or ""),
112 + address=clean_text(loc.get("addressLine1") or ""),
113 + city=clean_text(loc.get("city") or ""),
114 + postal_code=clean_text(loc.get("postalCode") or ""),
115 + lat=loc.get("latitude"),
116 + lng=loc.get("longitude"),
117 + start_date=day,
118 + start_time=f"{hh}:{mm}",
119 + status=status,
120 + artists=[artist] if artist else [],
121 + image=image,
122 + ))
123 + return events
124 +
125 + def fetch(self) -> list[Event]:
126 + config = self._load_config()
127 + tenants = [t["domaine"] for t in config.get("tenants", [])]
128 + excluded = [_lieu_key(x) for x in config.get("exclure_lieux", [])]
129 + if not tenants:
130 + return []
131 +
132 + events: list[Event] = []
133 + seen_pages: set = set() # ids de page globaux inter-tenants
134 + for tenant in tenants:
135 + try:
136 + data = self.get_json(
137 + f"https://{tenant}.ticketpro.ca/api/v1/pages")
138 + except Exception as exc: # un tenant en panne ne bloque pas
139 + print(f"[sorti-ka] ticketpro : tenant {tenant} ignoré ({exc})")
140 + continue
141 + for page in data.get("pages") or []:
142 + if page.get("id") in seen_pages:
143 + continue
144 + seen_pages.add(page.get("id"))
145 + events += self._events_from_page(tenant, page, excluded)
146 + return events
147