03 Ağustos 2014, 10:48
#1 Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
bot log arama
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Kod: Kodu kopyalamak için üzerine çift tıklayın!
# hangi kanal/lar üstünde kullanılacaksa :
# .chanset #kanal +logrec
setudef flag logrec
# botunuzun log dosyası ,dizini ve adı
set logrecfile "logs/b-BoTz.log"
# tcllib struct paketi gerektirir.
package require struct::list
# komutu kullanma erişimi kimlerde olacak
set logflags "mnf|oaf"
# komut başına gelecek:
set logtrig "!"
# komut/lar ne olacak (araya boşlukla girin):
set logkomut "log bak search"
# maksimum kaç satır çıktı gösterilsin:
set logsatr "5"
# flood kontrolü "saniye"
set logflud "10"
# kanala/özele postalama yöntemi ne olacak
# NOTICE %nick% yada PRIVMSG %nick%
# olarak da tercih edebilirsiniz.
set logpost "PRIVMSG %chan%"
foreach bind [split $logkomut " "] {
bind pub $logflags $logtrig$bind log_search_pub
}
proc log_search_pub {nick uhost hand chan text} {
if {![channel get $chan logrec]} { return 0 }
log_search $nick $uhost $hand $chan $text
}
proc log_search {nick uhost hand chan text} {
set change(%nick%) $nick
set change(%chan%) $chan
set posta [string map [array get change] $::logpost]
set ara [join [lrange [split $text] 0 end]]
if {[llength $ara] eq "0"} {
puthelp "$posta :Kullanımı:\002 $::lastbind <aranacak>\002"
return 0
}
set host [lindex [split $uhost @] 1]
if {[throttled $host,$chan $::logflud]} {
puthelp "$posta :\002Flood yapmayın !!!\002 - \
\00314[expr {[clock seconds] - $::throttled($host,$chan)}] saniye sonra deneyin...\003"
return 0
}
set ara *[string map {" " *} $ara]*
putserv "$posta :\002$ara\002 aranıyor..."
set i 0
set fp [open $::logrecfile r]
set lines [split [read -nonewline $fp] "\n"]
foreach line [struct::list reverse $lines] {
if {[string match -nocase $ara $line]} {
if {$i == $::logsatr} break
puthelp "$posta :$line"
incr i
}
}
close $fp
if {$i} {
putquick "$posta :gösterilen arama sonucu : \002$i \002 [expr {$i == 1?"":"adet..."}]..."
} else {
putserv "$posta :\002aramayla eşleşen kayıt bulunamadı...\002"
return 0
}
}
# http://is.gd/SVU9r1
proc throttled {id time} {
global throttled
if {[info exists throttled($id)]} {
return 1
} {
set throttled($id) [clock seconds]
utimer $time [list unset throttled($id)]
return 0
}
}
putlog "Ok..."