Wikinews:Fmbot
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 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