Communauté sur les Eggdrops - Community about Eggdrops
Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - Printable Version

+- Communauté sur les Eggdrops - Community about Eggdrops (https://forum.eggdrop.fr)
+-- Forum: Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum: Scripts TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+--- Thread: Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis (/showthread.php?tid=1413)

Pages: 1 2


Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - Ab0miFreuX - 23/09/2013

Bonjour, depuis des heures j'essaye de développer un script qui reconnaîtrait et annoncerait les IRCops sur un salon définit du genre
nick rejoint #staff
<egg> [IRCop] Un IRCop vient vous aider: nick

Mais toutes mes tentatives ont échouées...
Quelqu'un saurait-il m'aider? Je vous en remercie d'avance!


RE: Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - CrazyCat - 23/09/2013

Qu'est-ce qui permet de reconnaitre un ircop ? Son vhost ? La liste des ircops est dans l'eggdrop ? Ou bien il faut chercher dans le /who ou dans le /whois ?


RE: Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - Ab0miFreuX - 24/09/2013

Bonjour, j'pense qu'il faudrait chercher dans le /who


RE: Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - CrazyCat - 24/09/2013

Donc, il faut que lorsqu'un utilisateur entre sur le canal, l'eggdrop fasse un /whois et s'il reçoit en retour le raw 313, il annonce ton message ?
Et bien voila, tout est dit :)


RE: Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - Ab0miFreuX - 24/09/2013

D'accord, merci de ton aide :) mais étant totalement novice en TCL, comment procéder pour exécuter cette procédure?


RE: Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - CrazyCat - 24/09/2013

Tu peux te baser sur ce qui est dit à http://forum.eggdrop.fr/ban-sur-detection-de-realname-t-304-1.html, mais en utilisant le raw 313 et non pas 311.
Il faut aussi détecter le fin de whois si jamais ce n'est pas un ircop (raw 318 ) pour sortir de la procédure


RE: Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - Ab0miFreuX - 24/09/2013

D'accord! Merci beaucoup! :)


RE: Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - aliasangelius - 25/09/2013

Salut,

Pour le plus simple étant que tu es novice serait d'utiliser un système de liste voir de flag..
Exemple tu fait un bind join sur le flag Z Et sa annonce ta phrase..

Je ferait un exemple de code ce soir lorsque je serait rentrée.

Mais pour commencer étant que tu débute je pense qu'il te faut plus débuter et te familiariser avec les binds au dépard que de partir directement sur des bind raw


RE: Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - CrazyCat - 25/09/2013

Sauf que s'il demande une détection du statut d'ircop, c'est peut-être qu'il n'a pas la liste des ircops, ou que les nicks peuvent changer, ...
Ce n'est pas parce qu'une personne débute qu'il faut lui proposer un truc totalement différent sous prétexte que c'est plus difficile à faire.

Il a maintenant un code d'exemple de traitement d'un retour de whois et les infos à rechercher (les N° de raw), donc on attend un peu pour voir ce qu'il va faire et l'aider s'il a des erreurs ou des incompréhensions.


RE: Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - Ab0miFreuX - 25/09/2013

Je ne comprends pas le principe de ce proc, comment l'adapter à ma demande?

Code:
proc badrealname:check {from key arg} {
set realname [strlwr [ctrl:filter [string range [lindex [split $arg] end] 1 end]]]
foreach bah $::badr(list) {
    if {![string match $bah $realname]} {
      continue
    }
    newchanban $::badr(chan) "*!*@[lindex [split $arg] 3]" $::botnick $::badr(reason) $::badr(time)
    break
}
}



RE: Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - CrazyCat - 25/09/2013

(23/09/2013, 13:25)Ab0miFreuX Wrote: Bonjour, depuis des heures j'essaye de développer un script qui reconnaîtrait et annoncerait les IRCops sur un salon définit du genre
nick rejoint #staff
<egg> [IRCop] Un IRCop vient vous aider: nick

Mais toutes mes tentatives ont échouées...
Quelqu'un saurait-il m'aider? Je vous en remercie d'avance!
(25/09/2013, 18:02)Ab0miFreuX Wrote: Je ne comprends pas le principe de ce proc, comment l'adapter à ma demande?

Qu'as tu déjà essayé, que sais-tu faire, qu'as-tu compris en lisant le wiki ou le forum ?
Ou bien est-ce un "faites-le pour moi" déguisé ?


RE: Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - Ab0miFreuX - 25/09/2013

Non non, j'ai bel & bien essayer, maintenant de ce que j'ai compris du wiki & du forum, c'est:

Qu'il y a plusieurs types de bind.
Que les proc servent à procéder au déroulement des commandes.
Que les set servent à nommer une commande (mais je me trompe sûrement)

Maintenant je ne sais faire que des petits tcl simple comme des tcl d'aide...


RE: Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - CrazyCat - 25/09/2013

Donc tu auras compris qu'il te faut un bind join pour avoir une action (un /whois) sur les arrivées sur le canal et deux (ou trois) binds raw pour récupérer le retour du whois.

Voici un source (pas testé, c'est un exemple "théorique"):

tcl
#le canal à surveiller
set canal "#blabla"
 
bind join - "$canal *" ircop:whois
 
proc ircop:whois { nick uhost handle chan } {
   # Si c'est l'eggdrop qui arrive, on sort
   if { $nick == $::botnick } { return 0 }
   putserv "WHOIS $nick"
   return 0
}
 
bind raw - 313 ircop:is
proc ircop:is { frm kw text } {
   # cette procédure n'est déclenchée que si un /whois retourne un status ircop
   set infos [split $text ":"]
   set user [split $infos 0]
   # $user est le nick de l'ircop
   if { [onchan $nick $::canal] } {
      # si l'ircop est sur le canal surveillé
      putserv "PRIVMSG $::canal :Attention $::canal, $nick surveille !"
   }
}


Simple, non ?


RE: Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - Ab0miFreuX - 25/09/2013

Expliquer comme ça oui, merci de l'exemple :)


RE: Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis - CrazyCat - 26/09/2013

Oups, je viens de corriger un petit truc, il manquait un ]