🔔 Çevrimdışı bildirim almak ister misiniz?
Bir konuya etiketlendiğinizde, özel mesaj aldığınızda, bir mesajınız alıntılandığında forumda olmasanız bile anlık bildirim almak için lütfen izni verin.
yukarda sözünü ettiğim renk kodları içeren realname görmeme/kayıt etmeme sorunuda giderildi.
en sonunda kendim cebelleşmek yerine birinin görüşünü alayım dedim iyiki de etmişim. meğer çözüm inanılmaz derecede basitmiş.
(saat 18:00'den beri bunla cebelleşiyordum )
basit çözümü ve hatanın onarılmasındaki yardımı için UnderNet #tcl kanalındaki _MaDaLiN_ 'e teşekkür ederim...
# 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şecek 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} {
;# realname üzerindeki kod hatasının çözümü için Undernet #tcl kanalında _MaDaLiN_ 'e,
;# teşekkür borcum var. çözüm inanılmaz derecede baitmiş halbuki...
;# insan bazen gözü önündeki şeyi göremez hale geliyor.
;# tek yapılması gereken eski :
;# set rname [stripcodes bcruag [string range [lindex [split [string trim $text]] end] 1 end]
;# satırının yerine alttaki basit satırmış...
;# neler neler denedim meğer hiçbişey yapmayıp dümdüz yakalsaymışımda olurmuş :)
set rname [join [lrange $text 5 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..."