güncelleme : ->
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
yukardaki "ilk" çalışan halindeki sorunlar halledildi.
bir tek renk kodları içeren "realname" her ne hikmetse ne denediysem ,
renkli" realname'leri görüp/yazdırtmasını başaramadım.
aklıma gelen her yöntemi denedim realname yakalayan kısmı defalarca yeni baştan yazdım-denedim.. yok olmadı..geriye bir o "eksiği" kaldı...
"renkli realname kaydetme/görme sorunu dışında gayet iyi işliyor.
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Kod: Kodu kopyalamak için üzerine çift tıklayın!
# istek üzerine yapılmıştır.
# amaç: kodun aktif edildiği kanal/lara giren kullanıcıları
# txt. üzerine kaydetmek.
# nicki - userhostu - girilen kanal - realname -saat+tarih
# kodun diğer işleviyse bu kayıtlar içinden istenen veriyi
# aratıp sonuçları aktarabilmesi.
# arama nick/host/kanal/tarih yada saat,
# kaydedilmiş veri içersinde eşleşek herhangi bir kritere
# göre yapılabilir.aramalarda wildcard kullanılabilir..
# !ara @*hostun-bir-kısmı yada !ara nick* vs gibide olabilir.
# kodun kanalda aktif olabilmesi için botunuza bağlanın:
# .chanset #kanalınız +userec
###############################################################
setudef flag userec
# txt dosyasını aktif ettiğiniz her kanal için ayrı olarak kendiliğinden oluşturacaktır.
# sizin ayrıca .txt dosyası oluşturmanıza yada kod içinde kendiniz girmenize gerek yoktur.
set userecfile "scripts/[string range $chan 1 end]-users.txt"
bind join - * rname:join
bind pub nm|oa !ara user:search
proc rname:join {nick uhost hand chan} {
set ::rnick $nick ;set ::rhost $uhost ;set ::rchan $chan
if {![channel get $chan userec]} { return 0;}
if {![string match -nocase $::botnick $nick] || [onchan $nick $chan]} {
putquick "whois $nick $nick"
bind raw - 311 rname:check
}
}
proc rname:check {from key text} {
set rname [stripcodes bcruag [string range [lindex [split [string trim $text]] end] 1 end]]
set fp [open $::userecfile a+]
set nick $::rnick ;set uhost $::rhost ;set chan $::rchan
set stamp [clock format [clock seconds] -format "\002Tarih:\002 %d/%m/%Y \002Saat:\002 %H:%M:%S \002TZ:\002 %z"]
set data "\002Nick:\002 $nick | \002Userhost:\002 $uhost | \002Realname:\002 $rname \002Kanal:\002 $chan | \002Zamanı:\002 $stamp"
puts $fp "$data"
close $fp
return 0
}
if {[info exists rname:check]} {
catch {unbind raw - 311 rname:check}
}
proc user:search {nick uhost hand chan text} {
if {![channel get $chan userec]} { return 0;}
if {[llength $text] == "0"} { puthelp "notice $nick :kullanımı:\002 $::lastbind nick\002"; return 0;}
set text *[string map {" " *} $text]*
putserv "notice $nick :\002$text\002 aranıyor..."
set i 0
set fp [open $::userecfile r]
while {[gets $fp b]>-1} {
if {[string match -nocase $text $b]} {
incr i
putserv "notice $nick :\002$i->\002 $b"
}
}
close $fp
if {$i} {
putserv "notice $nick :arama sonucu: \002$i \002 [expr {$i == 1?"":"adet"}]..."
} {
putserv "notice $nick :\002aramayla eşleşen kayıt bulunamadı...\002"
}
}
putlog "Ok..."