User:Jean-Frédéric/digiKam

Sujet edit

« Développement d’un plugin pour digiKam permettant l’export vers la médiathèque Wikimedia Commons »

Wikimedia Commons est une médiathèque en ligne qui rassemble des médias à vocation pédagogique, publiés sous licences libres. Elle centralise les illustrations des différents projets Wikimedia, dont le plus connu est l’encyclopédie libre Wikipédia. Créée en 2004, Wikimedia Commons compte à ce jour plus de 11 millions de fichiers librement réutilisables.

Wikimedia Commons est propulsé par le logiciel MediaWiki. Le versement de fichiers sur Wikimedia Commons se fait principalement au moyen d’une interface web. Il est également possible de recourir à des clients lourds ou à des bibliothèques de programmation en ligne de commande.

digiKam est un logiciel multiplateforme-forme de gestion d'images sous licence libre GNU GPL, basé sur la plate-forme KDE. Il permet de gérer des collections d’images, d’effectuer de la retouche photographique et d’exporter les fichiers vers diverses plates-formes en ligne, comme Flickr ou Picasa.

Le but du projet est de développer un plugin digiKam permettant l’export de fichiers vers Wikimedia Commons. Cet export devra impérativement inclure diverses informations et métadonnées sur le fichier (description multilingue, licence, géolocalisation, catégories), soit en les extrayant des propriétés du fichier, soit en permettant à l’utilisateur de les saisir à la main.

Le plugin reposera sur l’API KIPI plugins. Les étudiants pourront s’appuyer sur une bibliothèque Qt permettant d’interagir avec MediaWiki, et sur un prototype incomplet du plugin demandé.

Selon l’avancement du projet, le développement d’un plugin analogue pour Shotwell, l’homologue de digiKam pour l’environnement de bureau GNOME, pourra être envisagé.

Tickets edit

Done edit

  •   Done Naviguer sur Commons et s'essayer à l'import de photos pour comprendre son fonctionnement
  •   Done Installer une distribution Linux avec le dernière version de digiKam et importer des photos pour comprendre son fonctionnement
  •   Done Cloner le code source du plugin actuel sur GitHub
  •   Done Apprendre à compiler et à modifier le plugin Kipi
  •   Done Ajouter [[Category:Uploaded with KIPI uploader]] au contenu de la page de description sur Commons
  •   Done Déplacer les options de redimensionnement vers un second onglet (avec les autres options « avancées »)
  •   Done La gestion des espaces dans les noms de fichiers est mauvaise - les espaces dans le nom de fichier sont autorisés, mais ils sont automatiquement replacé par "_" à l'upload (wikipedia API) (ILkO)
  •   Done Choix du wiki de destination dans une liste déroulante avec possibilité d'ajouter son propre wiki (nom, url de api.php) − Nathan
  •   Done Le login semble ne pas fonctionner sur Commons (fonctionne sur test.wikipedia.org) : tout fonctionne : fichiers importés

Bugs edit

  •   Done La gestion des caractères spéciaux dans le wikitexte est incorrecte : [1]
  • Prévenir lors de l'écrasement d'un fichier existant (importer une seconde fois ne prévient pas que l'image existe déjà)
  • Prévenir quand le même titre a été donné à deux images
  •   Done redimensionnement KO dû à la modification du titre de l'image
  •   Done Gestion du titre de l'image
  •   Done caractère spéciaux dans la localisation "�"
  •   Done N'ajouter la géolocalisation que si les champs correspondants sont remplis : [2]
  •   Done Corriger la typographie des messages utilisateur
  •   Done Corriger l'ordre du focus des champs de texte (focus sur longitude avant latitude inattendu)

Fonctionnalités importantes edit

  • Pouvoir éditer les métadonnées :
    •   Done Catégories
    •   Done Coordonnées géographiques (les modèles de Commons ne gèrent pas l'altitude : documentation)
    •   Done Nom du fichier de destination (autoriser les séries de fichiers en ajoutant un numéro à la fin)
    •   Done Date et heure
    •   Done Description
    •   Done Stocker en mémoire les informations d'import associées à chaque fichier.
    •   Done Mettre à jour les informations saisies à chaque changement de focus pour toutes les images sélectionnées
  •   In progress Rédiger une documentation là : KIPI uploader
  • Détailler davantage les erreurs de login et d'import
  • Pré-remplir :
    •   In progress Les catégories avec les étiquettes digiKam (Sélectionner seulement les catégories les plus précises. Remplir avec Valeur1\nValeur2 plutôt que « Valeur1,Valeur2» car la virgule est autorisée dans les noms de catégorie...)
    •   Done les coordonnées géographiques
    •   Done le nom du fichier de destination
    •   Done la date et l'heure
    •   In progress les descriptions (pré-remplir avec {{lang1|texte1}}\n{{lang2|texte2}})
  •   Done Remplacer les champs monoligne (KLineEdit) des descriptions et catégories par des champs de texte (KTextEdit) (voir syntaxes ci-dessus avec les retours à la ligne ; c'est bien plus pratique quand le texte saisi est long !)
  • Pré-remplir le champ « Auteur » avec l'identifiant utilisé et conserver cette information dans la configuration
  • Ajouter un champ « Source » et le pré-remplir avec {{own}} plutôt que d'ajouter {{own}} automatiquement
  • Ajouter un champ de catégories qui seront ajoutées à toutes les images (catégorie d'appareil photo, d'utilisateur...) et stockées dans la configuration

Fonctionnalités non critiques edit

  •   In progress Vérifier la présence de duplicatas distants (via SHA1) − expliqué sur commons:Commons:Guide_to_batch_uploading#Check_for_duplicates
  • Auto-complétion à partir des catégories déjà existantes sur le wiki (utiliser AJAX)
  • Marquer les images uploadées dans digiKam via un tag
  •   Done Modification en masse des information d'upload des images via une sélection multiple
  • Ajouter le nom du wiki sur lequel on est actuellement connecté (avec la favicon ?)
  •   In progress Autoriser le redimensionnement par un pourcentage de la taille initiale
  • Permettre d'ajouter des licences comme on ajoute des wikis
  • Permettre de modifier et de supprimer des licences et wikis de la liste

À long terme (idées) edit

  • Changer le nom du plugin en MediaWiki uploader (le plugin est fait pour le logiciel MediaWiki, pas particulièrement pour Commons)
  • Ajouter un champ de notification qui affiche des avertissements (plusieurs fichiers ont le même nom, certains fichiers n'ont pas de catégorie ou de description, un fichier distant existe avec le même SHA1 etc.) mis à jour en temps à chaque modification et qui change de couleur comme dans GRAMPS

Notes edit

Compilation et installation edit

La liste des commandes à exécuter pour compiler et installer digikam est la suivante.

Pour récupérer digiKam :

git clone git://anongit.kde.org/digikam-software-compilation digikam
cd digikam
./download-repos

Pour récupérer le code Kipi modifié par les étudiants :

cd extra/kipi-plugins
git remote add github git://github.com/peter17/kipi-plugins.git
git pull github master

Pour compiler / builder :

mkdir build
cd build
export CMAKE_MODULE_PATH=/usr/lib/kde4/
export CMAKE_PREFIX_PATH=/usr
cmake -DCMAKE_BUILD_TYPE=debugfull -DCMAKE_INSTALL_PREFIX=/usr ..
make
sudo
make install

Pour les mises à jour :

./gits pull
cd build
make
su
make install

Commentaires edit

En pratique, l'installation de digikam par cette méthode suffit pour le développement du plugin mediawiki ; en effet, la commande ./download-repos clone les dépôts correspondants. Il n'est donc probablement pas nécessaire d'installer libmediawiki ni kipi-plugins séparément. Cependant, comme j'ai fait successivement les trois étapes, je les écris toutes ici, au cas-où.

Je n'ai pas encore réussi à lancer le plugin mediawiki. Peter17 (talk) 17:24, 20 February 2012 (UTC)

Sur Kubuntu, la compilation de digikam se passe bien. J'ai pris le source directement à partir de dêpot git://anongit.kde.org/digikam-software-compilation. J'ai réussit à compiler digikam 2.6.0 avec tous les plugins. Je n'ai pas essayé le plugin mediawiki. Je l'ai fait avec le script perl ./download-repos et non pas séparement (c'est-à-dire compiler le libmediawiki, après compiler le kipi-plugins et finallement le digikam). Bien sûr, il faut s'assurer que vous avez toutes les dependences pour le digikam. Vous pouvez les installer, soit par le packet manager de Kubuntu(apt-get) soit par compilation à la main. Les dependeces sont decrites sur le site officiel de digikam. Ilko (talk) 12:09, 25 February 2012 (UTC)
La compilation a fonctionné sous Mandriva 2011 et le plugin fonctionne à peu près.
Je n'arrive pas à me logguer à Commons. Par contre, le login et l'upload fonctionnent avec http://test.wikipedia.org/w/api.php
Mon test : http://test.wikipedia.org/wiki/File:Saint-Vallier-gare.jpg
Problème : modifier le code source, recompiler et réinstaller ne modifie pas le plugin !
Peter17 (talk) 10:38, 14 March 2012 (UTC)
Le problème précédent est dû au fait que digiKam et ses plugins sont par défaut installés dans /usr/local/lib/kde4 et pas dans /usr/lib/kde4
J'avais un conflit entre deux installations : modifier le code source modifiait le plugin installé dans /usr/local/lib/kde4 mais c'était le plugin installé dans /usr/lib/kde4 qui était utilisé. Comme je ne sais pas comment forcer KDE à utiliser un dossier plutôt que l'autre, j'ai mis à jour les instructions de compilation pour forcer l'installation dans /usr/lib/kde4.
Je vous conseille de faire un make clean puis de recompiler et réinstaller le tout. Tout marche bien pour moi à présent.
Je peux maintenant me logguer sur WP:fr et Commons.
Les modifications que j'ai apportées au plugin m'ont permis de faire un import avec un wikitexte correct : http://test.wikipedia.org/w/index.php?title=File:Saint-Vallier-gare3.jpg&action=edit
J'ai créé un repo GitHub et fait un premier commit contenant ces modifications. Il vous sera peut-être plus facile de forker ce repo depuis l'interface de GitHub que d'en créer un vous-même avec git... : https://github.com/peter17/mediawiki-kipi
Bon courage ! Peter17 (talk) 13:28, 21 March 2012 (UTC)

Autres notes edit

À titre indicatif

J'ai forké la librairie kipi-plugins, en créant un dépôt GitHub (page utilisateur -> « new repository ») puis en me plaçant dans extra/kipi-plugins, j'ai fait :

git remote add github git@github.com:peter17/kipi-plugins.git
Ce que vous devez faire

Vous devez faire les opérations suivantes :

git remote add peter git@github.com:peter17/kipi-plugins.git
  • Saisir dans extra/kipi-plugins :
git remote add github git@github.com:<username>/kipi-plugins.git
  • Lorsque je fais des modifications :
git pull peter master
git push github master
  • De temps en temps :
git pull origin master
git push github master

Explications :

  • Le dépôt origin est git://anongit.kde.org/kipi-plugins
  • Le dépôt peter est git@github.com:peter17/kipi-plugins.git (mon dépôt)
  • Le dépôt github est git@github.com:<username>/kipi-plugins.git

Les commandes pull et push de git permettent de copier, fusionner et envoyer les commits sur le dépôt distant. Git devrait gérer cela sans trop de problèmes. Les informations ci-dessus sont récapitulées par la commande :

git remote -v

N'hésitez pas à poser des questions ici ou par courrier électronique. N'attendez pas d'être perdus !

Quelques conseils en vrac, pas utile maintenant mais pour les avoir sous la main si nécessaire :

  • peut-être se présenter sur la page du rapport de bug et les listes de diffusion, pour expliquer ce que nous voulons faire et obtenir des conseils ?
  • peut-être installer un wiki à nous où faire nos tests ?

Personnes ressources :

  • Gilles Caulier (développeur principal (lead developer) de digiKam)
  • Guillaume Paumier (employé de la Wikimedia Foundation)

GitHub dépôt de projet edit

Captures d'écran edit

Liens utiles edit