本文へスキップ
ChronoFEED EVENT ヘルプ

Publication

Publier, c'est sortir les données de l'événement ouvert — classements, horaire, inscriptions — vers vos fichiers et vos formats : un classement général en PDF, un horaire en Word, les résultats par courriel, un micro-site, un tableur. EVENT écrit des contrats (des fichiers JSON qui décrivent tout ce qu'il sait de l'événement) et exécute de petits scripts Python qui lisent ces contrats et produisent ce que vous voulez. Rien à installer : Python standard suffit, les scripts d'exemple fonctionnent tels quels, et une IA peut en écrire d'autres à partir du contrat.

C'est le module Publication de l'en-tête, à côté de Diffusion. Là où la Diffusion envoie en direct le classement aux tableaux TABLEAU, la Publication fabrique des documents pour le public, le secrétariat ou la fédération.

NouveauEnregistrerSupprimer | ExécuterGuide (IA)… 1
Lancement : Actif DéclencheurÀ l'officialisation d'un classement | RaccourciCtrl+UDéfinir…Effacer 2
Scripts
exemple.py
excel-classement.py
pdf-classement.py
word-horaire.py
courriel-resultats.py
site-complet.py
3
import chronofeed_sdk as cf cg = cf.cg() # le classement général pdf(cg, "sortie/classement.pdf")
4
Journal
13:42:03 pdf-classement.py — écrit sortie/classement.pdf (18 lignes) · terminé
5
Le module Publication : le script « pdf-classement.py » est lancé à chaque officialisation d'un classement (données d'exemple).
  1. La barre d'outils : gérer les scripts, les exécuter, et enregistrer le Guide (IA).
  2. Le Lancement : quand le script choisi part tout seul (déclencheur, raccourci).
  3. La liste des scripts (vos fichiers .py) ; les exemples sont déjà là.
  4. L'éditeur de code du script choisi.
  5. Le journal : ce que le dernier lancement a écrit, et les erreurs.

Avant de commencer

Installer Python

Les scripts tournent avec Python, qu'EVENT appelle sur le poste — Python n'est pas livré avec EVENT. Une fois, sur chaque poste qui publie :

  • Installez Python 3 pour Windows depuis python.org (la version courante convient ; 64 bits).
  • À l'installation, cochez « Add python.exe to PATH » (en bas de la première fenêtre) : la commande python sera trouvée telle quelle.
  • Rien d'autre : aucun pip install, aucune bibliothèque externe, aucun accès Internet requis. Les exemples fonctionnent avec le Python standard nu.

Si python n'est pas dans le PATH, pas besoin de réinstaller : dans les réglages de Publication, indiquez le chemin complet vers python.exe (le réglage vaut python par défaut). Si Python manque, le journal l'indique : « Python introuvable… Installez Python, ou indiquez son chemin dans les réglages. »

Les secrets (mots de passe, clés) — cf.secret

Un script a parfois besoin d'un mot de passe ou d'une clé d'API — par exemple pour envoyer un courriel. Pour ne pas l'écrire en clair dans le script, EVENT fournit cf.secret("NOM"), qui lit une variable d'environnement Windows nommée CHRONOFEED_SECRET_NOM. Le NOM est une étiquette que vous choisissez.

Dans le script d'exemple, cette ligne reste telle quelle (ne mettez pas le mot de passe ici) :

mot_de_passe = cf.secret("SMTP")

cf.secret("SMTP") ira chercher la variable CHRONOFEED_SECRET_SMTP. Vous la créez une fois, avec sa vraie valeur, par l'invite de commandes de Windows :

  1. Appuyez sur la touche ⊞ Windows, tapez cmd, puis Entrée : une fenêtre noire s'ouvre (l'invite de commandes).
  2. Tapez (ou collez avec Ctrl+V) la commande suivante, en remplaçant l'exemple par votre vrai mot de passe, puis Entrée :
    setx CHRONOFEED_SECRET_SMTP "mon-mot-de-passe-bidon"
    Windows répond « SUCCESS: Specified value was saved. »
  3. Fermez l'invite, puis relancez EVENT.

La dernière étape compte : EVENT lance Python en héritant de son environnement, donc la variable doit exister avant de lancer EVENT (c'est pourquoi on relance). On peut aussi passer par Paramètres Windows → Variables d'environnement → Nouvelle variable utilisateur (nom CHRONOFEED_SECRET_SMTP, valeur = le mot de passe). Si la variable n'existe pas, cf.secret renvoie du vide et l'envoi échoue — le signe qu'il faut la créer et relancer EVENT.

Les contrats : tout ce qu'EVENT sait de l'événement

Avant de lancer un script, EVENT écrit (dans le dossier de travail) des fichiers JSON qui décrivent l'événement ouvert. Un script lit ce dont il a besoin par la bibliothèque chronofeed_sdk (abrégée cf), et ne touche jamais à la base de données.

Les six contrats

  • evenement.json — l'événement : nom, lieu, dates, fédération, épreuves et leur état. (cf.evenement())
  • inscriptions.json — les inscrits : dossard, nom, prénom, club, pays, catégorie, épreuves inscrites. (cf.inscriptions())
  • composition.json — les listes de départ : qui court dans quelle course, quel couloir ou quelle série. (cf.composition())
  • horaire.json — l'horaire des courses : ordre, heures prévues, regroupements. (cf.horaire())
  • cg.json — le classement général : rang, dossard, nom, club, pays, temps ou points, écart, position, médaille, officiel ou provisoire. (cf.cg())
  • resultats.json — les résultats épreuve par épreuve, avec le détail des tours (chaque tour et son temps). (cf.resultats())

Chaque contrat est régénéré à chaque exécution, à partir de l'état courant : un script lancé après une officialisation voit le classement officiel. Un contrat qui ne peut pas être construit n'interrompt pas les autres.

Guide (IA)…

Où : Publication, barre d'outils

Enregistre un document du contrat — la description complète des données disponibles, avec des exemples — à donner à une IA pour qu'elle écrive un script à votre place : « fais-moi un PDF de l'horaire par catégorie », « envoie les trois premiers de chaque épreuve par courriel ». Vous collez le script obtenu dans un Nouveau, et vous l'exécutez.

Les scripts d'exemple

EVENT dépose six scripts prêts à l'emploi au premier lancement ; ils servent tels quels, ou de point de départ. Choisissez-en un dans la liste pour voir son code, puis Exécuter.

site-complet.py — le micro-site

Produit un petit site web (horaire, listes de départ, résultats) dans le dossier de sortie, prêt à poser sur une clé USB ou un hébergement. C'est la page publique la plus complète livrée d'office.

pdf-classement.py — le classement général en PDF

Écrit le classement général dans un .pdf propre à imprimer ou à joindre à un courriel — sans aucune bibliothèque externe (un petit moteur PDF inclus). La porte d'entrée vers tout le reporting en PDF.

excel-classement.py — le classement en Excel

Écrit le classement général dans un classeur .xlsx, pour retravailler les chiffres dans un tableur.

word-horaire.py — l'horaire en Word

Met l'horaire des courses dans un document .docx à remettre aux officiels ou à afficher.

courriel-resultats.py — les résultats par courriel

Envoie le classement par courriel (SMTP). Le mot de passe du compte d'envoi n'est pas écrit dans le script : il passe par un secret (une variable d'environnement), pour ne jamais se retrouver en clair dans un fichier.

exemple.py — le point de départ

Le plus court : il publie une page de classement dans le dossier sortie. À lire d'abord pour comprendre comment un script lit un contrat et écrit un fichier.

Lancer : à la main, par minuterie, à l'officialisation, au raccourci

Chaque script peut partir tout seul. Les réglages de la bande Lancement valent pour le script sélectionné et sont gardés avec lui ; Actif décoché, le script ne part jamais seul — le bouton Exécuter reste toujours possible.

Actif

Où : Publication, bande Lancement

Coché : le script part selon le déclencheur choisi ci-dessous. Décoché : aucun lancement automatique.

Déclencheur

Où : Publication, bande Lancement

  • Manuel (bouton Exécuter) : rien d'automatique ; vous lancez vous-même.
  • Minuterie (toutes les N secondes) : le script repart à intervalle régulier. Réglez l'Intervalle (s). Idéal pour un micro-site qui se rafraîchit pendant la compétition.
  • À l'officialisation d'un classement : le script part chaque fois qu'un classement est officialisé (ou marqué officiel, ou que les positions sont enregistrées). Les résultats officiels partent ainsi sans y penser.

Raccourci clavier

Où : Publication, bande Lancement

Un script peut aussi avoir un raccourci clavier : cliquez Définir…, puis appuyez sur la touche ou la combinaison voulue (par exemple Ctrl+U, Alt+Z, F5) ; Échap annule la capture. Le raccourci lance le script depuis le module Publication, même sans passer par le bouton. Effacer l'enlève.

Exécuter, arrêter, le journal

Exécuter / Arrêter

Où : Publication, barre d'outils

Exécuter régénère les contrats puis lance le script choisi. Arrêter (visible pendant qu'il tourne) l'interrompt. Ce que le script écrit et ses éventuelles erreurs s'affichent dans le journal, en bas ; Copier le recopie en entier.

Nouveau, Enregistrer, Supprimer

Où : Publication, barre d'outils

Les scripts sont de simples fichiers .py dans le dossier de l'application. Nouveau crée un fichier vide, Enregistrer garde vos changements, Supprimer retire le script choisi.