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%

History of tests/test_connectors.py · clear filter

  1. Tue, Aug 25, 2026 1

    1. Vague connecteurs 2026-08-25 : +26 sources actives (10 ATR, 15 municipales, 6 billetteries/agrégateurs), 20 connecteurs enrichis (prix/heures/adresses/images), +13 salles JSON-LD, +8 tenants — 61 sources actives, 22 310 événements actifs
      …
      - ATR : cotenord, abitibi, ilesdelamadeleine, charlevoix, eeyouistchee, tourismelaval, quebeccite, mtlorg + réhabilitation mauricie (XHR acolyte) et laurentides (Scrapfly)
      - Municipal : gatineau, levis, terrebonne, troisrivieres, rimouski, victoriaville, drummondville, granby, saintjerome, sainthyacinthe, rouynnoranda, shawinigan, joliette, magog, soreltracy
      - Billetteries/agrégateurs : showpass (API publique), zeffy (pages orgs __NEXT_DATA__), signelaval, quoifaire, evenementsattractions, banq ; weezevent/accesculture écartés documentés (accesculture retiré : domaine squatté, contenu 2015)
      - Enrichis : ticketpro prix 0→93 %, ticketacces adresses+prix, tuxedobillet fiches Scrapfly (+71 evts janv-fév), lavitrine v3 (GPS/prix JSON-LD des représentations), lepointdevente adresses, quebecanimee heures/adresses, sitq og:image/description, montreal images 100 %, bandsintown images, atuvu heures/prix, cantonsdelest 25→596 (pagination AJAX CSRF), 7 autres ATR fiches détail
      - sallesjsonld : 17 salles (+13 : Denise-Pelletier, MBAM, MNBAQ, MCQ, Pointe-à-Callière, Cinémathèque, TOHU, Spect'Art, Hector-Charland, Cogeco, Premier Acte, Maison littérature, Chasse-galerie), Trident réparé
      - Registre sources.json : 68 entrées, docs/connecteurs régénérés, 131 tests verts
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 29 days ago · 1 file +171
  2. Wed, Aug 19, 2026 2

    1. 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 committed 1 mo ago · 1 file +9 −1
    2. Phase 2 — connecteurs : heure+description La Vitrine, statuts, end_time, offres, taxonomies
      …
      - lavitrine (plus grosse source, 5 087 à venir) : capte l HEURE de la slide
        (« 15:00 HNE », start_time 0 % → 51 % dès le 1er lot de 1 100 fiches) et la
        DESCRIPTION (accroche courte + début du texte À propos, desc≥200 0 % → 50 %) ;
        re-visite versionnée v2 du cache (montée progressive, ~400 fiches/sync).
      - eventbrite : end_time (98,8 %), full_description>JSON-LD>summary,
        organisateur via le JSON-LD de la fiche déjà visitée pour le prix
        (0 % → 67 % et montant), statut is_cancelled CONSERVÉ (bandeau) +
        urgency_signals sold out → soldout. Les séries (series_id) ne sont PAS
        déroulées : 0 série observée sur les pages découverte sondées.
      - atuvu : og:description enfin affectée à l événement (payée en crédits
        Scrapfly, elle était jetée) — SAUF le gabarit marketing « trouvez des
        billets… » constaté sur fiche réelle, jamais publié ; backfill au fil des
        re-scrapes lastmod, aucun crédit supplémentaire.
      - evenko : supports (premières parties) ajoutés aux artistes, door_time et
        tour_name en description (« Tournée : … · Portes : … »),
        representation_status → statut (soldout/cancelled).
      - bandsintown : offers[] type Tickets → lien billets direct + « sold out »
        → statut soldout.
      - brossard : taxonomie type-event résolue (1 requête WP REST, vraies
        catégories) ; description INTÉGRALE (fin de la coupe à 600 caractères) ;
        heure de fin de la bannière « de 15 h 00 à 16 h 00 » et du JSON-LD biblio.
      - longueuil : image captée dans l état Nuxt (mediaImages front_*_16_9/21_9) ;
        heure de fin des cartes <time>.
      - laval : préfixe « ANNULÉ - » du titre → statut cancelled, titre nettoyé.
      - ticketmaster (repli sans clé) : les annulés sont conservés avec statut ;
        mode API (si TICKETMASTER_API_KEY fournie) : dates.status.code → statut,
        end localTime → end_time.
      - montreal : heure de FIN du JSON-LD des fiches (endDate), backfill
        progressif sous le même plafond MTL_IMG_MAX.
      - sherbrooke : heure de fin des périodes UTC → locale.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +118 −6
  3. Tue, Aug 18, 2026 2

    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 committed 1 mo ago · 1 file +42 −3
    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 committed 1 mo ago · 1 file +115 −1
  4. Mon, Aug 17, 2026 1

    1. 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 committed 1 mo ago · 1 file +148