In other languages:


Pywikipedia désigne un ensemble de scripts qui ont pour but de faire accomplir des tâches à des bots, sur Wikipédia ou d'autres projets de la Fondation Wikimédia. Ces scripts ont été écrits par plusieurs adeptes du langage Python. Sur cette page se trouvent les informations générales pour ceux qui souhaitent utiliser ce type de bot.

Avertissement

modifier

Pywikipedia est une bibliothèque du langage de programmation Python permettant d'éditer les wikis MediaWiki. Est distribué avec cette bibliothèque un ensemble de scripts, prêts à l'usage, écrits pour effectuer des tâches de maintenance courantes, le plus connu d'entre eux étant interwiki.py, le « bot interwiki ».

Pywikipedia n'en reste pas moins un outil de programmation, un ensemble de modules et de fonctions Python destinés à des programmeurs. Il est fortement déconseillé de s'improviser dresseur d'un robot Pywikipedia sans disposer au préalable de connaissances et d'expériences de la programmation.

Quel que soit l'état de marche de la bibliothèque, en tant que programmeur, vous serez tenu en premier lieu responsable de toute modification erronée effectuée par votre robot : il est donc plus que conseillé d'être en mesure de comprendre les grandes lignes de fonctionnement de la bibliothèque Pywikipedia avant d'envisager de l'utiliser.

De la même manière, vous êtes responsable des tests de vos programmes et de la mise à jour régulière de Pywikipedia.

Téléchargement

modifier

Pour utiliser un bot, vous avez besoin de télécharger le logiciel du bot lui-même, ainsi que Python.

Python est par défaut installé sur certaines distributions du système Unix, et dans ce cas il est inutile de le faire (il peut toutefois être nécessaire de mettre Python à jour si vous avez une version très ancienne). Dans tous les autres cas, Python est téléchargeable ici. Python fonctionne avec toutes les plates-formes courantes (Unix, Linux, Mac, Windows).

Versions

modifier

Pywikipedia fonctionnera avec Python 2 sur les versions antérieures à juin 2020, sinon il faudra obligatoirement Python 3.

Pywikipedia

modifier

Une version mise à jour toutes les nuits est disponible sur http://tools.wmflabs.org/pywikibot/

À tout instant, la version de développement est disponible via SVN (ou visible à l'adresse http://svn.wikimedia.org/viewvc/pywikipedia/trunk/pywikipedia/ si vous n'avez pas de client SVN installé). Un système Unix est équipé d'un client SVN d'office, et pour Windows TortoiseSVN est recommandé.

Pour télécharger la dernière version du bot dans une interface système Unix, placez-vous dans le dossier dans lequel vous voulez installer le dossier pywikipedia contenant tous les fichiers puis utilisez la commande suivante :

svn checkout http://svn.wikimedia.org/svnroot/pywikipedia/trunk/pywikipedia/ pywikipedia

Pour des mises à jour, placez-vous dans le répertoire pywikipedia et tapez :

svn update

Une fois que vous êtes en possession du bot, tout ce que vous avez à faire est de le placer quelque part sur votre ordinateur, car il n'a pas besoin d'installation supplémentaire.

Si vous avez l'intention de vous servir du bot, il serait souhaitable de vous inscrire à la liste de diffusion sur les bots (voir ici). À chaque fois qu'un fichier du logiciel est modifié, un courriel est envoyé à la liste, ainsi vous saurez quand il est nécessaire de mettre à jour la version la plus récente.

Si vous avez changé le bot et désirez envoyer un patch au fournisseur,

  1. mettez à jour la version actuelle (cela fusionnera vos changements avec les améliorations déjà apportées par le dépôt SVN),
  2. tapez
svn diff > patch.diff

Vous pouvez envoyer le fichier patch.diff aux développeurs, en leur demandant d'inclure les changements (peut-être faudrait-il relire le diff avant de l'envoyer). Soumettre les patchs ici (Tracker → Patches).

Préparation

modifier

Assurez-vous que votre bot a été autorisé par la communauté du wiki dans lequel vous allez vous en servir. Les conditions requises pour l'utilisation d'un bot varient suivant les projets : dans certains projets, vous aurez besoin d'annoncer votre bot en avance et d'obtenir la permission avant de commencer à vous en servir; dans d'autres, vous êtes totalement libres de vous en servir. Pour Wikipédia en français, il est préférable de lui faire faire au minimum une cinquantaine de modifications. Ainsi, la communauté sera à même de mieux juger de son utilité.

À l'aide de votre navigateur web, créez un identifiant et un mot de passe pour le bot. Il est recommandé d'utiliser un nom qui permette d'identifier facilement qu'il s'agit d'un bot, ainsi que son propriétaire. Une méthode courante est d'utiliser le nom de votre compte et d'y ajouter le mot « bot » à la fin, mais cette convention n'est pas utilisée pour tous les bots.

Sur Wikipédia en français, les bots devraient être déclarés sur la page Wikipédia:Bot, leur page utilisateur devrait également contenir une inclusion du modèle {{Bot}}, les utilisateurs ayant le statut de bot sont listés ici.

Ensuite, dans le répertoire du bot, créez un fichier user-config.py contenant cette ligne :

mylang = 'xx'

xx désigne le code du langage sur lequel vous comptez utiliser le bot (par exemple 'fr' pour le français). Si vous souhaitez travailler sur plusieurs langues, choisissez la principale, et lisez (en) mw:Manual:Pywikipediabot/Basic use pour savoir comment travailler dans d'autres langues. Si vous ne travaillez pas sur Wikipédia, vous devrez ajouter :

family = 'nomfamille'

où nomfamille désigne le nom du site sur lequel vous travaillerez. Cela peut être Wiktionnaire, Wikilivres, Wikiquote, ou encore des projets distincts de Wikimedia, comme Wikitravel. Si vous travaillez sur Commons, spécifiez commons à la fois comme langage et comme famille.

D'autre part, votre user-config.py doit définir votre nom d'utilisateur. Par exemple, si vous souhaitez travailler sur la Wikipédia en langue suédoise, et que vous avez créé un compte pour le bot avec le nom « ExempleBot », ajoutez la ligne suivante :

usernames['wikipedia']['sv'] = 'ExempleBot'

Si vous travaillez sur plusieurs wikis, vous pouvez également spécifier plusieurs noms :

usernames['wikipedia']['de'] = 'BeispielBot'
usernames['wikipedia']['en'] = 'ExampleBot'
usernames['wiktionary']['de'] = 'BeispielBot'

Pour que les caractères non ASCII n'apparaissent pas dans votre terminal sous la forme de points d'interrogations (« ???? »), vous devez spécifier l'encodage utilisé par votre système (utf-8, iso 8859-1,...):

console_encoding = 'utf-8'

Exemple de fichier

modifier
mylang = 'fr'
usernames['wikipedia']['fr'] = 'Probot'
console_encoding = 'utf-8'

Sélection et lancement d'un script pour le bot

modifier

Maintenant vous êtes prêt à utiliser le bot. Vous devez pour ce faire ouvrir une invite de commandes de votre système d'exploitation.

Sous Windows

modifier
 
Pour configurer un raccourci démarrant dans le répertoire de Pywikipedia il faut faire un clic droit dessus et ajouter le chemin dans les deux champs des propriétés : cible et démarrer dans.

Sur Windows, vous l'obtiendrez en ouvrant le menu de démarrage, en cliquant sur « Exécuter », et en tapant « cmd » (ou « command.com » sur les anciennes versions de Windows) dans le champ affiché.

Allez dans le répertoire dans lequel vous avez enregistré les fichiers du robot (en utilisant la commande « cd »). Vous pouvez maintenant lancer n'importe quel script, en tapant simplement « python.exe nomduscript.py » (si vous avez installé Python dans le même répertoire que pywikipedia) ou « nomduscript.py » suivi des paramètres éventuels.

Sous Linux/Unix

modifier

Ouvrez un terminal puis déplacez-vous dans le répertoire dans lequel vous avez enregistré les fichiers du robot. Vous pouvez maintenant lancer n'importe quel script ici, en tapant « python nomduscript.py » ou «./nomduscript.py » suivi des paramètres éventuels

Les scripts

modifier

Avant de commencer véritablement à faire travailler le bot, lancez le script login.py. Un mot de passe vous est alors demandé. Utilisez le mot de passe choisi lors de la création du compte du bot. Le bot ne peut pas travailler sans être identifié. À moins que vous ne changiez le mot de passe, vous n'aurez normalement à lancer ce programme qu'une seule fois, car le bot ne se déconnecte pas.

Maintenant vous pouvez utiliser l'un des scripts pour le bot. Ci-dessous se trouve la liste des scripts (d'autres peuvent apparaître au fil des mises à jour), avec les liens vers leur description :

Principaux scripts :

Autres scripts :

Programmes auxiliaires :

La seule façon d'être sûr du fonctionnement attendu d'un script est de lire l'aide, en anglais, dudit script : celle-ci sera toujours placée en en-tête des scripts.

Arguments des lignes de commande des scripts

modifier

La plupart des scripts pour les bots ont leurs propres arguments de lignes de commandes, qui sont expliquées dans leur page de description respective (ou dans leur code source). Cependant, tous les scripts, à moins que le contraire ne soit spécifiquement déclaré, acceptent également les arguments suivants :

  • -cosmeticchanges : Basculez les changements de type cosmétique.
  • -help : Affiche une liste des principaux arguments pour les scripts (cette même liste), suivie de l'aide spécifique au script sélectionné, si celle-ci est disponible.
  • -lang:xx : Fixe la langue du projet sur lequel vous souhaitez travailler, en utilisant le code de la langue. Cette commande outrepasse la configuration déjà effectuée dans user-config.py.
  • -family:xyz : Fixe la famille du wiki sur lequel vous souhaitez travailler (par exemple, Wikipédia, Wiktionnaire et Wikitravel). Cette commande outrepasse la configuration déjà effectuée dans user-config.py.
  • -log : Active la fonction qui enregistre le journal de toutes les opérations effectuées. Les opérations seront enregistrés dans le sous-dossier logs.
  • -log:xyz : Active la fonction qui enregistre le journal de toutes les opérations effectuées en utilisant xyz comme nom de fichier.
  • -nolog : Désactive la fonction qui enregistre le journal de toutes les opérations effectuées (si elle était activée par défaut).
  • -putthrottle:nn : Règle le temps minimum (en secondes) d'attente du script entre les pages sauvegardées.

Par exemple, python nomduscript.py -family:wiktionary lancera le script nomduscript sur les articles du Wiktionnaire, outrepassant la famille qui a été choisie par défaut dans le fichier de configuration.

Enregistrer un bot

modifier

Si vous utilisez un bot souvent, celui-ci encombrera les modifications récentes. Pour éviter cela, vous pouvez demander l'enregistrement de votre bot en tant que tel. Dans ce cas, celui-ci n'apparaîtra plus dans les modifications récentes à moins que l'utilisateur qui les visualise choisisse justement de les afficher.

Sur Wikipédia en français, il suffit d'inscrire le bot à un vote sur Wikipédia:Bot/Statut. Si le vote est favorable au bout d'au moins sept jours, vous pouvez demander à un Bureaucrate de donner le statut au bot.

Il est recommandé d'enregistrer votre bot dès lors que celui-ci modifiera de nombreuses pages d'une seule traite.

Que votre bot ait le status ou pas, il est demandé d'apposer le modèle {{Bot}} sur sa page utilisateur, ce modèle permet entre autres de catégoriser automatiquement cette page.

La liste complète des bots actuellement enregistrés sur Wikipédia en français est disponible sur la page Spécial:Listusers/Bot.

Utilisation avancée du bot

modifier

S'il y a une fonction que vous souhaitez faire exécuter par un bot, qui n'est pas encore rendue possible par l'un des scripts existants, vous pouvez demander à d'autres dresseurs de bots ou l'un des programmeurs d'écrire la fonction pour vous. Ou encore mieux, vous pouvez essayer d'améliorer les bots vous-même. Python est un langage simple et facile d'accès. Nous vous en serions reconnaissants.

Utiliser un bot pour un wiki local

modifier

Consultez cette page (en anglais) pour savoir comment configurer un bot pour l'utiliser sur votre propre projet fonctionnant avec le logiciel mediawiki.

Introduction sur la création de votre propre bot

modifier

Voici quelques astuces très basiques pour commencer à écrire votre propre bot :

  • Assurez-vous d'avoir réglé votre fichier user-config.py (voir plus haut).
  • Utilisez import wikipedia pour avoir accès à la structure de pywikipedia.
  • Pour récupérer une page, utilisez la commande suivante, où nomDePage est, par exemple, « Wikipédia:Bot » ou « Inde » :
site = wikipedia.getSite()
page = wikipedia.Page(site, nomDePage)
text = page.get()
  • Pour mettre à jour une page, utilisez :
page.put(nouveauTexte, commentaire)
  • Consultez quelques fichiers pywikipedia pour trouver d'autres idées. replace.py est relativement simple à lire même si vous êtes néophyte sur pywikipedia.
  • Vous trouverez toutes les méthodes de Page disponibles dans le fichier wikipedia.py.
  • La traduction de la documentation complète de la bibliothèque se trouve ici : Aide:Pywikipedia/manuelFR.

Voir aussi

modifier
  NODES
Note 1
USERS 1