IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   TCL Scriptler (https://www.ircforumlari.net/tcl-scriptler/)
-   -   Kullanıcı İstatistiği (https://www.ircforumlari.net/tcl-scriptler/615945-kullanici-istatistigi.html)

saywhat 22 Eylül 2014 12:14

Kullanıcı İstatistiği
 
halen üzerinde çalıştığım kodun bir kısmıdır. geliştirmeye açık uzuuun olması beklenebilecek bir kodun deneme aşaması denebilir.

kanalda aktif etmek için : .chanset #kanal +istatistik

komutla kanaldaki kişinin toplamda kaç kelime yazdığı ve yazdığı toplam karakter sayısını verir. (en azından bu şimdi paylaştığım kısmı bunu yapar.listeleme prosedürü tamamlanmak üzereyken artık gözlerim yorulduğundan bıraktım öylece... ilerki sürüm/leri,olursa kickleri,banları,ctcp,/me,smiley'leri vs vs kullanıcı istatistiği çıktısına eklemeyi düşünüyorum.olur yada olmaz artık günler ne getirirse.)

Dikkat : bu script Tcl8.5.x ve üstü Tcl sürümleri gerektirir.daha eski sürümlere uyumlu değildir.*

script dict Tcl komutunun kazandırdığı özellikleri kullanarak yazılmıştır ki bu Tcl8.5 ve daha sonraki sürümlerin komutlarından biridir.
bunun "tam anlamıyla dengi" sayılabilecek (en yakın akrabası array'dir.) ,yerine konabilecek birşey yoktur ki daha eski sürümler de desteklesin...

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Kod:

# komutlara erişimi olacak kullanıcı flagları:
set istflag "-|-"

# komut başına gelecek işaret:
set isttrig "."

# komut:
set istkomut "stat"


# kanal/lar üstünde aktif etmek için : .chanset #kanal +istatistik
# ayarlar sonu...

proc stat_say {nick uhost hand chan text} {
  if {![channel get $chan istatistik]} { return }
     
        set kelime [llength $text]
        set karakter [string length [regsub -all " " $text ""]]
       
  if {![info exists ::keli($nick)] && ![info exists ::kara($nick)]} {
        set ::keli($nick) [dict create]
        set ::kara($nick) [dict create]
      }
     
      dict incr ::keli($nick) $chan $kelime
      dict incr ::kara($nick) $nick $karakter
}

setudef flag istatistik

proc stat_cmd {nick uhost hand chan text} {
  if {![channel get $chan istatistik]} { return }
       
        set hedef [lindex [split $text] 0]
  if {[llength $hedef] eq "0"} {
        puthelp "notice $nick :Kullanımı : $::lastbind < rumuz >"
        return 0
      }
     
  if {[info exists ::keli($nick)] && [info exists ::kara($nick)]} {
          putserv "privmsg $chan :$hedef : [lindex [dict get $::keli($nick)] 0] kanalında ; \
          [lindex [dict get $::keli($nick)] 1] kelime ,[lindex [dict get $::kara($nick)] 1] karakter kullanmış."
          return 0
      } else {
          putserv "privmsg $chan :$hedef ile ilgili bir kayıt bulunmuyor."
      }
}

bind pubm - "*" stat_say
bind pub $istflag $isttrig$istkomut stat_cmd

putlog "ok..."



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 00:56.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net