Advertisement
Guest User

Untitled

a guest
Mar 12th, 2019
399
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
TCL 2.95 KB | None | 0 0
  1. set ::uinfo(db) "scripts/userinfo.db"
  2.  
  3. bind msg - info uinfo:set
  4. bind join - * uinfo:join
  5.  
  6. proc putinfo {arg} {
  7.   putlog "\002\[User-Info\]\002 $arg."
  8. }
  9.  
  10. if ![file exists $::uinfo(db)] {
  11.   catch {open $::uinfo(db) w} pl
  12.   catch {close $pl}
  13.   putinfo "Création de la base de donnée ([pwd]/$::uinfo(db))"
  14. }
  15.  
  16. proc uinfo:set {nick host hand arg} {
  17. global uinfo
  18.   set arg [charfilter $arg]
  19.   set chan [string tolower [lindex $arg 0]]
  20.   set info [lrange $arg 1 end]
  21.   if {[string index $chan 0]!="#" && $chan!="*"} {
  22.     putserv "NOTICE $nick :\002Syntaxe :\002 /msg $::botnick INFO <#salon> ?votre info?"
  23.     putserv "NOTICE $nick :Mettre * à la place du salon pour une info global. Pour supprimer l'info laisser la vide."
  24.     return 0
  25.   }
  26.   set x 0
  27.   set find 0
  28.   catch {open $uinfo(db) r} pl
  29.   while {![eof $pl]} {
  30.     gets $pl data
  31.     incr x
  32.     set data [charfilter $data]
  33.     if {$data!=""} {
  34.       set h [lindex $data 0]
  35.       set c [lindex $data 1]
  36.       if {$h==$nick && $c==$chan} {
  37.         set find 1
  38.         del $uinfo(db) $x
  39.       }
  40.     }
  41.   }
  42.   catch {close $pl}
  43.   if {$info!=""} {add $uinfo(db) "$hand $chan $info"} else {set find 2}
  44.   set c [isglobalinfo $chan]
  45.   if {$find==0} {
  46.     set r "a été crée"
  47.   } elseif {$find==1} {
  48.     set r "a été modifiée"
  49.   } elseif {$find==2} {
  50.     set r "a été supprimée"
  51.   }
  52.   putserv "NOTICE $nick :Votre info $c $r."
  53.   putinfo "\002$nick\002 ($nick) vien de [lindex $r end] son info $c"
  54. }
  55.  
  56. proc uinfo:join {nick host hand chan} {
  57. global uinfo
  58.   set find 0
  59.   catch {open $uinfo(db) r} pl
  60.   while {![eof $pl]} {
  61.     gets $pl data
  62.     set data [charfilter $data]
  63.     if {$data!=""} {
  64.       set h [lindex $data 0]
  65.       set c [lindex $data 1]
  66.       if {$h==$hand && ([string tolower $c]==[string tolower $chan] || $c=="*")} {
  67.         putquick "PRIVMSG $chan :\002\[[join $nick]\]\002 [join [lrange $data 2 end]]"
  68.         set find 1
  69.       }
  70.     }
  71.   }
  72.   catch {close $pl}
  73.   if [matchattr $nick ""] {
  74.     if {$find==0} {putquick "PRIVMSG $chan :\002\[[join $nick]\]\002"}
  75.     putquick "MODE $chan -v $nick"
  76.   }
  77. }
  78.  
  79. proc isglobalinfo {chan} {
  80.   if {$chan=="*"} {return "global"}
  81.   return "sur $chan"
  82. }
  83.  
  84. proc del {file line} {
  85.   set i 0
  86.   catch {open $file r+} p
  87.   while {![eof $p]} {
  88.     gets $p data
  89.     incr i
  90.     set data [charfilter $data]
  91.     set vecteur($i) $data
  92.   }
  93.   catch {close $p}
  94.   catch {open $file w+} p
  95.   catch {close $p}
  96.   catch {open $file a+} p
  97.   set u 0
  98.   while {$u <= $i} {
  99.     incr u
  100.     if {$u != $line} {
  101.       if {[info exists vecteur($u)] && $vecteur($u) != ""} {
  102.         puts $p [join $vecteur($u)]
  103.       }
  104.     }
  105.   }
  106.   catch {close $p}
  107. }
  108.  
  109. proc add {file arg} {
  110.   set arg [charfilter [join $arg]]
  111.   catch {open $file a+} p
  112.   puts $p [join $arg]
  113.   catch {close $p}
  114. }
  115.  
  116. proc charfilter {arg} {
  117.   string map {"\\" "\\\\" "\{" "\\\{" "\}" "\\\}" "\[" "\\\[" "\]" "\\\]" "\"" "&#92;\\""} $arg
  118. }
  119.  
  120. putinfo "Par Dj_KennY"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement