Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


Realname avec CAP extended-join
#1
Depuis eggdrop 1.9.x, on a accès aux CAP(abilities) qui permettent de simplifier grandement la récupération de certaines informations sans requêtes serveur supplémentaires.

Par exemple pour récupérer le realname d'un utilisateur, il suffit d'avoir extended-join d'activé. Pour ça, deux possibilités:

1. Dans le .conf de l'eggdrop, trouvez la partie:

tcl
# If you have any additional CAP features you would like to request at
# registration but are not listed above, set them here as space separated
# strings. Setting features here does not guarantee Eggdrop's ability to support
# these them.
set cap-request ""

Et ajoutez la ou les CAP que vous désirez charger: set cap-request "extended-join" (dans mon cas)

2. Dans le script:

tcl
if {[string match -nocase *extended-join* [cap ls]]} {
   cap req extended-join
}


Ensuite, il faut utiliser un bind RAWT:

tcl
bind RAWT - JOIN ejoin
proc ejoin {from kw text flag} {
   putlog "text : $text"
}

Et vous obtenez dans text les éléments suivants: canal, nick, realname. Attention: le realname commence par :

On peut donc améliorer la procédure:

tcl
bind RAWT - JOIN ejoin
proc ejoin {from kw text flag} {
   regexp -- {([^\s]+)\s([^\s]+)\s:(.+)} $text - chan nick realname
   putlog "$nick a comme realname : $realname"
}

irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
  Reply
#2
Parfait, merci beaucoup ! Ça m'évitera de faire un WHO à chaque join pour récupérer des données et avoir des problèmes de latence dû à la commande serveur.
  Reply
#3
J'ai fait une petite erreur (RTFM c'est bien des fois): extended-join retourne le accountname et non pas le nick.
Pour obtenir le nick, c'est dans le from (qui est de la forme nick!username@host)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
  Reply
#4
Une petite info supplémentaire concernant les CAP (un de ces jours ce sera sur le wiki)
Pour en retirer une, la commande est CAP req -la-cap, donc comme pour l'activer mais en précédant son nom d'un -
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
  Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)