🔔 Ç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.
adwords'ü bilemem de, yukarıda verdiğim kod aslında işlev olarak bir badword/spam/küfür koruması. ufak bir düzenlemeyle botun olduğu tüm kanallar üzerindeki ,tüm kanal içi yazışmaları kollayan-tarayan ve buna göre işlem yapan bir kod yani birnevi adwords'ün yaptığı işi yapar hale gelir. (tabi bot'un olduğu tüm kanallar ile sınırlı olacaktır.)
kodun içine gerekli açıklamaları yazdım . bunlara göre kodu kendi tercihlerinize/beklentinize göre düzenleyip kullanabilirsiniz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
bind pubm - "% *" spam:words ;# botun olduğu tüm kanallardaki mesajlarda ilgili proc işletir.
proc spam:words {nick uhost hand chan text} {
# if {[matchattr [nick2hand $nick] mnoaf|mnoaf $chan] \ ;# işlemden muaf tutulacak olanlar bu satırda m=bot-master,n=bot sahibi,o=op alan,a=oto-op edilen ve f=dostlar
# || [isop $nick $chan] || [ishalfop $nick $chan] \ ;# kanaldaki oplar ve halfoplar
# || [isvoice $nick $chan] || $::botnick eq $nick} { return 0 } ;# kanaldaki voicelar ve botun yazdıklarına tepki vermesin*
set dosya "spam.txt" ;# yasak kelimelerin girileceği dosya adı
set nick [filter $nick] ;# nickteki varsa özel karakterleri filtre ederek görmesi için
set text [filter [stripcodes bcruag $text]] ;# yakalanacak kanal mesajlarındaki renk kodlarını ve özel Tcl karakterlerini ayıklayıp botun görmesi/işlemesi için
set t [join [lrange [split $text] 0 end]] ;# kişinin yazdığı/gönderdiği satırın tamamı dikkate alınır.
#set host [lindex [split [getchanhost $nick $chan] "@"] 1] ;# nickin hostunu alır.hosta işlem yapılacaksa satırı etkin kılın
#set ident [lindex [split [getchanhost $nick $chan] "@"] 0] ;# nickin ident kısmına işlem yaptıralacaksa satırı etkin kılın.
regsub -all -- {[A-Z\+\%\`\=\&\#\+\-\_\!\~\<\,\@\#\$\%\^\&\*]} $t "A+%`=&#+-_!~<,@#$%^&*" t ;# yasak söz/lerin farklı karakterler arasında gizlenmeye çalışılmasına karşı..
set i 0
set fp [open $dosya r]
while {[gets $fp b] >= 0} { ;# dosya açılıp son satıra dek okunur.
if {[string match -nocase "*$b*" $t]} { ;# dosyadaki sözlerle eşleşme olup olmadığı kontrol edilir.
#putkick $chan $nick :selametle... ;# yasak keli/meleri kullanan kanaldan kicklensin deniyorsa etkin kılın
#pushmode $chan +b $nick ;# nicke ban isteniyorsa etkin kılın
#pushmode $chan +b *!$ident@* ;# kişinin ident kısmına ban için etkin kılın
#pushmode $chan +b *!*@$host ;# kişinin host kısmına ban için etkin kılın
#flushmode $chan ;# banlardan biri etkin kılınacaksa bunu etkinleştirmeniz halinde mod hemen işleme konur.daha hızlı tepki vermesini sağlar.
putquick "shun $nick 5m :det!!!"
putquick "sajoin $nick 0"
putquick "sajoin $nick #uyarı"
incr i
}
close $fp
}
return 0
}
# Tcl özel karakterlerini filtre etmekte kullanılacak prosedür.
proc filter {text} {
set text [string map {"\\" "\\\\" "\[" "\\\[" "\]" "\\\]" "\{" "\\\{" "\}" "\\\}" "\$" "\\\$" "\"" "\\\""} $text]
return [subst $text]
}