User-Info by dj Kenny
#11
Salut,

Test comme sa voir

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==$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"


Répondre Avertir


Messages dans ce sujet
User-Info by dj Kenny - par zappeur78 - 22/10/2012, 21:39
RE: User-Info by dj Kenny - par Supa - 25/10/2012, 00:44
RE: User-Info by dj Kenny - par pheeric - 25/10/2012, 10:36
RE: User-Info by dj Kenny - par Supa - 25/10/2012, 17:58
RE: User-Info by dj Kenny - par zappeur78 - 25/10/2012, 22:06
RE: User-Info by dj Kenny - par pheeric - 25/10/2012, 23:12
RE: User-Info by dj Kenny - par djkenny - 26/10/2012, 04:43
RE: User-Info by dj Kenny - par aliasangelius - 26/10/2012, 08:48
RE: User-Info by dj Kenny - par zappeur78 - 26/10/2012, 16:23
RE: User-Info by dj Kenny - par djkenny - 27/10/2012, 12:32
RE: User-Info by dj Kenny - par aliasangelius - 29/10/2012, 13:23

Atteindre :


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