SPB Git forge

spb/crea-ka

Public

Créa·Ka — annuaire public cross-plateforme des créateurs de contenu québécois (crea-ka.com)

52commits 1branches 0releases
11.3 MBsize
maindefault branch
19 days agolast push
Python 73.6% HTML 13.2% TypeScript 6% JavaScript 4.5% CSS 1.7% Dockerfile 0.6%

History of creaka/web.py · clear filter

  1. Wed, Aug 26, 2026 1

  2. Mon, Aug 24, 2026 1

    1. feat(doc): page documentation /doc (guide + captures) + lien footer + PDF téléchargeable
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +13 −1
  3. Sun, Aug 23, 2026 2

    1. Favoris unifiés « Mon univers Ka » (KA ID) — hub groupe-ka.com
      …
      - creaka/hubfav.py : client HMAC du hub (GET liste cache 30 s, POST toggle
        synchrone, aucun stockage local) — magasin central des favoris du groupe
      - creaka/web.py : routes GET /api/favorites + POST /api/favorites/toggle
        (session KA ID requise, 401 sinon), déclarées avant le fallback SPA
      - frontend : cœur ♥ sur les cartes de créateurs et CTA sur la fiche
        (« Se connecter avec KA ID » si déconnecté), page /favoris (grille des
        favoris lus au hub, retrait en place), nav header + footer + tab bar
        mobile (5 onglets)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +36 −2
    2. Simon-Pierre Boucher committed 1 mo ago · 1 file +40 −1
  4. Sat, Aug 22, 2026 1

    1. SEO : SSR léger des fiches créateur + head complet + robots/sitemaps
      …
      - creaka/seo.py (nouveau, pattern lou-ka) : routes /createur/{id} servies
        avec head unique (title « {nom} (@{pseudo}) — profils et liens | Créa-Ka »,
        description dérivée de la bio, canonical, OG complet dont og:type profile
        et og:image = avatar unavatar stable) + JSON-LD ProfilePage/Person avec
        sameAs = toutes les URL de plateformes du créateur + BreadcrumbList, et
        contenu essentiel injecté dans #app pour les bots ; 404 fiches inconnues,
        410 fiches retirées/opt-out ; pages /stats /retrait /contact avec canonical
        propre, /compte en noindex ; robots.txt (Disallow /api/ et /compte,
        ligne Sitemap) ; sitemap index + chunks de 10 000 (12 827 fiches, lastmod)
      - gabarit : lang fr-CA, bloc <head> SEO entre marqueurs KA:SEO (canonical,
        og:url/locale/type/site_name, twitter:title/description, JSON-LD WebSite
        avec SearchAction + Organization), titre descriptif, lecture de ?q= par le
        routeur pour rendre la SearchAction réelle
      - web.py : app.include_router(seo.router) avant le fallback SPA
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +6 −1
  5. Thu, Aug 20, 2026 1

  6. Wed, Aug 19, 2026 1

  7. Tue, Aug 18, 2026 1

    1. Correctifs audit : fix 500 threads, durées sync, twitch sauté proprement, onlyqueb RSC, avatars YouTube, balados enrichis, archivage §13
      …
      - web.py : connexion SQLite PAR THREAD (threading.local) — corrige le 500
        intermittent sur /api/stats (curseurs entrelacés sur connexion partagée)
      - db.py : sync_log.seconds/errors réels persistés ; log des comptes retirés
        dans _write_creator ; archive_missing() (§13 — non revu depuis 72 h →
        inactive, réversible au retour, opt-out intouchés)
      - ingest.py : durée+erreurs transmises à sync_source ; archivage en fin de
        passage complet ; SkipSource journalisé sans fausse alerte
      - twitch : clés absentes → SkipSource (« sauté : clés manquantes »), plus de
        run 0 ni d alerte « source bloquée »
      - onlyqueb : parseur du payload Next.js/RSC — displayName réel, bio+headline,
        categories→niches, mym/fansly/ofUrl→comptes, websiteUrl→compte site-web
      - normalize : plateformes mym + fansly (URL canoniques + détection)
      - dedup : le statut de l observation fraîche gagne (dormant/retour) ; un vrai
        nom public remplace un display_name pseudo-handle
      - youtube-recherche : avatar_url extrait du channelRenderer (meilleure rés.)
      - balados-itunes : feed_url/artist_id/last_episode dans le doc, genres[]
        complets → niches, dormant >12 mois → status inactive (§13)
      - wikidata-qc : échec SPARQL journalisé + compté dans sync_log.errors
      - frontend : libellés MYM/Fansly
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +20 −8
  8. Mon, Aug 17, 2026 3

    1. feat(stats): tableau de bord analytique /stats + rapport PDF Groupe-KA
      …
      - creaka/stats.py : GET /api/stats/dashboard (contrat ka-stats SPEC.md) —
        KPI avec deltas calculables, séries quotidiennes (ajouts, taille cumulative),
        répartitions (anneau plateformes, barres tiers/niches), heatmap d ajouts,
        tableaux (top créateurs, niches), records générés des données ; cache 5 min.
      - creaka/kapdf.py + GET /api/stats/report : PDF estampillé Groupe-KA (fpdf2),
        modes complet/synthèse, graphiques vectoriels, filename kapdf normé ;
        correctif : plus de pied de page sur la couverture.
      - frontend : vue /stats refaite en vanilla JS + SVG (kit kacharts reproduit) —
        chips de période + plage personnalisée, courbes avec infobulle et légende
        cliquable, anneau, barres, calendrier de chaleur, tableaux triables/
        cherchables/paginés (25/pg), records, fraîcheur + rafraîchir, boutons PDF ;
        mobile 360/768/1440 sans débordement horizontal.
      - frontend/src/ka/stats : kit commun (SPEC.md, kacharts.tsx, kapdf.py) versionné.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +37 −2
    2. feat(auth): connexion « Se connecter avec KA ID » via le hub groupe-ka.com
      …
      - creaka/auth.py : SSO délégué au hub (state signé, JWT HS256 vérifié en stdlib,
        session cookie creaka_session sans table users), /api/me enrichi par le
        profil hub (fetch signé HMAC, cache 60 s), logout, config
      - frontend : bouton compte dans l'en-tête (visible mobile), page /compte
        avec carte de membre Groupe KA (gabarit encre + lime du hub)
      - hub : client crea-ka enregistré (secret partagé KA_SSO_SECRET_CREA_KA)
      - testé bout-en-bout en prod (login → callback → session → me → logout)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +4 −1
    3. Simon-Pierre Boucher committed 1 mo ago · 1 file +130