Obtenir la liste ds users
#1
Bonjour,

Est-il possible, uniquement par une commande en party line, d'obtenir la liste des users d'un chan gardé par un eggdrop, ainsi que de leurs modes respectifs (ops, voices....), ou n'y a-t-il pas d'autres moyen que de passer par la programmation? Et ce, afin de faire faire par le robot une requête genre names #chan ou who #chan pour pouvoir récupérer les raws correspondants , via un bind raw? Mon objectif est de passer par une page cgi (avec gestion des sockets) pour faire ce travail: j'ai déjà appliqué la dernière solution, mais peut être existe-t-il une solution déjà prête, plus élégante et plus rapide?

Merci d'avance de vos réponses et bonne journée,

PC
Répondre Avertir
#2
salut

TCL
proc channellist chan {
   if ![validchan $chan] return
   foreach nick [chanlist $chan] {
      if [isop $nick $chan] {
         lappend nicks @$nick
         continue
      }
      if [isvoice $nick $chan] {
         lappend nicks +$nick
         continue
      }
      if [ishop $nick $chan] {
         lappend nicks %$nick
         continue
      }
      lappend nicks $nick
   }
   return $nicks
}



ensuite en pl tu tape
Code :
.tcl channellist #salon
C'est en reconnaissant ses erreurs que l'on progresse Wink
Répondre Avertir
#3
Ou plus simple :
TCL
.tcl chanlist <chan> [flags]


Répondre Avertir
#4
ca retournera la liste des users qui on tel ou tel flag mais pas une liste complete avec le chanmode pour chaque user comme la commande /names #chan
C'est en reconnaissant ses erreurs que l'on progresse Wink
Répondre Avertir
#5
En effet, j'avais pas vu qu'il voulait aussi le mode accolé au nick.
Répondre Avertir
#6
Merci pour vos réponses... cela signifie de fait qu'il n'existe pas de commande simple toute prête pour obtenir le résultat recherché. Je ne cherche pas spécialement à ce que les flags soient accolés aux pseudos , genre @toto: une information telle que toto +o me convient aussi.
Répondre Avertir
#7
après tu peux ajouter un bind dcc
TCL
bind dcc - cliste get_cliste
 
proc get_cliste {hand idx arg} {
   putdcc $idx [channellist [lindex $arg 0]]
}
 
proc channellist chan {
   if ![validchan $chan] return
   foreach nick [chanlist $chan] {
      if [isop $nick $chan] {
         lappend nicks @$nick
         continue
      }
      if [ishop $nick $chan] {
         lappend nicks %$nick
         continue
      }
      if [isvoice $nick $chan] {
         lappend nicks +$nick
         continue
      }
      lappend nicks $nick
   }
   return $nicks
}



il te suffiras juste de taper ".cliste #salon" en pl et ca te retourneras une liste du genre
Code :
@pseudo1 +pseudo2 +pseudo3 %pseudo4 ...etc...
C'est en reconnaissant ses erreurs que l'on progresse Wink
Répondre Avertir


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté