User:Jean-Frédéric/digiKam

Sujet
« 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é.

Done

 * ✅ naviguer sur Commons et s'essayer à l'import de photos pour comprendre son fonctionnement
 * ✅ installer une distribution Linux avec le dernière version de digiKam et importer des photos pour comprendre son fonctionnement
 * ✅ cloner le code source du plugin actuel sur GitHub
 * ✅ apprendre à compiler et à modifier le plugin Kipi
 * proposer des maquettes (regarder du côté de Commonist et de l'interface wizard de Commons)
 * ✅ ajouter  au contenu de la page de description sur Commons
 * ✅ déplacer les options de redimensionnement vers un second onglet (avec les autres options « avancées »)
 * ✅ 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)
 * ✅ choix du wiki de destination dans une liste déroulante avec possibilité d'ajouter son propre wiki (nom, url de api.php) − Nathan
 * ✅ le login semble ne pas fonctionner sur Commons (fonctionne sur test.wikipedia.org) ( Le login sur Commons fonctionne, l'upload ne fonctionne pas chez moi) (ILkO)

Bugs

 * Syntaxe page de description Normalement ✅ à tester
 * prévenir lors de l'écrasement d'un fichier existant / importer une seconde fois ne prévient pas que l'image existe déjà
 * Dans le plugin, taper “Enter” quitte le plugin
 * redimensionnement KO dû à la modification du titre de l'image
 * Gestion du titre de l'image
 * ajouter l'altitude à la geo-localisation
 * caractère spéciaux dans la localisation "�"

Fonctionnalités importantes

 * pouvoir choisir et éditer pour chaque image :
 * One: ✅ All: ✅ les catégories (pré-remplies avec les étiquettes digiKam)
 * One: ✅ All: ✅ les coordonnées géographiques (pré-remplies avec les éventuelles données EXIF ou les coordonnées digikam)
 * One: ✅ All: ✅ le nom du fichier de destination (pré-rempli avec le nom du fichier)
 * One: ✅ All: ✅ la date et l'heure (pré-remplies avec les éventuelles données EXIF)
 * One: ✅ All: ✅ les descriptions (pré-remplies avec les descriptions digiKam en chaque langue)
 * One: ✅ All: matcher les catégories avec les étiquettes (désélectionner automatiquement les catégories parentes d'autres pour ne conserver que les catégories les plus précises ?)
 * Pré-requis :
 * ✅ Stocker en mémoire les informations d'upload associées à chaque fichier.
 * rédiger une documentation
 * détailler davantage les erreurs de login

Features pas critiques

 * Vérifier la présence de duplicatas distants (via SHA1) − expliqué sur commons:Commons:Guide_to_batch_uploading
 * 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
 * ✅Modification en masse des information d'upload des images via un "Apply to all" sur chaque champ ("apply to all" remplacé par un apply de la séléction)
 * Ajouter le nom du wiki sur lequel on est actuellement connecté (avec la favicon ?)
 * autoriser le redimensionnement par un pourcentage de la taille initiale

Compilation et installation
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/NathanDM/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
En pratique, l'installation de digikam par cette méthode suffit pour le développement du plugin mediawiki ; en effet, la commande  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  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
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, j'ai fait : git remote add github git@github.com:peter17/kipi-plugins.git
 * À titre indicatif

Vous devez faire les opérations suivantes : git remote add peter git@github.com:peter17/kipi-plugins.git git remote add github git@github.com: /kipi-plugins.git git pull peter master git push github master git pull origin master git push github master
 * Ce que vous devez faire
 * Vous rendre à la page https://github.com/peter17/kipi-plugins et cliquer sur « Fork »
 * Saisir dans  :
 * Saisir dans  :
 * Lorsque je fais des modifications :
 * De temps en temps :

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: /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êpot de projet

 * https://github.com/NathanDM/kipi-plugins

Liens utiles

 * digiKam
 * KIPI plugins (Archive)
 * Guillaume's old roadmap
 * http://www.gpaumier.org/blog/297_digikam-the-perfect-tool-for-wikimedia-commons-photographers/ (description du projet)
 * https://projects.kde.org/projects/extragear/libs/libmediawiki (librairie KDE/MediaWiki)
 * http://community.kde.org/IUP_ISI/MediaWiki-Silk : documentation du projet réalisé par les étudiants de l'IUP-ISI; inclut une vision du projet
 * https://bugs.kde.org/show_bug.cgi?id=206842 (description de l'état d'avancement du projet, rapport de bug ouvert par Peter en 2009).
 * http://websvn.kde.org/branches/work/~cgilles/wikimedia/ (état du code source en 2009)
 * https://projects.kde.org/projects/extragear/graphics/kipi-plugins/repository/revisions/master/show/mediawiki (état actuel du code source)
 * http://mail.kde.org/pipermail/digikam-users/2011-May/013074.html (liste de diffusion de digikam)
 * http://mail.kde.org/pipermail/digikam-users/2011-November/015154.html (liste de diffusion de digikam)
 * https://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/UploadWizard/ (interface d'import actuelle de Commons)