Mettre à jour des licences sur des fichiers d’un mediawiki
L’April possède un wiki de travail permettant aux membres et aux non-membres de participer à l’élaboration de divers travaux. Ce wiki fonctionne grâce à mediawiki.
Récemment, j’ai mis en place un sélecteur de licence permettant à un contributeur d’apposer facilement une licence parmi une sélection (ou de mettre une licence ‘custom’ si aucune n’est satisfaisante). Ceci se fait très facilement en modifier la page spéciale MediaWiki:Licenses. Il suffit d’y faire une liste de modèles et ces modèles insère le texte adéquat de la licence (ou un lien y référant). La question de la licence est bien évidemment centrale dans ce type d’outil de travail, il en va de la possibilité de diffuser et de réutiliser les productions des contributeurs.
Ceci étant fait, il s’est posé la question des fichiers ayant été envoyés par le passé pour lesquels il n’y avait pas eu de licence précisée (environ 1200 fichiers). Pour palier ce manque, j’ai écris quelques lignes de code afin de mettre à jour automatiquement ces fichiers en question.
J’avais pour point de départ un fichier csv que j’ai parsé à l’aide d’un premier code perl pour créer des fichiers dont la syntaxe est de type ini, facile à manipuler. Je produit un fichier par utilisateur concerné. Chaque entrée concernant un fichier dont la licence est à préciser.
Un courriel est envoyé à chaque personne pour demander de compléter le champ licence, puis, à la réception de celui-ci, il est lu par un deuxième script via la bibliothèque Config::IniFiles. Les informations sont ajoutées à la page mediawiki idoine, comme l’aurait fait le sélecteur de licence, via la bibliothèque WWW::Mechanize.
Le choix de perl s’est fait lorsque j’ai appris (merci VX et Tangui) que la bibliothèque perl mechanize était bien mieux documentée que la bibliothèque python (devinette inside via 3 exemples). C’est tout de même plus rassurant…
Ca se code tout seul… si on n’oublie pas les deux lignes pour se loguer à mediawiki avant (certains comprendront ). En espérant que cela serve ou donne des idées à quelqu’un.