Plainte.tcl
#1
Bonjour je voudrais savoir si sa serai possible de me créer un plainte.tcl pour mettre sur mon eggdrop pour mon serv. j'ai deja une source qui fonctionne que je voudrai améliorer.

TCL
###############
# Plainte.tcl #
###############
 
bind msgm - "*" plainte:send 
proc plainte:send { nick uhost hand arg } {
    set backroom "#Plainte"
    if { [string equal -nocase [lindex $arg 1] "plainte"] } {
        putserv "PRIVMSG $backroom :\[ Plainte \] [lindex $arg 0] contre [lrange $arg 2 end]"
	  putserv "NOTICE $nick :Votre plainte as été déposé au service abus. Merci de patienter."
    } 
}



Donc je voudrais qu'il enregistre les plaintes sur un fichier .txt
Que je tape !list pour avoir toute la liste des plaintes en notice.
quand je tape !read N° de la plainte ( !read 1 ) elle s'affiche sur le salon #Plainte et envoi une notice as la personne qui as porter plainte pour lui dire que la plainte as ete prise en charge par le service abus
et enfin un !del N° de la plainte ( !del 1 ) pour l'effacer de la base txt.

Merci D'avance.
Cordialement Aragorn
Répondre Avertir
#2
C'est possible à faire, sauf l'envoi du notice: il faudrait être certain que la personne est encore sur le réseau et sous ce nick. Et qu'il s'agit de la même personne.
Je te poste dans la journée un exemple du système.
Répondre
#3
au lieu de faire sa on peux pas faire une alias via le server pour faire /plainte (pseudo) (raison)



non ?
Répondre Avertir
#4
Babytigrou16 a écrit :au lieu de faire sa on peux pas faire une alias via le server pour faire /plainte (pseudo) (raison)
On peut, mais ça n'a plus de rapport avec les eggdrops (première chose) et ça devient propre au serveur, la programmation sera donc différente selon l'ircd utilisé.

Sinon, voici le petit embryon de tcl que j'ai fait (il n'est pas testé, il n'est pas optimisé):
TCL
set backroom "#plainte";
set base "plaintes.txt";
 
bind msg - "plainte" plainte:sent
proc plainte:sent {nick uhost handle chan text} {
    putserv "PRIVMSG $::backroom :\[Plainte\] \002$nick\002 signale: $text"
    set fp [open $::base a]
    puts $fp "$nickµ$text"
    close $fp
    putserv "NOTICE $nick :Votre plainte a été enregistrée"
}
 
bind pub - "!read" plainte:read
proc plainte:read {nick uhost handle chan args} {
    if {[lindex $args 0] eq ""} {
        return 0
    } else  {
        set nb [lindex $args 0]
    }
    set fp [open $::base r]
    set cpt 0
    set data [read -nonewline $fp]
    close $fp
    foreach templine [split $data "\n"] {
        incr cpt
        if {$cpt == $nb} {
            set line [split $templine "µ"]
            set $user [lindex $line 0]
            putserv "PRIVMSG $::backroom \002$user\002 => [lindex $line 1]"
            return 1
        }
    }
    putserv "PRIVMSG $::backroom Plainte $nb introuvable"
}
 
bind pub - "!del" plainte:del
proc plainte:del {nick uhost handle chan args} {
    if {[lindex $args 0] eq ""} {
        return 0
    } else  {
        set nb [lindex $args 0]
    }
    set fp [open $::base r]
    set cpt 0
    set data [read -nonewline $fp]
    close $fp
    set fp [open $::base w]
    foreach templine [split $data "\n"] {
        incr cpt
        if {$cpt != $nb} {
            puts $fp $templine
        }
    }
    close $fp
}


Répondre
#5
oki mais oui que sa rapport avec l eggdrop que le server envoie une message au Eggdrop de dire a l'user parfait ta pleinte est prise men chartge et que on puisse voir la plainte avec l eggdrop
Répondre Avertir
#6
CrazyCat a écrit :C'est possible à faire, sauf l'envoi du notice: il faudrait être certain que la personne est encore sur le réseau et sous ce nick. Et qu'il s'agit de la même personne.
......

Il faudrait se diriger vers MemoServ (Anope service) si présent sur le serveur IRC et personne enregistrée (NickServ).
Répondre Avertir
#7
bonsoir j'ai tester le code mais je ne reçois rien sur le salon #Plainte et je doit etre en party-line avec mon bot pour voir les plaintes déposées.
Cordialement Aragorn

ps j'utilise un aliases dans mon unrealircd qui es le suivant:
TCL
###################
## Alias Plainte ##
###################
 
alias plainte {
    format "^[^#]" { 
        target "Plainte"; 
        type "normal"; 
        parameters "%n plainte %0-"; 
    };
    type command;
};




avec le plainte.tcl que j'ai mi au debut du poste.
Répondre Avertir
#8
Ques que tu veux dire pour le plainte tcl ??? il peux ce faire avec l'eggdrop mais lié au server O_o en NetSplet
Répondre Avertir
#9
J'ai peur que tu ais créé un sujet en voulant répondre à un autre... Je met à sa place.
Répondre
#10
j ai un tcl de painte parfaitement bien d ou facile a l utilisation j essaye de le faire parretre sur le site des que jai internet car la je suis avec mon tel mdr, le script que jai on recoi les plaintes sur un salon pour y repondre on tape !ok pour ignorer la plainte !rej enfin.plein de truck je vous le ferai paretre bientot vous me direz ce que vous en pensez
Répondre Avertir
#11
Voilà je viens de récupérer mon internet donc voilà mon bind

Script supprimé: lire cette page

Faite part de vos commentaires :p
Répondre Avertir
#12
Le voici en pièce joint malheureusement beaucoup trop de couleurs et désolé encore
Répondre Avertir


Atteindre :


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