Communauté Eggdrop
répéter les notices reçues en salon. - Version imprimable

+- Communauté Eggdrop (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)
+--- Sujet : répéter les notices reçues en salon. (/showthread.php?tid=770)



répéter les notices reçues en salon. - ArKeNiS - 31/10/2010

Bonsoir,

(Désolé, pour le titre pas très claire, je ne savait pas quoi mettre).

J'aimerais savoir si vous connaissaient un script qui permet de répéter les notices reçues et de les répéter en salon.

Exemple :

/msg Appolon glist ArKeNiS

NickServ envoie en notice à Appolon avec la liste des personnes qui fait partie du groupe ArKeNiS.
Mais, j'aimerais que le bot répète ce qu'a dis NickServ en salon.

Avez-vous une idée ?

Cordialement,

PS : Je vais faire ma présentation dès maintenant.


RE: répéter les notices reçues en salon. - Artix - 31/10/2010

Répèter les notices est pas très compliqué mais... chui pas sur que ca soit vraiment une bonne idée ><

Le problème est que d'après ce que j'ai vu il n'y a pas vraiment de moyen d'identifier les notices.
Non seulement le texte varie d'un service à l'autre, mais aussi d'une langue à l'autre, et pour couronner le tout, la réponse est envoyée sur plusieurs lignes...

Ca devrait être facilement résolu avec vwait - en prenant les lignes une par une :
lorsque la première ligne "Liste des pseudos dans votre groupe:" arrive - on capture les x prochaines lignes jusqu'a "x pseudos dans le groupe."
Le problème après c'est que c'est seulement compatible avec eggdrop 1.6.20, 1.8 et supérieurs.


RE: répéter les notices reçues en salon. - cestlemien - 31/10/2010

salut ,
de mémoire le msg n'est pas envoyé en notice par le serveur mais via le bind msg ( a confirmer via les raw) et ce , suivant le serveur sur lequel on est. De plus je doute que celà soit une bonne idée, ou alors il faut que ça ne match QUE sur les msg/notices du serveur, sinon, ça vas flooder un max ton salon ( ou le salon de log).Tu peux t'aider du tcl spy.tcl peut etre.
Cordialement


RE: répéter les notices reçues en salon. - Artix - 31/10/2010

cestlemien: afaik sur anope/epona il y a un réglage dans NickServ pour définir si les services evoient des PRIVMSG ou des NOTICE mais c'est pas un problème à partir du moment ou on sait lesquelles capturer.


RE: répéter les notices reçues en salon. - ArKeNiS - 31/10/2010

Merci de vos réponses.

"ça vas flooder un max ton salon" C'est juste pour quelques commandes, donc ça ne floodera pas mon salon.


RE: répéter les notices reçues en salon. - cestlemien - 31/10/2010

Artix,
ouip, justement je voulait juste le souligner, et merci nos reponsent semblent ce confirmer. (desolé on a dû ecrire le post quasi en même temp Very Happy )


RE: répéter les notices reçues en salon. - cestlemien - 31/10/2010

Re,
j'ai retrouvé ceci , si ça peux servir ...

A NOTER QUE L4EGGDROP DOIS AVOIR UNE O-LINE

tcl
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# NSGLIST.TCL
set NSGlist_version "1.1.1"
# by ToM (2006) 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# DESCRIPTION :
#   Designed to allow any IRCOp to see the nicks group of some user.
#   The script is active in the channels by using .chanset #chan +glist
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# CHANGELOG :
# v1.0
#   Script creation
# v1.1
#   Added the comments - You never know who will maintain your scripts.
#   Added an init: $glistout wasnt set on load and all notices were processed.
#   Added an output when no arg are given, then we know Services dont just lag.
# v1.1.1
#   Added a channel flag: .chanset #chan +nsglist
#   Bind changed from pubm to pub
#   Renamed to NSGlist.tcl
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# TODO LIST :
#   - Maybe someday add some way to make the output switchable between full
#     display or in a single line
#   - Add an optional access protection (chan status, user flag)
#   - Split the NickServ query from the nsglist:input proc, to make it
#     available for other scripts - Maybe turn all of this to a gigantic
#     Services Query script...
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Do not edit bellow until you know what you're doing :p
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# INIT
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Set $glistout to 0 on load, or any notice will be
# processed until the script is triggered.
set glistout 0
setudef flag nsglist
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# CHANNEL TRIGGER
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
bind pub - "!glist" nsglist:input
proc nsglist:input { nick uhost handle chan arg } {
 
    if { ! [channel get $chan nsglist] } {
        putlog "WARNING: $nick$uhost @ $chan tried to use !glist: $arg"
        return 0
}

    # No arg? Lets explain this complicated syntax.
    if { [lindex $arg 0] == "" } {
        putserv "privmsg $chan :Syntax: !glist <NiCk>"
        return 0
}
 
    putserv "privmsg Nickserv :glist [lindex $arg 0]"
    global glistoutchan
    set glistoutchan $chan

 
    # Tracability
    putlog "GList: $nick$uhost on $chan used !glist: $arg."
 
}

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# NICKSERV NOTICES HANDLERS
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# toggle output on
bind notc - "List of nicknames in the group of*" nsglist:bind
proc nsglist:bind { nick uhost handle text dest } {
 
    global glistout
    set glistout 1
 
}

# Display
bind notc - * nsglist:output
proc nsglist:output { nick uhost handle text dest } {
 
    global glistout glistoutchan
 
    if { $glistout == 1 } {
        putserv "privmsg $glistoutchan :$text"
    }
 
}

# Toggle output off
bind notc - "*nicknames in the group." nsglist:unbind
proc nsglist:unbind { nick uhost handle text dest } {
 
    global glistout
    set glistout 0
}
 
 } else {
     puthelp "PRIVMSG $chan : $nick :  desolé je n'y ai pas accés à la liste de $arg, il me faut le flag ircop , ou le pseudo  n'est pas enegistré"
  }
 return 0
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
putlog "\002NSGList.tcl\017 v$NSGlist_version by ToM loaded. (commande en pl .chanset #chan +nsglist etsur lechan  !glist)"





RE: répéter les notices reçues en salon. - ArKeNiS - 31/10/2010

Merci Smile

La tcl fonctionne pour moi Smile

Merci encore Smile


RE: répéter les notices reçues en salon. - cestlemien - 31/10/2010

salut ,
Penses a ajouter les services en amis
(exemple en pl : )
Citation : .+bot services *!*@host.des.services
.chattr services +f
.save
ceci devrait resoudre ton soucis de mise en ignore.


RE: répéter les notices reçues en salon. - ArKeNiS - 31/10/2010

Re,

Il y aurais un moyen que si les users envoie une notice au bot que le bot ne répète pas dans le salon de log ?
Je veux juste les commandes lol