->
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
# 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
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
not: .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.
örnek :
bota bağlanıp : .chanset #ircforumlari +userec
aktif edildikten sonraki ilk kanala giriş ile birlikte botunuzun/scripts klasörü içinde ,bu giriş/ler kanalınız-users.txt ..bu örnek için söylersek, ircforumlari-users.txt içinde saklanmış olur.ne kadar sayıda kanal üzerinde aktif edilirse herbir kanal için .txt oluşturacak o kadar sayıda kanalınız-users.txt scripts/ içinde görülecektir....
(kodun sadece "gereken" kısımları Türkçe'ye çevrilmiştir.)
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
set userecfile "scripts/[string range $chan 1 end]-users.txt"
bind join - * rname:join
bind raw - 311 rname:check
bind join - * users:rec
bind pub nm|oa !ara user:search
proc users:rec {nick uhost hand chan} {
if {![channel get $chan userec]} { return 0;}
set fp [open $::userecfile a+]
set data "\002Nick:\002 $nick | \002Userhost:\002 $uhost | \002Kanal:\002 $chan"
puts $fp "$data"
close $fp
return 0
}
proc rname:join {nick host hand chan} {
if {![channel get $chan userec]} { return 0;}
if {[strlwr $nick] != [strlwr $::botnick]} {
putserv "whois $nick"
}
}
proc rname:check {from key arg} {
set realname [strlwr [ctrl:filter [string range [lindex [split $arg] end] 1 end]]]
set stamp [clock format [expr {3600 + [clock second]}] -format "Tarih: %d/%m/%Y Saat: %H:%M (GMT+3)"]
set fp [open $::userecfile a+]
set data "\002Realname:\002 $realname | \002Kayıt-Zamanı:\002 $stamp"
puts $fp "$data"
close $fp
return 0
}
proc ctrl:filter {str} {
regsub -all -- { \003[0-9]{0,2}(,[0-9]{0,2})?|\017|\037|\002|\026|\006|\007 } $str "" str
return $str
}
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 :-> $b"
}
}
close $fp
if {$i} {
putserv "notice $nick :arama sonucu: \002[expr {$i / 2}] \002 [expr {$i == 1?"":"adet"}]..."
} {
putserv "notice $nick :\002aramayla eşleşen kayıt bulunamadı...\002"
}
}
putlog "Ok..."
not: kod ile alakalı bilinen bug* hata/yada şimdilik eksiklik şudur ki: giriş yapan kullanıcı realname'i renkli/renk kodları içeriyorsa kayıt edilmiyor.isteği yapan kişiye kod teslim edildikten sonraki denemelerde fark ettim. henüz onarmadım... olası* sonraki güncelleme/lerde buda aklımda,yapılacak işler listesinde bir yerlerde....