Wikinews:Fmbot

Une nouvelle de Wikinews, la source d'informations que vous pouvez écrire.

Cette page décrit le fonctionnement de Fmbot. Pour signaler les bugs et faire des suggestions, vous pouvez utiliser la page de discussion.

Présentation[modifier le wikicode]

Fmbot est un bot qui facilite la lutte contre le vandalisme. Son code est dérivé de CVUBot/pgkbot.

Il fonctionne sur le canal IRC #vandalism-fr-wn de Freenode.

Fmbot lit les modifications récentes via IRC (#fr.wikinews), les analyse, et envoie des alertes en temps réel pour les modifications suspectes.

Fmbot n'interagit pas directement avec Wikisource : il ne lit pas lui-même les pages de fr.wikinews.org, et ne les modifie pas non plus.

Les seules données dont dispose automatiquement le bot sont celles qui sont envoyées sur le canal IRC des modifications récentes : nom de l'utilisateur et de l'article, modification de la taille de l'article, commentaires. Plusieurs listes sont disponibles afin d'affiner le mécanisme de détection du bot ; ces listes sont modifiées par les opérateurs du bot.

Les listes[modifier le wikicode]

Fmbot en action

Fmbot sait gérer des listes d'utilisateurs :

  • liste blanche : utilisateurs dont les modifications n'entraînent jamais d'alerte ;
  • liste noire : utilisateurs dont les modifications entraînent toujours une alerte ;
  • liste grise : utilisateurs dont une modification a été récemment révoquée, pour lesquels les modifications suivantes entraînent une alerte pour une période donnée ;

ainsi que des listes d'articles :

  • liste d'articles à surveiller ;
  • liste d'articles à ignorer ;
  • liste d'images à surveiller ;

et des listes de mots :

  • liste de mots à surveiller dans les noms de nouveaux utilisateurs ;
  • liste de mots à surveiller dans les noms de nouveaux articles.

Des commandes envoyées au bot sur IRC permettent d'ajouter ou d'enlever des noms dans ces différentes listes.

Contrôle du bot[modifier le wikicode]

Pour pouvoir envoyer des commandes au bot, il faut soit avoir les droits de sysop sur le canal, soit être dans la liste des opérateurs du bot (liste aclo).

Le bot ne répond pas aux commandes des utilisateurs non reconnus. N'importe qui peut envoyer la commande : bot status.

Commandes usuelles[modifier le wikicode]

Le plus souvent, il s'agit d'indiquer au bot les utilisateurs à mettre sur liste blanche ou liste noire.

nom_utilisateur peut être un nom de compte enregistré ou une adresse IP

  • Pour rajouter un utilisateur sur liste blanche :
bot wl add nom_utilisateur
  • Pour rajouter un utilisateur sur liste noire :
salebot bl add nom_utilisateur r=raison

Raison est n'importe quelle chaîne de caractères.

  • Pour rajouter temporairement un utilisateur sur liste noire :
bot bl add nom_utilisateur x=durée r=raison

Durée est exprimée en heures

  • Pour obtenir de l'aide en direct :
bot help

En cas de problème[modifier le wikicode]

Si le bot ne parle pas, il est peut-être en mode silencieux, ou son canal de lecture ne fonctionne plus.

bot status

donne le status du bot,

bot speak

lui demande d'émettre ses alertes (s'il était silencieux),

bot reader reset

fait redémarrer le canal de lecture.

Toutes les commandes[modifier le wikicode]

:
Page d'aide : [[:w:Wikipédia:Salebot]]
:
Page d'aide pour CVUBot
help - cette page
help <commande/sujet> - aide détaillée
help events - liste des alertes
nhelp - aide envoyée par notice IRC
dest - sélectionne le canal de destination des alertes
wl - gestion de la liste blanche
al - gestion de la liste d'admins
bl - gestion de la liste noire
gl - gestion de la liste grise
bot - gestion de la liste de bots
cvp - articles à surveiller
cnvp - articles à ignorer
cvi - images à surveiller
bnu - liste de mots à surveiller dans les noms de nouveaux utilisateurs
bna - liste de mots à surveiller dans les noms de nouvelles pages
wheels - liste de mots à surveiller dans les déplacements d'articles
config - paramètres de configuration
bcl
status - statut du bot
reader - statut/remise à zéro du canal de lecture du bot
quiet - arrête les alertes
quietall - arrête les alertes sur tous les canaux
speak - démarre les alertes
info - infos sur le bot (version, propriétaire)
intel - informations sur un utilisateur
aintel - informations sur un article
iintel - informations sur une image
plugin - gestion des plugins (modules d'extension)
aclo - gestion des utilisateurs qui peuvent envoyer des commandes au bot
shutdown - arrête le bot
Voir aussi : http://fr.wikipedia.org/wiki/Utilisateur:Gribeco/salebot
:help
Pas d'aide supplémentaire.
Voir aussi:
http://fr.wikipedia.org/wiki/Wikipédia:salebot
http://en.wikipedia.org/wiki/User:Pgk/Pgkbot_Help
:plugin
Syntaxe :
plugin list|load|reload|unload <classe de plugin>

list - liste des plugins installés
load/reload/unload - gestion d'une classe
:status
Syntaxe :
status 

Rapporte le statut du bot (canal d'alerte et canal de lecture)
:quiet
Syntaxe :
quiet

Demande au bot de se taire : il n'envoie plus d'alertes et ne répond plus aux
commandes. Il continue d'accepter les commandes. Il répond toujours aux
commandes adressées à son nick au lieu de son pseudo (voir config).
:quietall
Syntaxe :
quietall [<texte>]

Demande au bot de se taire sur tous les canaux : il n'envoie plus d'alertes et
ne répond plus aux commandes. Il continue d'accepter les commandes. Il répond
toujours aux commandes adressées à son nick au lieu de son pseudo (voir config).
:speak
Syntaxe :
speak

Demande au bot de parler, le contraire de quiet.
:gl
Syntaxe :
gl DEL <nom>

Enlève un utilisateur de la liste grise.
:aclo
Syntaxe :
aclo ADD <nick IRC> [x=<nb heures avant expiration>] [r=<raison>]
aclo DEL <nick IRC>

Ajoute/enlève le nick IRC dans la liste des utilisateurs qui peuvent contrôler
le bot.
:wl
Syntaxe : 
wl ADD <nom> [x=<nb heures avant expiration>] [r=<raison>]
wl DEL <nom> 

Ajoute ou enlève ce nom à la liste blanche. Si le bot est paramétré avec -white,
les modifications de cet utilisateur ne causeront jamais d'alerte. Sinon, les modifications suspectes de cet utilisateur seront précédées par "whitelist".
Note : il est impossible d'obtenir le contenu de la liste blanche via IRC
(risque de floods trop important).
:al
Syntaxe : 
al ADD <nom> [x=<nb heures avant expiration>] [r=<raison>]
al DEL <nom> 

Ajoute ou enlève ce nom à la liste des admins.
Note : il est impossible d'obtenir le contenu de la liste des admins via IRC
(risque de floods trop important).
:bl
Syntaxe : 
bl ADD <nom> [x=<nb heures avant expiration>] [r=<raison>]
bl DEL <nom> 

Ajoute ou enlève ce nom à la liste noire.
Note : il est impossible d'obtenir le contenu de la liste noire via IRC
(risque de floods trop important).
:bot
Syntaxe : 
bot ADD <nom> [x=<nb heures avant expiration>] [r=<raison>]
bot DEL <nom> 

Indique que <nom> est ou n'est plus un bot.
Note : il est impossible d'afficher la liste des bots via IRC (risque de flood).
:cvp
Syntaxe : 
cvp ADD <article> [x=<nb heures avant expiration>] [r=<raison>]
cvp DEL <article> 

Ajoute/enlève un article à la liste des articles à surveiller.
Le bot envoie une alerte pour tous les changements sur ces articles.
Note : il est impossible d'afficher cette liste via IRC (risque de flood).
:cnvp
Syntaxe :
cnvp ADD <article> [x=<nb heures avant expiration>] [r=<raison>]
cnvp DEL <article>

Ajoute/enlève un article à la liste des articles à ignorer.
Le bot n'envoie jamais d'alerte si ces articles sont modifiés.
Note : il est impossible d'afficher cette liste via IRC (risque de flood).
:bnu
Syntaxe : 
bnu ADD <mot> [x=<nb heures avant expiration>] [r=<raison>]
bnu DEL <mot>

Ajoute/envlève un <mot> à surveiller dans la liste des nouveaux utilisateurs.
Si un utilisateur est créé dont le nom contient ce mot, le bot envoie une
alerte.
:bna
Syntaxe : 
bna ADD <mot> [x=<nb heures avant expiration>] [r=<raison>]
bna DEL <mot>

Ajoute/envlève un <mot> à surveiller dans la liste des nouveaux articles.
Si un article est créé dont le nom contient ce mot, le bot envoie une
alerte.
:wheels
Syntaxe : 
wheels ADD <mot> [x=<nb heures avant expiration>] [r=<raison>]
wheels DEL <mot> 

Ajoute/enlève le mot à la liste de surveillance des déplacements de page.
:config
Syntaxe : 
config list
config readmsgs
config <paramètre> <valeur>
config unkick <canal>
config getadmins
config getbots
config readcmds

list - liste des paramètres de configuration
readmsgs - le bot relit sa liste de messages
unkick - si le bot est kické d'un canal, il ne le rejoindra pas avant d'avoir
reçu cette commande ici.
getadmins - le bot récupère directement la liste des admins de WP
getbots - le bot récupère directement la liste des bots de WP
readcmds - le bot relit son fichier de gestion de commandes
Voir "help configitems" pour la liste des paramètres
:intel
Syntaxe :
intel <nom>

Affiche des informations sur cet utilisateur, dont les listes auxquelles il
appartient.
:aintel
Syntaxe :
aintel <nom>

Affiche des informations sur cet article, dont les listes auxquelles il
appartient.
:iintel
Syntaxe :
aintel <nom>

Affiche des informations sur cette image, dont les listes auxquelles elle
appartient.
:info
Syntaxe :
info

Affiche la version du logiciel du bot, ainsi que le nom de son propriétaire.
:dest
Syntaxe : 
dest ADD|DEL <canal> <alertes>
dest SWAP <canal> <canal>
dest SET <canal destination> <canal source>
dest LIST

Met à jour la liste des alertes que le bot envoie sur un canal IRC donné.
Si un nom de canal commence par !, le bot considère qu'il s'agit d'un
préréglage et il n'envoie pas de confirmation se la commande sur ce canal.
swap - échange les paramètres d'alerte entre deux canaux IRC.
List - montre la config actuelle des alertes.
Set - clone les paramètres d'un canal vers un autre.
"help events" donne la liste des alertes.
:events
Voici la liste des modifications que le bot peut surveiller, et pour lesquelles
il peut envoyer une alerte. Le bot n'est pas nécessairement configurer pour
suivre toutes ces modifications. Une modification ne sera envoyée qu'une fois,
même si elle provoque plusieurs alertes.
-admin - ignorer les modifications des admins
-white - ignorer les modifications des utilisateurs sur liste blanche
-bot - ignorer les modifications des bots
ip - toutes les modifs d'IP
iptmp - modifs d'IP sur les modèles
ipcat - modifs d'IP sur les catégories
black - toutes les actions des utilisateurs sur liste noire
newuser - création d'utilisateur
wwuser - création d'utilisateur contenant un mot à surveiller
bna - création d'articles avec des mots de la liste bna
bnu - création d'utilisateurs avec des mots de la liste bnu
block - blocage/déblocage d'utilisateur
delete - suppression de page
move - déplacement de page
upload - chargement d'images
wheeler - déplacement de page avec mot à surveiller
cvi - chargement d'images de la liste à surveiller
cvp - modification de pages surveillées
bigremove - suppression importante de texte (blanchiment ?)
bignew - copyvio potentielle (gros nouvel article)
tinynew - création de toutes petites pages
bigedit - charabia potentiel (gros ajout)
cmds - écouter les commandes sur ce canal
cmdsq - écouter en silence les commandes sur ce canal
blockconflict - conflit entre blocages d'admins
grey - modifications par des utilisateurs sur liste grise
:configitems
bignew - taille mini pour soupçonner une copyvio
tinynew - taille en-dessous de laquelle un nouvel article est suspect
bigedit - taille au-dessus de laquelle un ajout peut être du charabia
bigremove - taille critique pour soupçonner un blanchiment
pseudonym - pseudonyme du bot, en plus de son nick
startupquiet - ne pas envoyer d'alertes au démarrage
blockconflict - différence en heures entre deux blocages pour détecter les
conflits entre admins
glonrollback - durée en minutes mise sur liste grise d'un utilisateur après
une révocation d'un admin
glonbnu - durée en minutes de mise sur liste grise d'un utilisateur après
détection d'un mot de la liste bnu
bnubnasame - utiliser la même liste pour bna et bnu

Détails de fonctionnement[modifier le wikicode]

Fmbot est écrit en Python et utilise la bibliothèque Twisted. Il tourne sur le toolserver de Wikimedia Deutschland.

Mises à jour[modifier le wikicode]

  • 22 septembre 2006 : En attente de l'activation du compte sur le toolserver