22/10/2012, 21:39
Bonsoir a tous
je souhaiterais savoir comment je pourrais modifier cette tcl afin que chaque user puisse mettre leur info line sans etre obligatoirement inscrit dans le bot voir même si cela est possible que ce soit un owner ou un coach d'un salon qui puisse le faire
Voici la tcl en question
Merci a vous bonne soirée
je souhaiterais savoir comment je pourrais modifier cette tcl afin que chaque user puisse mettre leur info line sans etre obligatoirement inscrit dans le bot voir même si cela est possible que ce soit un owner ou un coach d'un salon qui puisse le faire
Voici la tcl en question
tcl
set ::uinfo(db) "scripts/userinfo.db"
bind msg -|- info uinfo:set
bind join - * uinfo:join
proc putinfo {arg} {
putlog "\002\[User-Info\]\002 $arg."
}
if ![file exists $::uinfo(db)] {
catch {open $::uinfo(db) w} pl
catch {close $pl}
putinfo "Création de la base de donnée ([pwd]/$::uinfo(db))"
}
proc uinfo:set {nick host hand arg} {
global uinfo
set arg [charfilter $arg]
set chan [string tolower [lindex $arg 0]]
set info [lrange $arg 1 end]
if {[string index $chan 0]!="#" && $chan!="*"} {
putserv "NOTICE $nick :\002Syntaxe :\002 /msg $::botnick INFO <#salon> ?votre info?"
putserv "NOTICE $nick :Mettre * à la place du salon pour une info global. Pour supprimer l'info laisser la vide."
return 0
}
set x 0
set find 0
catch {open $uinfo(db) r} pl
while {![eof $pl]} {
gets $pl data
incr x
set data [charfilter $data]
if {$data!=""} {
set h [lindex $data 0]
set c [lindex $data 1]
if {$h==$hand && $c==$chan} {
set find 1
del $uinfo(db) $x
}
}
}
catch {close $pl}
if {$info!=""} {add $uinfo(db) "$hand $chan $info"} else {set find 2}
set c [isglobalinfo $chan]
if {$find==0} {
set r "a été crée"
} elseif {$find==1} {
set r "a été modifiée"
} elseif {$find==2} {
set r "a été supprimée"
}
putserv "NOTICE $nick :Votre info $c $r."
putinfo "\002$hand\002 ($nick) vient de [lindex $r end] son info $c"
}
proc uinfo:join {nick host hand chan} {
global uinfo
set find 0
catch {open $uinfo(db) r} pl
while {![eof $pl]} {
gets $pl data
set data [charfilter $data]
if {$data!=""} {
set h [lindex $data 0]
set c [lindex $data 1]
if {$h==$hand && ([string tolower $c]==[string tolower $chan] || $c=="*")} {
putquick "PRIVMSG $chan :\002\[[join $h]\]\002 [join [lrange $data 2 end]]"
set find 1
}
}
}
catch {close $pl}
if [validuser $hand] {
if {$find==0} {putquick "PRIVMSG $chan :\002\[[join $hand]\]\002"}
putquick "MODE $chan -v $nick"
}
}
proc isglobalinfo {chan} {
if {$chan=="*"} {return "global"}
return "sur $chan"
}
proc del {file line} {
set i 0
catch {open $file r+} p
while {![eof $p]} {
gets $p data
incr i
set data [charfilter $data]
set vecteur($i) $data
}
catch {close $p}
catch {open $file w+} p
catch {close $p}
catch {open $file a+} p
set u 0
while {$u <= $i} {
incr u
if {$u != $line} {
if {[info exists vecteur($u)] && $vecteur($u) != ""} {
puts $p [join $vecteur($u)]
}
}
}
catch {close $p}
}
proc add {file arg} {
set arg [charfilter [join $arg]]
catch {open $file a+} p
puts $p [join $arg]
catch {close $p}
}
proc charfilter {arg} {
string map {"\\" "\\\\" "\{" "\\\{" "\}" "\\\}" "\[" "\\\[" "\]" "\\\]" "\"" "\\\""} $arg
}
putinfo "Info-User loaded"
Merci a vous bonne soirée