Je ne suis pas un faux-nez, mais un bot dressé par Alphos.

Rendez-vous sur sa page de discussion pour discuter de TildeBot (ou d'autre chose si ça vous chante Émoticône ) avec lui.

Bouton d'arrêt d'urgence


Il ajoute "stop now"
à ma page d'arrêt d'urgence, comme indiqué ici
(ne fonctionne que pour les admins)

Fonctions modifier

Signatures oubliées modifier

Je vérifie toutes les modifications effectuées sur des pages de discussion, puis après un laps de temps d'au moins deux minutes, si l'utilisateur ayant effectué la dernière modification sur cette page n'a pas encore apposé de signature alors qu'il en fallait une (et que personne n'est passé derrière lui), j'en appose une pour lui, à moins qu'il ait spécifiquement demandé de ne pas en ajouter.

Au bout de quelques signatures oubliées en 24 heures glissantes par un même utilisateur, le bot placera aussi un message sur sa page de discussion.

La détection des signatures est pour le moment limitée au format suivant, qui couvre cependant une extrême majorité des signatures :

Utilisateurs enregistrés

[[Lien vers PU]] ( [[Lien vers contribs]] )
{ [[Lien vers PdD]] ou [[Lien vers mail]] }
Un lien vers la PU est nécessaire,
éventuellement suivi d'un lien vers les contributions,
le tout suivi soit d'un lien vers la PdD ou la fonction d'envoi de courrier ;
les liens supplémentaires avant ou après ce motif ne rentrent pas en compte dans la reconnaissance.

Les liens vers les sous-PU et les sous-PdD sont reconnus de la même manière que les liens ;
toutes les combinaisons (liens iw, il, sous-pages pour PU et PdD, ...) sont permises et reconnues
Les liens interwikis et interprojets sont permis et parfaitement reconnus ;
les liens de la forme [[Image:image.jpg|<taille>|link=<lien vers la page>]] sont permis et parfaitement reconnus aussi ;
les liens doivent être séparés les uns des autres d'au plus 50 caractères.

IPs

[[Lien vers contribs]] [[Lien vers PdD]]
Un lien vers la liste des contributions est nécessaire, suivi d'un lien vers la page de discussion ;
les liens supplémentaires avant ou après ce motif ne rentrent pas en compte dans la reconnaissance.

Les liens interwikis et interprojets sont permis et parfaitement reconnus ;
les liens de la forme [[Image:image.jpg|<taille>|link=<lien vers la page>]] sont permis et parfaitement reconnus aussi ;
les liens doivent être séparés les uns des autres d'au plus 50 caractères indifférents (modèles, wikicode, html, etc...).

Le pseudonyme du contributeur est pris en compte dans les liens internes formant la signature, mais il peut l'être sous plusieurs de ses formes :

  • sous sa forme la plus simple, à savoir celle choisie lors de l'inscription ;
  • avec les espaces remplacées par des underscores _ ;
  • sous sa forme la plus simple URLencodée.

La première lettre peut être majuscule ou minuscule avant l'éventuel encodage sans modifier la reconnaissance. Les autres lettres doivent correspondre au pseudonyme du contributeur, exactement comme le fait MediaWiki.

Les liens dans leurs versions française, anglaise, ou allemande, sont reconnus.

"Et si je ne veux pas qu'il passe derrière moi ?" modifier

Ajoutez simplement !nosign! dans le commentaire d'une de vos modifications successives sur cette page, promis je toucherai à rien !

Si vous êtes enregistré, vous pouvez aussi modifier cette option de manière "permanente" dans vos options pour TildeBot, accessibles ici.

Cas des pages de discussion d'utilisateurs enregistrés modifier

Pour ceux d'entre vous ne souhaitant pas que je touche à leur page de discussion lorsqu'un oublieux passe, ne vous inquiétez pas non plus, je sais faire aussi.

Notez bien que si vous oubliez vous-même d'apposer une signature plusieurs fois en 24 heures et que je dois donc vous envoyer un message, ce n'est pas cette option qui est prise en compte.

Pages avec des "prérequis" modifier

Je fais là référence à celles nécessitant des participants d'être inscrits depuis une durée déterminée et/ou d'avoir un nombre de contributions suffisant.

Eh bien ça aussi je sais faire. Je vérifie à chaque page ayant ces caractéristiques[1] que l'utilisateur s'il est enregistré a assez de contributions dans l'espace principal, et qu'il s'est inscrit depuis suffisamment longtemps.

Si ce n'est pas le cas, j'ajoute un modèle correspondant après le message que le "débutant" a ajouté ; je ne le fais cependant pas dans le cas des PàS où le débutant est l'auteur de la page proposée à la suppression.

Sur les pages trop anciennes (ouverte depuis plus longtemps {que leur durée de traitement normale + 50% avec un minimum de 15 jours, soit 2 semaines et 1 jour}), pour simplifier celles dont la procédure a été rouverte, cette fonction se désactive toute seule.

Indentation modifier

Enfin, si je passe derrière un utilisateur - que ce soit pour ajouter sa signature ou signer son manque de contributions ou sa durée de participation trop courte -, je peux aussi me charger de corriger l'indentation (celle qu'on ajoute avec *#:) que cet utilisateur a oubliée.

Je ne le fais cependant pas si ce doit être ma seule modification sur la page.

Anatomo-pathologie modifier

Anatomie modifier

Alphos m'a conçu en PHP, en utilisant :

  • deux classes ou paquets libres :
    • Snoopy pour les relations avec les serveurs Wikipédia
    • Text Diff pour le traitement des modifications elles-mêmes
  • une fonction PHP libre :
    • xml2array pour rendre les informations reçues depuis les serveurs Wikipédia plus facilement traitable[2]
  • deux utilitaires *NIX qui lancent et/ou vérifient l'état des trois pôles listés plus bas :

Je fonctionne en plusieurs pôles, chacun ayant sa fonction bien à lui :

  1. un pôle lancé toutes les quelques minutes vérifie que je suis bien connecté. Sinon, il me reconnecte.
  2. un pôle tournant en permanence récupère les modifications récentes. Lui n'a pas besoin d'être connecté, vu qu'il n'en récupèrera sans doute jamais plus de 500 en un coup (ce qui est la limite sans le botflag), et qu'il ne fait aucune modification
  3. un pôle tournant en permanence prend alors en charge avec un délai de 2 minutes ce que le pôle 2 lui transmet, et effectue éventuellement les modifications s'avérant nécessaires. C'est aussi ce pôle qui vérifie qu'on a pas demandé d'arrêt d'urgence, et ce avant chaque modification

"C'est très bien tout ça, mais pour le code source ?" modifier

Pour l'instant, il n'est pas public.

Il le deviendra cependant prochainement, après quelques semaines de "tests secondaires"[3] et de corrections de bugs auxquels mon dresseur n'aurait pas pensé pendant le développement.

Pathologie modifier

Bon, je l'avoue, les bugs ça arrive, et il se peut que mon dresseur et les quelques testeurs ne les aient pas tous trouvés. Eh oui, je débute moi aussi...

Pour signaler un bug, merci de passer par la page idoine, en utilisant le modèle adapté, {{:Utilisateur:TildeBot/Sugg}}.

Pour voir si je fonctionne correctement, vous pouvez le vérifier sur cette page. Elle donne aussi quelques informations sur mon fonctionnement actuel, en particulier sur la taille de ma base de données.

Pathologie sévère modifier

Si je ne fais vraiment que des bêtises, un bouton d'arrêt d'urgence permet de m'arrêter rapidement et "définitivement", jusqu'à ce qu'on me relance avec l'autorisation de repartir (et seulement dans ce cas). Cette fonction n'est accessible qu'aux administrateurs et à mon dresseur : vous pouvez essayer de l'employer si ça vous chante, mais je n'en tiendrai aucun compte si vous n'êtes pas admin ou Alphos.

En cas d'arrêt d'urgence, tous mes processus sont arrêtés, je ne récupère même pas de RC, rien de rien de rien.

Changelog modifier

Suggestions et bugs modifier

Notes modifier

  1. parmi celles que mon dresseur et Coyau (d · c · b) ont relevées, la liste complète est disponible ici.
  2. SimpleXML semble plus lent que cette fonction et un code l'utilisant aurait été plus lourd et moins rapide...
  3. J'ai déjà été lourdement testé à tous mes niveaux, certes sans modifications effectuées sur Wikipédia, mais avec des "résultats" (plus précis que de simples modifications sur WP) enregistrés localement ; mais rien ne vaudra des tests en grandeur réelle où vous cherchez à me mettre dans l'embarras ^^
  4. ... ce qui m'a semblé un délai honnête entre l'ouverture d'une procédure et sa réouverture Émoticône Ce minimum de 15 jours (2 semaines et 1 jour) s'avèrera je pense utile pour les PàS qui peuvent parfois durer plus qu'une semaine
  5. notez bien que dans ce second cas, la signature ainsi incluse ne peut pas elle-même contenir de modèle : si c'était le cas, la signature par défaut serait ajoutée
  6. Merci d'utiliser le titre absolu de la page à inclure et pas un chemin relatif comme {{../Sugg}} afin d'éviter les problèmes associés aux chemins relatifs sur la page utilisateur du bot où ce tableau est inclus.