Dans un grand élan de motivation, j'ai donc pris mon après midi d'hier (vendredi de RTT), pour réviser mes bases python, et étudier l'interface de scripting de weechat, et j'ai pondu un premier jet de mon scanneur de clones, disponible là :

http://files.spiderou.net/scripts_weechat/clonescan.py, ainsi que sur la page des plugins du site de weechat

Il propose deux fonctionnalités :

Un scan ponctuel :

/clones [#chan]

qui scanne tous les utilisateurs du salon passé en paramètre, ou du salon courrant si rien n'est passé en paramètre

Un scan onjoin, qui détecte à chaque fois que quelqu'un rejoint un salon si ce quelqu'un a des clones déjà présents sur le salon, cette fonctionalité est désactivée par défaut, et se controle via :

/autoclones [enable|disable|show]

qui active ou désactive ce scan automatique, bien sur, show (ou tout autre paramètre, voire aucun) montre le reglage actuel

L'affichage est encore relativement brut, j'essayerais de travailler un peu dessus à l'occase

Il reste un petit bug, mais je n'ai pas le courage de m'y attaquer pour le moment, en effet, le découpage d'une chaine est gênée par les adresses IPv6, les personnes en IPv6 ne sont donc pas scannées on join, et un message d'erreur s'affiche dans le buffer du serveur

Merci de me rapporter le moindre fonctionnement anormal, ainsi que la moindre proposition d'amélioration, je ferais de mon mieux pour m'en occuper au plus vite :)

J'espère que ce petit bout de script vous sera utile, en tout cas, il a déjà fait au moins un heureux : moi ;)


Mise à jour du 2006-11-12

(12 ou 13, selon si on prend l'heure à laquelle j'ai cliqué sur "éditer" ou l'heure à laquelle je vais cliquer sur le bouton "valider", bref ...)

Juste une petite mise à jour pour faire part de l'avancement du script : je suis en train d'implémenter les ignores sur le scan-on-join (ignorer les clones sur un serveur, sur un chan, peut-être d'autres ...) mais je me heurte à des gros problèmes de stoquage des réglages par l'API de scripting python, ce qui va ralentir énormément la sortie de la 0.2 que j'espèrais sortir très tôt ...

En attendant, je met donc une version estampillée 0.1b sur mon hébergement perso (pour rappel : http://files.spiderou.net/scripts_weechat/clonescan.py) qui corrige le bug du scan-on-join des IPv6, une bête réorganisation du découpage de l'adresse sera venue à bout de ce petit bug :)

N'hésitez pas à proposer vos idées, ça me motivera peut-être un peu à avancer dans mon développement, j'en ai déjà 2-3, qui seront pour la 0.3, voire même la 0.2 si je me prend d'une immense motivation ;)


Mise à jour du 2008-06-28

Depuis le temps que je devais le faire, voilà enfin une grosse mise à jour de ce script. Elle est adaptée à mon bon vieux weechat 0.2.4, mais devrait passer sur les versions suivantes, dans le cas contraire, remontez l'info

Elle est estampillée 0.3 puisqu'elle corrige enfin les bugs qui m'empêchait de sortir la 0.2 et contient en plus les améliorations que je comptais intégrer à la 0.3

Alors pour commencer, je voulais corriger un petit bug qui devenait gênant sur le serveur IRC d'ogame (onlinesgamesnet) : la forme différente des join qui faisait planter mon parseur, bref, petit détail, et en réparant ça, je me suis rendu compte que le bug de l'API python (qui m'empêchait d'enregistrer des informations) avait disparu, j'ai donc fini (et même amélioré) ce que j'avais commencé sur les réglages

Pour le moment, c'est plutôt verbeux, j'ai eu tellement de bugs que j'avais choisi d'afficher trop de messages, j'en supprimerais peut-être quelques uns à l'avenir

Deux nouvelles commandes font leur apparition, correspondant chacune à une nouvelle fonctionnalité : (/help commande pour plus d'infos sur la syntaxe)

  • /checkhost : En plus du scan de clone, le script sauvegarde les host des gens qui partent, et compare les join suivants avec chaque host sauvegardé, afin de repérer une personne qui aurait quitté pour revenir discrètement sous un autre pseudo
  • /clone_ignore : Permet de configurer une liste de serveurs, salons, hosts, pseudos et realname à ignorer dans le scan

Les pistes que je vais suivre à l'avenir vont s'axer autour de :

  • l'affichage (clarification, réduction des messages en trop, des doublons)
  • une configuration plus fine de l'ignore (pouvoir indiquer #chan@serveur par exemple, ou des wildcards)
  • un nettoyage automatique de la liste des hosts à vérifier (sinon ça risque de devenir un gros memory-leak)

Et bien évidemment la correction des bugs découverts d'ici là

Comme d'habitude, la nouvelle version se situe là : http://files.spiderou.net/scripts_weechat/clonescan.py, ainsi que surement bientôt sur la page des plugins du site de weechat