Feature - Fonctionnalité #4626
Connecteur abuledu-data -> mediawiki pour publier en même temps sur commons et abuledu-data
0%
Description
C'est le projet en cours, comment simplifier la vie des personnes qui publient des ressources sur data pour que ça soit aussi publié sur wikimedia commons
Historique
#1 Mis à jour par Eric Seigne il y a environ 9 ans
Mise en place d'un mediawiki pour tester dans notre coin sans pourrir la base de commons : http://www.abuledu.org/tmp/mediawiki/index.php/Fichier:20150628-moalboal-324.jpg
Deux choix sont possibles: utiliser une couche php ou C++ pour connecter data -> commons. Pour l'instant je garde les deux implémentations de front pour tester jusqu'au bout mais il me semble que c'est clairement plus efficient de le faire en php pour que la bande passante de l'utilisateur ne soit pas sollicitée deux fois pour pousser le fichier sur deux serveurs, l'utilisateur envoie sa ressource sur data et ensuite le php de data l'envoie sur wikimedia commons.
#2 Mis à jour par Eric Seigne il y a environ 9 ans
L'API de mediawiki est dispo : http://abuledu.org/tmp/mediawiki/api.php?action=query&list=allcategories&format=xml
- https://commons.wikimedia.org/w/api.php?action=query&list=allcategories
- https://commons.wikimedia.org/w/api.php?action=query&list=allcategories&format=xml
- https://commons.wikimedia.org/wiki/Commons:API
- https://commons.wikimedia.org/wiki/Commons:API/MediaWiki
- https://commons.wikimedia.org/w/api.php?action=query&titles=Image:Commons-logo.svg&prop=categories
Téléchargement en cours de la base des catégories.
#3 Mis à jour par Eric Seigne il y a presque 9 ans
Au lieu de télécharger toutes les catégories de wikimédia commons pour faire des requettes en base de donnée locale sans solliciter les serveurs de la fondation par la suite je change de méthode car la base des catégories de wikimédia est trop grosse (j'en suis à 3 jours de téléchargement pour plusieurs millions d'entrées):
- le serveur data reçoit une nouvelle contribution avec la case cochée "publier sur wikimédia commons"
- data fait alors autant de requettes sur la base de données locales qu'il n'y a de catégories pour trouver les noms ad-hoc chez commons
- quand le résultat est nul alors on requête commons pour savoir si cette catégorie existe et le cas échéant on l'ajoute à notre table de "cache local" (pour éviter de requeter le serveur la prochaine fois)
- et c'est tout :)
Le meilleur des deux mondes à priori