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%

page 2

  1. Wed, Aug 19, 2026 1

    1. Correctifs front-end mobile : viewport-fit=cover, champs 16 px, blur header desktop seulement, socle mobile ka-ui
      …
      - index.html : meta viewport avec viewport-fit=cover (safe-area iOS)
      - .header : backdrop-filter limite a >=768px, fond quasi opaque rgba(245,243,238,.95) sur mobile (evite les descendants fixed pieges par le blur WebKit + perfs de scroll)
      - champs input#q / select#region / select#period a 16 px sous 760px (evite le zoom auto iOS au focus)
      - a.brand : extension tactile ::after inset -8px (cible >=44px), nav deja >=44px
      - frontend/src/ka/tokens.css : section SOCLE MOBILE OBLIGATOIRE (z-index unifies, --vh100 dvh, verrous de scroll, filet anti-zoom 16 px, extension tactile gk-badge)
      - frontend/ka-agent.js : agent corrige (safe-area, textarea 16 px, plein ecran <=640px + verrou scroll)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 3 files +129 −11
  2. Tue, Aug 18, 2026 5

    1. docs: fiches connecteurs régénérées (vague 3 — 4 sources actives de plus)
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 21 files +48 −35
    2. 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 · 27 files +1,224 −232
    3. docs: documentation standardisée des connecteurs (générateur rejouable)
      …
      - scripts/gen_connector_docs.py : générateur rejouable qui croise
        data/sources.json, l introspection des connecteurs (endpoints, pagination,
        backend, plafonds env, en-têtes) et la BD live (volumétrie, complétude
        GPS/prix/heure/artistes/image/salle, exemples réels, sync_log)
      - docs/connecteurs/ : INDEX.md + 18 fiches (sections fixes : Description,
        Accès, Champs récupérés → schéma, Fréquence & budgets, Volumétrie &
        complétude live, Erreurs & dépannage, Licence/attribution avec mentions
        requises CC BY Montréal / CC 4.0 SITQ & Laval, Historique incl. vagues
        d enrichissement 2026-08-18 7d9d1b0 et 65d2d33)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 20 files +2,093
    4. 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 · 22 files +1,029 −46
    5. 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 committed 1 mo ago · 7 files +336 −14
  3. Mon, Aug 17, 2026 12

    1. Simon-Pierre Boucher committed 1 mo ago · 2 files +79 −90
    2. Ajout du fichier statique ka-agent.js (widget KA Agent)
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +233
    3. Câblage du widget KA Agent (bulle de chat Groupe KA)
      …
      Ajout des balises window.KA_AGENT={site:"sorti-ka"} et /ka-agent.js
      en fin de <body> de frontend/index.html — repris tel quel par le
      gabarit SSR de seo.py (aucun doublon).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +2
    4. gitignore : fichiers SQLite runtime (db-shm/db-wal) retirés du suivi
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 3 files +3
    5. Footer/contact : Job-Ka rejoint l écosystème (ecosystem.json 13 sites)
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 2 files +177 −24
    6. kapdf : pas de pied de page sur la couverture (correctif du moteur commun)
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +2 −2
    7. Page /stats : tableau de bord analytique + rapport PDF Groupe-KA
      …
      - sortika/stats.py : GET /api/stats/dashboard (contrat ka-stats SPEC.md) —
        KPI réels avec deltas, séries ajouts/jour et en-cours/jour, donut
        catégories top 8, gratuits vs payants, sources, régions, heatmap
        calendrier 26 semaines, top villes/lieux/gros jours, records ;
        cache mémoire 5 min par période
      - sortika/kapdf.py (moteur PDF commun fpdf2) + GET /api/stats/report
        (complet | synthese), wordmark Sorti·Ka, accent #d6336c, filename
        kapdf.filename("sorti-ka", period)
      - frontend : vue /stats vanilla JS + SVG (kit kacharts reproduit) —
        KPI auto-fit, chips de période + plage personnalisée, courbes avec
        infobulle et légende cliquable, barres, anneau, heatmap, tableaux
        triables/recherche/pagination 25, records, boutons PDF ; lien Stats
        dans la nav ; mobile 360/768/1440 sans débordement
      - SEO : SSR /stats (title/canonical/og) + sitemap-pages
      - requirements : fpdf2
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 9 files +2,444 −4
    8. Assets Groupe KA (og.png, favicon.svg, apple-touch-icon) + correction du débordement à 768 px
      …
      - ka-assets/ → frontend/ (servi à la racine par StaticFiles) : og.png
        (1200×630), favicon.svg, apple-touch-icon.png.
      - index.html : liens icônes + og:image/og:image:width/height +
        twitter:card summary_large_image + twitter:image.
      - seo.py : OG_IMAGE_TAGS par défaut (contact, événements sans image),
        retombée twitter pour les événements avec image ; _render retire les
        balises statiques pour éviter les doublons.
      - header : header-inner passait en pile seulement à ≤760 px alors que la
        ligne exige ~882 px — flex-wrap autorisé à toute largeur (cause racine
        du débordement horizontal de +114 px à 768 px).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 5 files +30 −4
    9. Harmonisation ka-ui — accent framboise, badge Groupe KA, KaFooter, page /contact
      …
      - tokens.css (ka-ui vendoré, src/ka/) chargé en premier ; le CSS local ne
        garde que le bloc accent framboise (--accent #d6336c + alias --lime) et
        le CSS métier — socle dédupliqué, couleurs en dur pointées vers les tokens
      - Header : badge « Un service Groupe KA » (→ groupe-ka.com) à côté du logo,
        lien Contact, empilement propre sous 760 px (badge visible sur mobile)
      - Footer : remplacé par le footer commun KaFooter (siteId sorti-ka) —
        3 courriels + rôles, avertissement agrégateur, 15 sites, liens légaux du
        hub + attribution des données conservée
      - Page /contact : vue SPA (contenu ecosystem.json) + route SSR seo.py
        (title/canonical/og + contenu robots) + entrée sitemap-pages.xml
      - KA ID : lien « Créer un compte » → groupe-ka.com/connexion à côté du
        bouton « Se connecter avec KA »
      - SEO : title « Sorti-Ka — Un service Groupe KA »
      - Responsive/tactile : overflow-x clip (tokens), nav/chips/liens ≥ 44 px,
        chips 44 px sur pointeur tactile
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 6 files +603 −82
    10. État du nœud — MAJ README ; gitignore *.log (logs de backfill)
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 4 files +4 −7
    11. Connexion KA ID — « Se connecter avec KA » (SSO hub groupe-ka.com)
      …
      sortika/auth.py (patron louka/auth.py) : départ SSO avec state signé,
      vérification du jeton HS256 du hub (issuer/audience/exp), upsert membre
      (table users, KA ID adopté du hub), session cookie httpOnly HMAC,
      /api/me avec profil dicté par le hub (/api/sso/profile). Bouton et puce
      membre dans l'en-tête. 3 tests auth (22 au total).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 7 files +420 −5
    12. 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 · 39 files +11,585