Manual:Pywikibot/BotPasswords/fr
Outdated translations are marked like this.
En tant qu'alternative plus simple (mais moins sûre) à OAuth, MediaWiki permet aux utilisateurs de robots d'utiliser des mots de passe bot afin de limiter les autorisations accordées aux robots qui n'ont pas besoin de s'enregistrer.
En utilisant BotPasswords, chaque instance reçoit un login_name de la forme <nom d'utilisateur>@<suffixe du robot>
et un mot de passe.
Cette combinaison permet uniquement d'accéder à l'API, et non à l'interface web normale.
Prérequis
- Le wiki sur lequel vous souhaitez utiliser le bot doit être équipé de MediaWiki > 1.27.
- Dans la plupart des installations, le logiciel client doit être configuré pour utiliser le protocole
https
.
Configuration
- Connectez-vous sous votre compte bot (s'il est différent de votre compte principal).
- Générer un mot de passe pour le bot sous Special:BotPasswords (ou la page correspondante sur un autre wiki) :
- Remplir un « nom de robot », qui est le suffixe qui sera ajouté à votre nom d'utilisateur. Par exemple « replace-on-tools ».
- Accorder les droits correspondants. Pour la plupart des scripts Pywikibot, édition de gros volumes, modifier des pages existantes et créer, modifier et déplacer des pages sont suffisants. Si vous souhaitez également téléverser des fichiers avec le bot, ajouter téléverser de nouveaux fichiers et téléverser, remplacer et déplacer des fichiers. Laisser les restrictions d'utilisation telles quelles. Cliquer sur « créer ».
- Vous recevrez un message du type Le nouveau mot de passe pour se connecter avec Valhallasw@my-botpassword-name est mysupersecretbotpassword Ne fermez pas cette fenêtre avant d'avoir enregistré le mot de passe dans votre fichier de mots de passe (voir ci-dessous)
- en exécutant le script
generate_user_files.py
-
- Ce script peut gérer pour vous la création du fichier
user-password.py
. Exécuter simplementpython pwb.py generate_user_files
, et suivre les indications. Après le choix du wiki, et avoir saisi votre nom d'utilisateur, vous devrez saisir le nom/mot de passe créé sur Special:BotPasswords à l'étape précédente. Le nom est celui que vous avez choisi, le mot de passe est celui donné par le site web.
- Ce script peut gérer pour vous la création du fichier
- ou créer manuellement le fichier
user-password.py
-
- Dans le répertoire où se trouve
user-config.py
, créer un fichier appeléuser-password.py
et rendez-le non lisible pour les autres (chmod 600 user-password.py
) - Dans le fichier user-password.py, ajouter la ligne
('Valhallasw', BotPassword('my-botpassword-name', 'mysupersecretbotpassword'))
- Dans user-config.py, ajouter la ligne
password_file = "user-password.py"
. À noter que vous ne devriez avoir qu'un seul nom d'utilisateur dans ce fichier et omettre le suffixe « @my-botpassword-name ».
- Dans le répertoire où se trouve
- vérifier que la configuration fonctionne
-
- Exécuter
python pwb.py login
. Pywikibot devrait maintenant se connecter automatiquement en utilisant le mot de passe du bot :
- Exécuter
Logging in to meta:meta as Valhallasw@my-botpassword-name Logged in on meta:meta as Valhallasw.
format d'entrées de password_file
Les entrées dans user-password.py
doivent être des tuples avec 2, 3 ou 4 éléments :
('Username', BotPassword('BotPasswordName', 'Password'))
('FamilyName', 'Username', BotPassword('BotPasswordName', 'Password'))
- Utilisé lorsque l'entrée ne devrait être utilisée sur un
FamilyName
spécifique, par exemplewikipedia
ouwikisource
.
- Utilisé lorsque l'entrée ne devrait être utilisée sur un
('SiteCode', 'FamilyName', 'Username', BotPassword('BotName', 'Password'))
- Utilisé lorsque l'entrée ne devrait être utilisée sur un
FamilyName
spécifique et unSiteCode
, par exemplewikipedia
eten
.
- Utilisé lorsque l'entrée ne devrait être utilisée sur un
Les entrées qui viennent plus tard annulent celles qui les précèdent. Par exemple, si le fichier de mots de passe contient :
Alors, l'entrée pour BotPassword sera utilisée pour https://en.wikipedia.org/.
('Username', 'AccountPassword')
('en', 'wikipedia', 'Username', BotPassword('BotName', 'Password'))