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 sortika/web.py · clear filter

  1. Wed, Aug 26, 2026 1

  2. Tue, Aug 25, 2026 1

  3. Sun, Aug 23, 2026 2

    1. favoris ♥ « Mon univers Ka » (KA ID) : hub groupe-ka.com magasin central
      …
      - sortika/hubfav.py : client HMAC du hub (patron food-ka) — toggle synchrone,
        lecture avec cache mémoire 30 s invalidé au toggle, aucun stockage local
      - API : GET /api/favorites + POST /api/favorites/toggle (session KA ID, 401
        sinon ; 403 compte non relié ; 502 hub injoignable)
      - frontend : cœur ♥ sur les cartes et la fiche (non connecté -> connexion
        KA ID), page /favoris + entrée de nav, toggle optimiste avec rétablissement
      - SSR : route /favoris (noindex, hors sitemaps)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +35 −2
    2. stats v3 : rapports PDF personnalisés (catalogue de blocs, rendu au choix, constructeur + modèles)
      …
      - kapdf.py v3 : catalog(dash), mode 'personnalise' (spec title+blocks,
        rendu par bloc avec conversions tableau, heatmap calendrier vectorielle)
      - web.py : GET /api/stats/catalog + POST /api/stats/report/custom
      - frontend : constructeur vanilla (modal 2 colonnes, ordre ↑↓, sélecteur
        de rendu, modèles localStorage, téléchargement blob)
      - SPEC.md v3 (§3bis)
      Simon-Pierre Boucher committed 1 mo ago · 1 file +36 −1
  4. Wed, Aug 19, 2026 2

    1. Phase 2 — affichage & API : bandeaux statut, heures de fin, quarantaine, santé par source
      …
      - Frontend : badge Annulé/Reporté/Complet sur les cartes, bandeau de statut
        sur la fiche, plage horaire « 19 h 30 – 21 h 30 » quand end_time est connue,
        heure 00:00 affichée « heure non confirmée » (jamais un minuit menteur).
      - SEO/SSR : eventStatus schema.org (EventCancelled/EventPostponed), offers
        availability SoldOut, endDate horodatée (endDate + end_time + fuseau),
        bandeau statut dans le HTML SSR ; sitemaps sans les événements en
        quarantaine.
      - API : /api/events, /api/stats et le tableau de bord excluent la
        quarantaine ; /api/stats expose « quarantined » ; /api/sources expose
        upcoming_events par source + future_alerts (canal de supervision — une
        source verte sans futur est morte en silence).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +25 −7
  5. Tue, Aug 18, 2026 1

    1. 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 +14 −3
  6. Mon, Aug 17, 2026 3

    1. 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 · 1 file +34 −2
    2. 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 · 1 file +4 −1
    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 committed 1 mo ago · 1 file +207