France
Québec
Belgique
Suisse

L'Agenda du Libre

L'agenda des évènements du Logiciel Libre en France

Soumission d'évènement par script

Table des matières

Principe

Afin de faciliter la soumission d'évènement régulier, un petit script vous est proposé. À partir de la description d'un évènement dans un fichier XML et d'informations données sur la ligne de commande, il permet de soumettre automatiquement un évènement dans l'Agenda du Libre.

Ce script est disponible ici. Il utilise Python, et le module Curl pour Python (paquets Debian python2.3 et python2.3-pycurl ou python2.4 et python2.4-pycurl.

Utilisation

Il faut tout d'abord rédiger un document XML dont voici un exemple (qui peut également être téléchargé ici) :

<?xml version="1.0" encoding="ISO-8859-1"?>
<event>
 <title>Gulliver - Permanence autour du libre</title>
 <start-hour>19:00</start-hour>
 <end-hour>22:00</end-hour>
 <description><![CDATA[
<p>L'association <a href="http://www.gulliver.eu.org">Gulliver</a>, groupe d'utilisateurs de logiciels libres d'Ille et Vilaine et des environs de Rennes, tient une permanence à la <a href="http://www.mce-info.org/">Maison de la consommation et de l'environnement</a>, 48 boulevard Magenta à Rennes, chaque vendredi à partir de 19h00. Une permanence aura donc lieu le $date.</p>
  
<p>Cette permanence est ouverte à tous, membres de l'association ou non. On peut s'y <b>informer</b> sur les logiciels libres, en <b>tester</b>, amener sa machine pour une <b>installation</b>.</p>

<p>Pour une installation ou tout type d'intervention, il est conseillé :</p> <ul> <li>de prévenir auparavant sur la <a href="http://gulliver.eu.org/ml/ml.html">liste de diffusion de Gulliver</a> ou sur l'adresse de contact en précisant sa demande, la configuration de sa machine ;</li> <li>de prendre connaissance de la <a href="http://gulliver.eu.org/wiki/charte3">Charte de Gulliver</a>.</li></ul>

<p>Les <b>partages de compétences et d'expériences</b> complémentaires sur le libre sont tous les bienvenus.</p>

<p>Une connexion Internet est disponible sur place. Accès par le côté ouest de la MCE (fond de la cour) ; demander la clef du parking à la permanence si besoin (transport de machine).</p>
 ]]></description>
 <city>Rennes</city>
 <region>Bretagne</region>
 <url>http://gulliver.eu.org/wiki/MCEPermanence</url>
 <contact>contact@gulliver.eu.org</contact>
 <submitter>contact@gulliver.eu.org</submitter>
 <tags>gulliver permanence install-party</tags>
</event>

Ce fichier XML doit contenir toutes les informations qui ne changent pas sur votre évènement. Les champs existants sont :

Des remplacements de texte sont également faits dans la description :

Ces remplacements servent à créer des fichiers XML génériques, qui pourront être utilisés pour un évènement qui se répète dans le temps.

Une fois ce fichier écrit, il suffit d'utiliser le script. Tout, d'abord, on passera un paramètre --file event.xml pour spécifier le fichier XML précédement créé. On passera également en paramètre toutes les informations manquantes dans le fichier XML. Les options ont le même nom que les champs du fichier XML. Si une option est fournie alors que le champ existe dans le fichier XML, alors la valeur de l'option sera préférée à la valeur du fichier XML. Au total, entre les options de la ligne de commande et les valeurs du fichier, tous les champs doivent être remplis pour que la soumission fonctionne. Exceptions : si le champ end-date n'est pas spécifié, alors il prendra la valeur du champ start-date et si le champ submitter n'est pas spécifié, alors il prendra la valeur du champ contact.

Pour un évènement régulier (une fois par mois, par semaine), une utilisation typique sera de renseigner les champs title, start-hour, end-hour, description, city, region, url, contact, submitter et tags dans le fichier XML. On spécifiera alors la date sur la ligne de commande.

On peut tout d'abord vérifier que le formatage de la description de l'évènement est correct, en utilisant l'option --test-output. On peut ainsi générer un fichier HTML, que l'on pourra valider avec un navigateur Web.

./adl-submit.py --file event.xml --start-date 2006-01-23
                --test-output test.html

Une fois ceci fait, il reste plus qu'à soumettre l'évènement :

./adl-submit.py --file event.xml --start-date 2006-01-23

Soumettre un grand nombre d'évènements réguliers

Un cas d'utilisation typique du script est l'ajout d'un grand nombre d'évènements réguliers, par exemple les rencontres ou les repas d'un groupe d'utilisateur, dont les dates sont prévues longtemps à l'avance.

Tout d'abord, préparez un fichier XML avec tous les champs, sauf start-date et end-date. Le texte de la description utilisera avec intérêt les mots clés $date ou $month qui seront automatiquement remplacés par la date ou le mois de l'évènement.

Une fois ce fichier XML prêt, validez que le résultat est correct, en utilisant l'option --test-output. Vous pouvez également l'envoyer aux modérateurs de l'Agenda du Libre (moderateurs@agendadulibre.org) pour qu'ils valident la description: ainsi, lors de la soumission, vous serez sûr que tous les évènements seront validés d'un seul coup.

Les vérifications étant faites, créez un fichier texte, s'appelant par exemple liste-dates, contenant les dates de tous les évènements, sous la forme :

2008-09-10
2008-09-24
2008-10-08
2008-10-22
2008-11-12
2008-11-26
2008-12-03
2008-12-17
2009-01-07
2009-01-21
2009-02-04
2009-02-25
2009-03-11
2009-03-25
2009-04-22
2009-05-06
2009-05-20
2009-06-03
2009-06-17

Puis, grâce à la magie du shell, on va exécuter le script de soumission d'évènements autant de fois que nécessaire :

for date in $(cat liste-dates) ; do
 ./adl-submit.py --file event.xml --start-date $date ;
done

Et le tour est joué. Lorsque les évènements seront validés, vous recevrez un courrier électronique de notification, contenant notamment les instructions pour éditer ou annuler un évènement si cela s'avèrait nécessaire.

Questions ? Problèmes ?

Si vous avez des questions concernant son utilisation, vous pouvez contacter la liste de développement de l'Agenda du Libre, en vous inscrivant ici.