Version imprimable

wmc² addons

Plugins et autres goodies à wmcoincoin

Qui ne connait pas ce célèbre logiciel de décideur pressé né des mains du non moins célèbre pouaite (alias poolpy, amiricoré,...) ?
Si vous ne le connaissez pas (ce qui est Mal(TM)) je vous conseil une visite de http://hules.free.fr/wmcoincoin/
Bon bref, j'ai demandé à pouaite d'intégrer un patch qui permet au canard d'exécuter une commande externe à chaque réception d'un nouveau message. J'ai commencé le patch mais pouaite a finit le patch car ça fait longtemps que j'ai pas fais de C ;)
Voici donc des exemples de scripts à plugger au coincoin :

Le Bigornophone

Intro

Ca a été le premier succès du patch. Il équipe une bonne partie des vraies moules de la tribune (dva, pouaite, glandium, lordOric,...). Par contre chacun l'a fait à sa sauce (bash, sed, grep,...)
Je vais expliquer comment mettre en place le modèle bas de gamme de bigornophone.

Tout d'abord, le bigornophone ne fonctionne que depuis la version 2.3.5 du canard donc pensez à upgrader (surtout qu'il est accompagné d'un plateau de fruit de mer maintenant ;)

Comment ça marche et à quoi ça sert ?

Le but du bigornophone est de ne pas passer son temps à regarder le pinnipède pour savoir si quelqu'un nous cherche.
Ainsi grace au bigornophone, une moule désirant communiquer avec vous pourra poster sur la tribune un message contenant votre_login<. Par exemple : lordOric< Tu dors ?
. Une autre fonctionnalité est le broadcast : si vous êtes seul comme un c*n sur la tribune, envoyez un messages aux moules< et vous verrez un troupeau de celles-ci débarquer.
De votre coté, vous entendrez un son quand quelqu'un veut vous joindre.

Mise en place

Editez votre fichier de configuration de wmc² ( ~/.wmcoincoin/options ) et modifiez le ainsi :

tribune.post_cmd: ~/wmcoincoin/wmcc_new_msg "$l" "$m" "$u" "$i" "$t" "$s" "$r" &

A chaque nouveau message la commande wmcc-new_msg sera exécutée. Le & est là pour la lancer en asynchrone ; c'est à dire qu'elle ne bloquera pas le canard et sera lancée en tache de fond.
Les arguments sont les suivants : $l=login, $m=message, $u=useragent, $i=identifiant du message, $t=timestamp, $s=score au trollomètre, $r=(1 si c'est votre message, 2 si c'est une réponse à un de vos messages, 3 si il vérifie votre filtre de sélection par mots-clés, 4 si le message est plpifié et 0 sinon)
Copiez maintenant le script wmcc_new_msg et mettez le dans le répertoire ~/.wmcoincoin/bigorno/
N'oubliez pas de le rendre exécutable chmod +x ~/.wmcoincoin/bigorno/wmcc_new_msg

Maintenant on va créer le fichier de configuration de notre bigornophone : le fichier bigornorc à mettre dans ~/.wmcoincoin
Voici un exemple aussi téléchargeable ici :

# login message ua id timestamp troll reponse command

# Un appel pour moi
.* [Ss]hift\\\< .* .* .* .* .* play ~/.wmcoincoin/newpost/message_shift.wav &
# Un appel pour les moules
.* moules\\\< .* .* .* .* .* play ~/.wmcoincoin/newpost/message_all.wav &
# Une réponse à un de mes posts
.* .* .* .* .* .* 2 play ~/.wmcoincoin/newpost/Ahem.wav &
# Un "plop"  a été posté sur la tribune
.* pl[oØø]p .* .* .* .* .* play ~/.wmcoincoin/newpost/plop.wav &

La syntaxe du fichier est similaire à celle de cron. Chaque colonne contient une expression régulière (regexp : celle de sed) qui doit être vérifiée pour que la commande de fin soit exécutée. Les colonnes doivent être séparés par des tabulations (ici ce n'est pas le cas pour une question de mise en page :).
Les regexps sur le message sont case-insensitive donc pas besoin de compliquer les regexps, par contre celle du login le son pour éviter les fakes :)

Petite explication sur le pourquoi "moules\\\<" et pas "moules<" : pouaite par sécurité à protégé les caractères qui pourraient être interprétés par un shell (&,-,<,|,...) donc en fait le message contient "moules\<". Mais comme \ et < sont des caractères spéciaux pour le case, il faut les protéger avec \ d'où le "moules\\\<" :)

Date de derni�re modification :20/03/2006