SPB Git

spb/sorti-ka

Public

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

History of data Clear filter
page 1
  1. Sat, Aug 22, 2026 2

    1. Phase 5 (suite) — registre : 4 billetteries sondées et écartées avec preuves (Zeffy, Showpass, Weezevent, Accès culture)
      …
      - zeffy : sitemap 547 834 URLs /ticketing/ sans lastmod/date/géo — découverte impraticable
      - showpass : aucun filtre géo serveur + inventaire 0,3 % QC (échantillon 1 000 évts) — ROI nul
      - weezevent : sitemap slugs relatifs sans lieu, quasi tout France
      - accesculture : billetterie déléguée à La Vitrine (déjà couverte) — doublons > gain
      - docs/connecteurs régénérés (44 sources)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +48
    2. 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 · 3 files +37
  2. Fri, Aug 21, 2026 1

    1. 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)
      …
      - ATR : monteregie (WP REST cpt_event + JSON-LD fiche), centreduquebec (SSR),
        chaudiereappalaches (SSR paginé, JSON-LD Event complet), gaspesie (RÉACTIVÉE —
        WAF contourné via Scrapfly consigné et budgété)
      - Billetteries : ticketacces (calendrier agrégé, 47 orgs QC dont 14 en Abitibi,
        ~1 320 séances, Crawl-delay 120 honoré PAR HÔTE + TTL 6 h), ovation (26 orgs
        100 % QC, artistes/adresses/heures, Crawl-delay 30 honoré + TTL 20 h),
        tuxedobillet (RÉACTIVÉE — 29 tenants QC, SPA Firebase rendue par l'acteur
        Apify maison gorgeous_thistle/ka-tuxedo, code versionné dans apify/ka-tuxedo/)
      - Configs annuaires : data/ovation_orgs.json, data/tuxedo_tenants.json
      - Registre 39 sources, CONFORMITE.md (robots.txt lus, crawl-delays honorés),
        fiches docs régénérées, 10 nouveaux tests sur fixtures réelles (69 verts)
      - Couverture : +1 900 séances futures ; Abitibi +312, Gaspésie réamorcée,
        Centre-du-Québec première source
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 3 files +521 −402
  3. Wed, Aug 19, 2026 4

    1. Phase 3 — registre (34 sources), conformité et crédits
      …
      - data/sources.json : 9 nouvelles sources actives avec fiche d évaluation
        datée (accès constaté, volume mesuré, robots.txt lu, effort) + 5 écartements
        consignés avec raison (mauricie JS, laurentides/gaspesie WAF, tuxedo en
        panne, clubs pros doublons)
      - docs/CONFORMITE.md : tableau licences/robots.txt/crédits/fréquences de
        TOUTES les sources + données transversales (MAMH, OSM/ODbL, Nominatim)
      - frontend + seo.py : étiquettes SRC_LABELS des 9 nouvelles sources (+ 3
        anciennes manquantes) ; pied de page d attribution enrichi, dont
        « lieux : © contributeurs OpenStreetMap (ODbL) » exigé par l annuaire
      - docs/connecteurs : fiches régénérées (34 sources, INDEX)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +172 −3
    2. Phase 3 — 9 nouveaux connecteurs + déroulage des périodes SITQ (fiches d évaluation avant connexion)
      …
      - lavalweb : calendrier VIVANT laval.ca (SSR paginé, ~470 fiches — remplace le
        jeu Données Québec mort à la source, consigné Phase 2)
      - saguenaysorties : portail sorties.saguenay.ca (ajax/plus + ajax/details,
        445 séances horodatées — remplace le CSV mort de 2022)
      - lhjmq : API HockeyTech modulekit (matchs à domicile QC, 12 villes/10 régions)
      - placedesarts : fiches Craft (eventbannerdata/eventGTM + représentations) —
        une fiche PAR séance avec heure et PRIX RÉELS
      - sallesjsonld : moteur générique schema.org/Event configurable
        (data/salles_jsonld.json — amorce Grand Théâtre/Trident/Capitole ; heures
        UTC du Grand Théâtre converties en heure locale)
      - quebecanimee : activités gratuites Ville de Québec (attributs data-*)
      - lanaudiere : ATR via sitemap (Crawl-delay 2 s et Disallow /*? respectés)
      - outaouais : calendrier complet dans les props de l îlot Astro (1 GET)
      - bassaintlaurent : ATR SSR + GPS exact des fiches
      - sitq : PeriodeOuvertures[] déroulées en occurrences datées (cap 24,
        1re période = identifiant historique) — 1 599 → 1 803 fiches
      - tests : 46 → 59 verts (fixtures réelles pour chaque connecteur + annuaire)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +32
    3. docs: fiches connecteurs régénérées (Phase 2) + registre — laval morte-à-la-source
      …
      - data/sources.json : laval passe à « morte-a-la-source » avec décision
        consignée (jeu ouvert figé, EventDate max 2025-12-09, 41 runs verts sans
        aucun futur) ; le connecteur reste branché (archivage naturel + réveil
        automatique si la Ville republie) ; remplacement prévu en Phase 3
        (calendrier vivant laval.ca / Tourisme Laval).
      - Générateur : end_time et statut ajoutés aux champs documentés et aux
        métriques clés ; note ticketmaster mise à jour (repli scraping sain,
        TICKETMASTER_API_KEY à fournir pour prix/statuts/visuels HD) ; historique
        Phase 2 consigné.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +4 −3
    4. Phase 2 — noyau : archivage des passés, statut, end_time, quarantaine, séances, villes MAMH
      …
      - Règle d ARCHIVAGE temporel : un événement terminé passe active=0 à chaque
        cycle (jamais supprimé) ; un passé archivé n est plus réactivé par un sync
        « unchanged » (backfill immédiat : 3 745 passés actifs → 0).
      - Colonnes additives events.end_time (HH:MM), events.status
        (cancelled/postponed/soldout, NULL = prévu) et events.quarantine
        (raison, NULL = publiable) + migration auto à la connexion.
      - dedup_key inclut désormais l HEURE de début : même titre/ville/jour à des
        heures différentes = séances distinctes (661 groupes → 259 ; les 11 séances
        d un même parcours redeviennent visibles). Deux fiches sans heure fusionnent
        toujours ; une fiche avec heure ne fusionne qu à heure égale (règle consignée
        dans schema.py).
      - Quarantaine qualité : date passée aberrante (< 2000), début à plus de 2 ans,
        ville hors Québec — non publiée, comptée (/api/stats), réintégrable à chaque
        sync dès que la donnée redevient saine. L heure 00:00 est affichée « heure
        non confirmée » ; l image 404 n est pas vérifiée (coût réseau), le frontend
        retire les images cassées.
      - Alerte « source qui meurt en silence » : événements FUTURS par source à
        chaque cycle (data/future_counts.json) — alerte si 0 futur ou chute > 80 %
        (le cas Laval : 41 runs verts, max(date)=2025-12-09).
      - Géocodage par ADRESSE CIVIQUE prioritaire (Nominatim, même cache, 1 req/s) :
        Brossard 0,7 % → 94 % de GPS, Longueuil 0 % → 75 %.
      - Villes normalisées au Répertoire MAMH (data/villes_canon.json, généré de
        MUN.csv + ARR.csv) : « Montreal » 375, « Quebec » 166, 75 graphies, 804
        événements backfillés — facettes ville unifiées.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +1
  4. Tue, Aug 18, 2026 3

    1. Vague 3 : Ticketmaster SANS clé + Eventbrite + Longueuil + Cantons-de-l'Est
      …
      - ticketmaster : mode principal sans clé — scraping des pages découverte
        publiques (montreal, quebec-city, gatineau ; état Next.js cityEvents,
        20 év./page, date UTC→locale, salle géolocalisée, plafond 360/sync,
        Scrapfly ASP sans render_js en secours) ; repli automatique sur la
        Discovery API officielle dès que TICKETMASTER_API_KEY existe (mêmes ids,
        zéro doublon). 330 événements, 100 % GPS, 96 % heure.
      - eventbrite (nouveau) : pages découverte /d/<lieu>/all-events (7 villes QC,
        __SERVER_DATA__, 20 rés./page) + prix réels par fiche JSON-LD
        AggregateOffer (cache incrémental, 150 fiches/sync, re-visite 7 j).
        426 événements, 100 % GPS+heure, filtre region=QC strict.
      - longueuil (nouveau) : portail vivant longueuil.quebec/fr/evenements
        (cartes SSR <time datetime> + adresse par fiche via l état Nuxt) —
        remplace le jeu Données Québec périmé (2017).
      - cantonsdelest (nouveau) : calendrier officiel de l ATR Estrie
        (JSON-LD Event + GPS data-lat/lng, images Tourinsoft, cache incrémental).
      - tests : parse du mode scraping Ticketmaster (UTC→locale, dédup par id,
        annulés exclus, heure TBA nulle) ; 33 tests verts.
      - correctif commun : raw_decode tolère l espace avant le JSON-LD.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +38 −16
    2. Vague 2 d'enrichissement : heure précise, artistes, 3 nouveaux connecteurs
      …
      - Colonnes additives events.start_time (HH:MM locale QC) et events.artists
        (JSON) + migration auto à la connexion ; Event.finalize normalise l'heure
        (parse_time) et déduplique les artistes.
      - Heure captée partout où la source la publie : lepointdevente (cartes de
        liste « 17 août 2026, 20h00 » + fiches), evenko (show_time epoch →
        America/Montreal, respect hide_show_time), Laval et Sherbrooke (flux UTC →
        date+heure locales, minuit local = toute la journée), Montréal (JSON-LD des
        fiches pendant l'enrichissement og:image, cache rétro-compatible), atuvu.
      - Artistes : headliners evenko (explicite), lineup Bandsintown, attractions
        Ticketmaster, et extraction conservatrice des titres lpdv (patrons sûrs
        « Artiste - Salle » / « X en concert/rodage », liste de mots interdits).
      - Nouveau connecteur Ville de Brossard (API REST WordPress city-event +
        bannière/JSON-LD des fiches, cache incrémental) — 251 événements.
      - Nouveau connecteur Bandsintown (dates QC des artistes connus de la base,
        rotation 100 artistes/sync, app_id js_www.sorti-ka.com testé accepté) —
        108 concerts géolocalisés avec heure.
      - Nouveau connecteur Ticketmaster Discovery API, complet mais « prêt — clé
        requise » (TICKETMASTER_API_KEY absent de .env ; skip propre + .env.example).
      - Gatineau, Trois-Rivières, Lévis, Terrebonne : étudiées et documentées
        « abandonnée » dans sources.json (aucun flux exploitable, vérifié 2026-08-18).
      - Dédup à l'affichage : rang prix > GPS > image > description ; /api/stats
        expose « sources » (10 actives) pour le hub groupe-ka ; SSR : heure dans le
        JSON-LD (offset québécois) + performer ; frontend : heure sur les cartes et
        fiches, « À l'affiche », libellés des nouvelles sources.
      - Tests : 22 → 32 (parse_time, utc_to_local, artistes, migration, TM/BIT/
        Brossard sur structures réelles).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +88 −6
    3. Enrichissement des connecteurs + géocodage des salles
      …
      - geocode.py (nouveau) : géocodeur Nominatim des salles — cache disque
        data/geocode_cache.json, throttle 1,1 s, UA SortiKaBot identifié, plafond
        SORTIKA_GEOCODE_MAX=120 req/cycle, garde-fous bbox Québec + ville dans la
        display_name, repli sur segment de nom composé ; branché dans ingest.run()
      - lepointdevente : enrichissement incrémental par fiches /billets/<id>
        (cache, LPDV_DETAIL_MAX=150/sync, re-visite 7 j, throttle 0,8 s) —
        description og:description (boilerplate filtré), heure précise (cache),
        tarifs réels via /plugins/rates/<id> → price_min/price_label/is_free
      - sitq : contacts Tourinsoft (TelephonePrincipals/Courriels) → description
        « Renseignements : … » (le flux ne publie ni Descriptions* ni tarifs)
      - montreal : venue = emplacement (si vrai nom de lieu — aujourdhui la ville
        ny publie que le mode En salle/À lextérieur/En ligne) ou titre_adresse ;
        address complétée par adresse_secondaire
      - evenko : champ free sondé null sur 100 % des hits — détection gratuité
        par étiquettes explicites event_tag/promotional_tag en complément
      - sources.json : registre des champs extraits à jour
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +4 −4
  5. Mon, Aug 17, 2026 3

    1. gitignore : fichiers SQLite runtime (db-shm/db-wal) retirés du suivi
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 2 files
    2. État du nœud — MAJ README ; gitignore *.log (logs de backfill)
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 2 files
    3. Sorti·Ka v1 — agrégateur de sorties & événements du Québec
      …
      8 connecteurs actifs (Le point de vente, SIT Québec, Ville de Montréal,
      evenko, La Vitrine, Atuvu, Sherbrooke, Laval), 15 231 événements actifs
      dans les 17 régions, fiches SSR /evenement/{uid} avec JSON-LD, dédup
      inter-sources, enrichissement d'images og:image, design system Groupe KA
      « éditorial sharp », 19 tests sur fixtures réelles.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 2 files +1,384
Menu

Theme