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%

page 2

  1. Tue, Aug 18, 2026 3

    1. docs: documentation standardisée des 14 sources (générateur + fiches)
      …
      scripts/gen_connector_docs.py : générateur 100 % programmatique et rejouable
      qui croise data/sources.json (famille, palier, accès, signal d identité),
      l introspection statique (ast) de creaka/connectors/*.py et la BD live
      (creators/doc JSON, accounts par plateforme, sync_log : cadence, alertes).
      Écrit docs/connecteurs/INDEX.md + une fiche par source (sections fixes).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 16 files +1,594
    2. Vague 2 : balados-rss (RSS sans clé), Podcast Index (prêt — clés requises), abonnés X sans clé, bio-liens, plateformes spotify/discord/apple-podcasts
      …
      - balados-rss : flux RSS auto-déclarés (cap 150/passage, re-visite 7 j, fetch
        parallèle poli, repli regex) → épisodes réels, dernier épisode/dormant,
        pochette→avatar, description→bio, catégories→niches, <link>→site-web
        (portails partagés et domaines de plateformes exclus — anti-fusion §12.2)
      - podcastindex : connecteur complet API officielle, sauté proprement sans
        clés (SkipSource) ; PODCASTINDEX_API_KEY/SECRET dans .env.example
      - x-profil : abonnés/abonnements/badge X via le service public de syndication
        (widgets officiels) + repli page x.com ; fetch via curl (requests 429-é par
        empreinte TLS, constaté) ; followbutton mort et Facebook bloqué → documenté
      - bio-liens : liaison croisée conservatrice depuis les URLs complètes des
        bios déjà stockées (cross_link, cap 5/fiche, jamais de @handle textuel)
      - normalize/frontend : plateformes spotify, discord, apple-podcasts→podcast
        (fusion par collectionId) ; icônes simple-icons ; PLAT du SPA
      - sources.json : 4 nouvelles sources documentées ; tests vague 2 (35 verts)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 13 files +861 −7
    3. 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 · 13 files +227 −31
  2. Mon, Aug 17, 2026 9

    1. Simon-Pierre Boucher committed 1 mo ago · 2 files +84 −52
    2. Câblage du widget KA Agent (bulle de chat IA Groupe KA)
      …
      - ka-agent.js déplacé vers frontend/src/ (emplacement pérenne) ;
        build_frontend.py le copie vers frontend/dist/ à chaque build,
        un rebuild ne perd donc plus le fichier.
      - Balises window.KA_AGENT={site:"crea-ka"} + /ka-agent.js (defer)
        dans le gabarit source ; dist régénéré.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 5 files +473
    3. 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 −26
    4. 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 · 9 files +2,658 −56
    5. Corrige le débordement horizontal du header (761–1040 px) et ajoute les assets de partage (og.png, favicon.svg, apple-touch-icon)
      …
      - Bascule mobile du header (masquage des boutons + tab bar) déplacée de 760 à 940 px : le contenu réel du header exige 937 px
      - Masquage du brand-tag jusqu à 1040 px (le header complet avec slogan exige 1021 px)
      - Masquage du badge Groupe KA sous 400 px (débordement de 15 px à 360 px)
      - Nouveau favicon SVG, apple-touch-icon et image Open Graph 1200×630 servis à la racine via frontend/dist
      - Meta og:image / twitter:card ajoutées au gabarit
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 5 files +31 −10
    6. design: harmonisation « éditorial sharp » Groupe KA (ka-ui) — accent violet, footer commun, page /contact
      …
      - Vendorisation du package ka-ui dans frontend/src/ka/ (tokens.css, ecosystem.json,
        KaFooter.tsx, GroupeKaBadge.tsx) ; tokens.css injecté EN PREMIER dans le <head>
        via le nouveau marqueur __KA_TOKENS__, écosystème via __KA_ECO__
        (scripts/build_frontend.py gère désormais les 3 marqueurs)
      - Accent attribué à Créa-Ka : VIOLET (--accent:#7048e8, --accent-soft:#ece5fc,
        --accent-deep:#5433b8, --on-accent:#ffffff) + alias --lime/--lime-soft ;
        socle dédupliqué (body, grain, sélection, boutons) ; couleurs codées en dur
        (#c9a3ff, #5b34a8, rgba violettes) pointées vers les variables du groupe ;
        textes posés sur accent passés à --on-accent, textes sur encre à --accent-soft
      - Header : badge « Un service Groupe KA » cliquable vers le hub (desktop +
        mobile, préfixe replié sous 560 px) ; bouton « Se connecter avec KA » ;
        « Créer un compte KA ID » vers groupe-ka.com/connexion sur /compte
      - Footer : remplacement par le footer commun KaFooter (fond encre, avertissement
        agrégateur, 3 courriels, 15 liens de l'écosystème, mentions légales du hub +
        /retrait local) ; nav locale conservée au-dessus
      - Nouvelle route SPA /contact : courriels & rôles du groupe, avertissement,
        lien hub et liste des 12 plateformes (ecosystem.json)
      - SEO : <title> « Créa-Ka — Un service Groupe KA »
      - Responsive : cibles tactiles >=44 px (header, nav footer, cartes contact),
        aucun débordement horizontal (overflow-x:clip du socle), breakpoints
        360/768/1024/1440 du design system
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 7 files +1,219 −244
    7. 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 · 4 files +452 −11
    8. feat(youtube-recherche): profondeur — pagination par continuations (~4 pages/requête, 5x le rendement de découverte)
      …
      - API interne de la page publique (INNERTUBE) pour les pages 2-4 de chaque requête
      - fix: IDs de chaîne UC… — casse préservée + URL /channel/ canonique
      - fix: parse_count ne lit plus un handle comme un compteur (bug 5 G abonnés)
      - cartes de comptes : pastille de confiance sur sa propre ligne
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +77 −28
    9. Simon-Pierre Boucher committed 1 mo ago · 46 files +16,247