Kod: Kodu kopyalamak için üzerine çift tıklayın!
on *:text:*:#:{
if $chan == #opers {
if $1 == !spamekle {
if $hget(Spams,$2) { msg $chan $2 listede mevcut. }
else { hadd -m Spams $2 1 | hsave Spams Spam.hash | msg $chan $2 Spam listesine eklendi. }
}
elseif $1 == !spamsil {
if !$hget(Spams,$2) { msg $chan $2 listede yok }
else { hdel Spams $2 | hsave Spams Spam.hash | msg $chan $2 Spam listesinden silindi. }
}
elseif $1 == !spamlist {
msg $chan Spam listesi alınıyor...
var %difi 1 | while %difi <= $hget(Spams,0).item { msg $chan $hget(Spams,%difi).item | inc %difi }
msg $chan Spam listesi sonu...
}
}
else {
var %jnk = 0, %cenk | while %jnk <= $numtok($1-,32) {
%cenk = $strip($token($1-,$v1,32))
if $hregex(Spams,%cenk,0) { tempshun $+(+,$nick) Spama takıldı | set %spilz $nick | whois $nick | halt }
inc %jnk
}
}
}
raw 319:*:if %spilz { sapart $2 $replace($regsubex($3-,/[\+:%@\.]/g,$null),$chr(32),$chr(44)) | sajoin $2 #spam }
raw 318:*:if %spilz { unset %spilz }
on *:start:if !$hget(Spams) { hmake Spams 1000 } | .hload Spams Spam.hash
Bu tür işlemlerde; TXT'den kelime algılatmak "yolun ortasındaki bir ineğin karşıdan gelen arabayı tehlike olarak algılama süresiyle(bilimsel olarak olarak 7 sn.) " eşdeğer olarak görüyorum.Yazılanları %var, uyan tanımları %var, az kalıyordu ki whois'de %var olacaktı birde buna TXT metnindeki bütün kelimeleri %var etmeye kalkarsan , döngülerin yüzünden mircin epey kasılacaktı...Bu yüzden TXT sevdasından vazgeçmelisin,gerekmedikçe mirci yoran bir metoddur.
Hash tablosu ve regular expression bu tür işlemler için en uygun olanıdır.Yukarıda #opers kanalında neler yapman gerektiği belli,diğer kanallarda botun bu eklediğin kelimeyi gördüğün takdirde işlemleri yapar.
"!spamekle mesaj" burdaki mesaj 1 kelime olmalıdır.Birden fazla kelime dengeleri bozar,şimdilik bunu geliştirebilirsin.Bildiğim kadarıyla spamfilter olayında "viruschan" metodu olacaktı,bunu da araştırmanı tavsiye ederim...
İyi forumlar.