WeeChat et scan de clones (bump)
Par SpideR le samedi 28 juin 2008, 16:05 - Technique - Lien permanent
Depuis ma migration d'XChat vers WeeChat (clients IRC), quelque-chose me manquait : un scanneur de clones
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
Commentaires
Script approuvé ! N'hésite pas à soumettre les nouvelles versions par le lien qui va bien sur la page des scripts
Merci pour la contribution.
Script mis à jour.