[Demande] aide pour une modification pour whois
#16
J'ai fait un code à http://tools.eggdrop.fr/pasteme/view/f43cf44b

Ca tient en 2 procédures:
- whoisAll est appelée toutes les 5 minutes, elle fait un /whois sur toutes les personnes dans l'userlist de l'eggdrop qui ne sont pas sur le canal,
- whoisInvite réagit au raw 311 (RPL_WHOISUSER)

Deux gros soucis dans ce script simpliste (je ne donne que la mécanique là):
- risque de flood, que ce soit dans les /whois ou dans les réponses serveur,
- aucun contrôle dans la procédure d'invit
Répondre
#17
loulou7593 a écrit :Voila en fait ce serais pas mal ca quand la personne se connecte au server que ca lui envoi une invite.
/NOTIFY (commande serveur) peut t'aider.

Mon Eggdrop l'utilise pour réinviter sur un chan les utilisateurs qui partent en ping timeout ou en connection reset by peer aussitôt qu'ils se reconnectent au serveur.
Répondre Avertir
#18
Merci pour les réponses, je vais regarder ca.
Répondre Avertir
#19
Merci @Crazycat pour le code j'ai testé vite fait,
j'ai juste vu que ca me donnais une erreur en PL
Code :
Tcl error [whoisAll]: can't read "nick": no such variable
.
Répondre Avertir
#20
Il ne faut quand même pas abuser, l'erreur est flagrante quand on a le message et le code: j'ai mis $nick au lieu de $cuser.

Le code corrigé est là pour ceux qui n'auraient pas suivi, mais merci de faire un peu des efforts.
Répondre
#21
En effet, cela m'apprendra à copier/coller un code sans regarder.
Répondre Avertir
#22
Voila j'ai regardé un peu et j'ai apporté une modif car ca envoyais bien la proc d'invitation mais avec ce format
Code :
Invite envoyée pour \{RadioBot\ Ptitebulle\ LaBulle\ blueirc-36 D8999.abo.wanadoo.fr\ *\ \}\ LaBulle
donc ca n'envoyais pas à la personne.

Voici le tcl.

tcl
# Canal où on doit inviter
    set back "#chan"
     
    # Utilisation d'un bind cron pour faire le /whois
    # toutes les 5 minutes
    bind cron - "*/5 * * * *" whoisAll
    proc whoisAll { mm hh dd mo xx } {
            foreach cuser [userlist] {
               if {![onchan $cuser $::back] } {
                  putserv "WHOIS $cuser"
               }
            }
    }
     
    # Utilisation du raw 311
    bind raw - 311 whoisInvite
    proc whoisInvite {from keyword text} {
	        set nickname [lindex [split $text] 1]
            if {![onchan $nickname $::back] } {
                    putserv "INVITE $nickname $::back"
            }
    }



Et Merci à CrazyCat pour son aide.
Répondre Avertir


Atteindre :


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