Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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==$nick && $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$nick\002 ($nick) vien 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 $nick]\]\002 [join [lrange $data 2 end]]"
- set find 1
- }
- }
- }
- catch {close $pl}
- if [matchattr $nick ""] {
- if {$find==0} {putquick "PRIVMSG $chan :\002\[[join $nick]\]\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 "Par Dj_KennY"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement