mIRC Spamfilter Dialog | Ekleme – Silme – Düzenleme |

Spamfilter bir çok kişinin girişmeye tereddüt ettiği bir konudur aslında. O tereddütü kaldırmak ve direk olarak /spamfilter add …. komutu uygulanırkenki karşılaşılan hataları önlemek amacıyla bu diyalogu yazdım.

Kullanımı gayet basit; sağ klik menüsünde sadece +o flagınız olduğunda aktif olacak şekilde ayarladım. Çeşitli uyarı ya da bilgilendirmeler ile diyalogun o an işleminizi neden yapmadığını, yaptıysa da sonucu ile gösterir. Çıkış mesajı eklemedim yeni spam ekleme seçenekleri arasına çünkü günümüzde çıkış mesajını opsiyonel olarak bırakan bir sunucu yok (Hem de ilgili kutuya sığdıramadım =)).

Spamfilter listesinde 200+ olan sunucularda diyalogun her seferinde stats f çekip de mIRC’i kasmaması için kullanıcıya TXT’den okutarak spamfilter girdilerini düzenleme/silme/ekleme seçeneği de ekledim. Öncelikle standart kullanım ile verimi denemenizi tavsiye ederim. Eğer kasıldığını farkederseniz Spamfilteri TXT’den Okut seçeneği seçin.

Ayrıca Sebep kısımlarında boşluk kullanabilirsiniz. Diyalog boşluk karakterini _ olarak değiştirerek ekleme yapacaktır.

Umarım ki işinize yarar. İyi paylaşımlar.

dialog spamdialog {
title "Spamfilter Dialog | Ekleme - Silme - Düzenleme | "
size -1 -1 405 250
option dbu
list 1, 10 10 285 132, size extsel hsbar
box "Görüntüle - Düzenle", 2, 300 7 95 135
text "Hedef:", 3, 304 28 25 8
text "Uygulama:", 4, 344 28 30 8
text "Süre:", 5, 344 50 20 8
text "Sebep:", 6, 304 72 25 8
text "Yakalanacak Metin:", 7, 304 94 61 8
text "Ekleyen:", 8, 304 116 50 8
edit "", 9, 303 36 35 10, read
edit "", 10, 343 36 35 10, read
edit "", 11, 343 58 35 10, read
edit "", 14, 303 80 85 10, read
edit "", 13, 303 102 85 10, read
edit "", 12, 303 124 85 10, read
check "Düzenle", 15, 353 13 35 10
combo 17, 343 36 35 50, hide size drop
combo 18, 343 58 35 50, hide size drop
check "c", 19, 303 36 10 10, hide push
check "p", 20, 314 36 10 10, hide push
check "n", 21, 325 36 10 10, hide push
check "a", 22, 303 47 10 10, hide push
check "N", 23, 314 47 10 10, hide push
check "d", 24, 325 47 10 10, hide push
check "t", 25, 303 58 10 10, hide push
check "u", 26, 314 58 10 10, hide push
check "P", 27, 325 58 10 10, hide push
button "Sıfırla", 62, 309 119 35 12, hide
button "Uygula", 28, 353 119 35 12, hide
box "Yeni Spam Ekle:", 16, 10 163 385 65
box "Hedef:", 29, 15 172 166 50
check " c : Kanal Msj.", 30, 20 182 43 10
check " p : Özel Msj.", 31, 70 182 43 10
check " a : Away Msj.", 32, 125 182 45 10
check " n : Özel Notice", 33, 20 194 50 10
check " N : Kanal Notice", 34, 70 194 50 10
check " d : DCC", 35, 125 194 35 10
check " t : Topic", 36, 20 206 30 10
check " u : nick!user@host:realname", 37, 98 206 80 10
check " P : Part Msj.", 38, 54 206 40 10
box "Uygulama:", 61, 185 172 100 50
radio "Kill", 39, 190 182 28 10, group
radio "Shun", 40, 190 194 28 10
radio "Kline", 41, 190 206 28 10
radio "Gline", 42, 219 182 28 10
radio "Zline", 43, 219 194 28 10
radio "Gzline", 44, 219 206 28 10
radio "Block", 45, 248 182 30 10
radio "DccBlock", 46, 248 194 32 10
radio "TempShun", 47, 248 206 34 10
text "Sebep:", 48, 290 177 19 8
edit "", 49, 310 176 80 10, autohs
text "Yakalanacak Metin:", 50, 290 190 52 8
edit "", 51, 290 198 100 10, autohs
button "Ekle", 52, 360 211 30 12
button "Yenile", 53, 70 147 37 12
button "Tamam", 54, 147 233 35 12, ok
button "Kapat", 55, 222 233 35 12, cancel
button "Seçilen(ler)i Sil", 56, 10 147 50 12
text "Süre:", 57, 290 213 17 8
combo 58, 310 212 35 50, size drop
check "Spamfilteri TXT'den Okut:", 59, 311 149 69 10, left
box "", 60, 300 142 95 21
}

on *:dialog:spamdialog:init:*:{
didtok $dname 17 44 kill,shun,kline,gline,zline,gzline,block,dccblock,tempshun
didtok $dname 18,58 44 -,15dk.,30dk.,45dk.,1saat,3saat,5saat,1gün,5gün,10gün
did -c $dname 58 1
$iif(%spm_txt,did -c $dname 59)
}
on *:dialog:spamdialog:sclick:59:{
if %spm_txt { unset %spm_txt | did -u $dname 59 } | else { set %spm_txt 1 | filter -if $dname 1 spamlist.txt | did -c $dname 59 }
}
on *:dialog:spamdialog:sclick:15:{
var %satır = $did(1,$did(1).sel).text
did -v $dname 8-12 | did -h $dname 17-28,62 | did -m $dname 13,14 | did -u $dname 19-27
if $did(15).state == 1 {
did -h $dname 8-12 | did -v $dname 17-28,62 | did -n $dname 13,14 | did -u $dname 19-27
did -c $dname 17 $findtok($didtok(17,44),$did(10,$did(10).sel).text,1,44)
did -c $dname 18 $findtok($didtok(18,44),$did(11,$did(11).sel).text,1,44)
if c isincs $gettok(%satır,2,32) { did -c $dname 19 }
if p isincs $gettok(%satır,2,32) { did -c $dname 20 }
if n isincs $gettok(%satır,2,32) { did -c $dname 21 }
if a isincs $gettok(%satır,2,32) { did -c $dname 22 }
if N isincs $gettok(%satır,2,32) { did -c $dname 23 }
if d isincs $gettok(%satır,2,32) { did -c $dname 24 }
if t isincs $gettok(%satır,2,32) { did -c $dname 25 }
if u isincs $gettok(%satır,2,32) { did -c $dname 26 }
if P isincs $gettok(%satır,2,32) { did -c $dname 27 }
}
}
on *:dialog:spamdialog:sclick:1:{
var %satır = $did(1,$did(1).sel).text
if ($gettok(%satır,1,32) === f) {
did -ub $dname 15 | did -v $dname 8-12 | did -h $dname 17-28,62 | did -m $dname 13,14 | did -u $dname 19-27
}
if ($gettok(%satır,1,32) === F) {
did -eu $dname 15 | did -v $dname 8-12 | did -h $dname 17-28,62 | did -m $dname 13,14 | did -u $dname 19-27
}
if $did(15).state == 1 {
did -u $dname 19-27
}
if ($did(1,0).sel > 1) { did -ub $dname 15 | did -r $dname 9-14 }
else {
did -ra $dname 9 $gettok(%satır,2,32)
did -ra $dname 10 $gettok(%satır,3,32)
did -ra $dname 11 $süre_spm($gettok(%satır,4,32))
did -ra $dname 12 $gettok($gettok(%satır,6,32),1,33)
did -ra $dname 13 $gettok(%satır,7-,32)
did -ra $dname 14 $gettok(%satır,5,32)
}
}
on *:dialog:spamdialog:sclick:62:{
var %satır = $did(1,$did(1).sel).text
did -u $dname 19-27
did -c $dname 17 $findtok($didtok(17,44),$did(10,$did(10).sel).text,1,44)
did -c $dname 18 $findtok($didtok(18,44),$did(11,$did(11).sel).text,1,44)
did -ra $dname 13 $gettok(%satır,7-,32)
did -ra $dname 14 $gettok(%satır,5,32)
if c isincs $gettok(%satır,2,32) { did -c $dname 19 }
if p isincs $gettok(%satır,2,32) { did -c $dname 20 }
if n isincs $gettok(%satır,2,32) { did -c $dname 21 }
if a isincs $gettok(%satır,2,32) { did -c $dname 22 }
if N isincs $gettok(%satır,2,32) { did -c $dname 23 }
if d isincs $gettok(%satır,2,32) { did -c $dname 24 }
if t isincs $gettok(%satır,2,32) { did -c $dname 25 }
if u isincs $gettok(%satır,2,32) { did -c $dname 26 }
if P isincs $gettok(%satır,2,32) { did -c $dname 27 }
}
on *:dialog:spamdialog:sclick:28:{
var %satır = $did(1,$did(1).sel).text
var %y = 19 { while %y < = 27 { if $did(%y).state == 1 { set -u5 %hedef $addtokcs(%hedef,$did(%y),44) } | inc %y } } spamfilter del $gettok(%satır,2,32) $gettok(%satır,3,32) $gettok(%satır,4,32) $gettok(%satır,5,32) $gettok(%satır,7-,32) spamfilter add $remove(%hedef,$chr(44)) $did(17,$did(17).sel).text $saniye($did(18,$did(18).sel).text) $& $iif(!$did(14),-,$replace($did(14),$chr(32),$chr(95))) $did(13) noop $input(Spamfilter belirttiğiniz şekilde düzenlendi.,o) if %spm_txt { write $+(-l,$did(1).sel) spamlist.txt F $remove(%hedef,$chr(44)) $did(17,$did(17).sel).text $& $saniye($did(18,$did(18).sel).text) $iif(!$did(14),-,$replace($did(14),$chr(32),$chr(95))) $& $address($me,5) $did(13) loadbuf -ro $dname 1 spamlist.txt } | else { did -r $dname 1 | stats f } } on *:dialog:spamdialog:sclick:56:{ if $did(1,0).sel == 1 { if $left($did(1).seltext,1) === f { noop $input(Bu spamfilter silinemez!,ohud,Hata!) | goto son } spamfilter del $gettok($did(1).seltext,2-5,32) $gettok($did(1).seltext,7-,32) $iif(%spm_txt,write $+(-d,$did(1).sel) spamlist.txt) } else { var %a = 1 while %a <= $did(1,0).sel { $iif($left($did(1,$did(1,%a).sel).text,1) === f, inc %h) spamfilter del $gettok($did(1,$did(1,%a).sel).text,2-5,32) $gettok($did(1,$did(1,%a).sel).text,7-,32) $iif(%spm_txt,write $+(-d,$did(1).sel) spamlist.txt) inc %a } } noop $input(Seçtiğiniz $qt($did(1,0).sel) spamfilter girdisinden $qt($calc($did(1,0).sel - %h)) tanesi silindi.,o) unset %h | did -r $dname 1 | $iif(%spm_txt,loadbuf -o $dname 1 spamlist.txt,stats f) :son } on *:dialog:spamdialog:sclick:53:{ did -r $dname 1 | $iif(%spm_txt,loadbuf -o $dname 1 spamlist.txt,stats f) } on *:dialog:spamdialog:sclick:52:{ var %y = 30 { while %y <= 38 { if $did(%y).state == 1 { set -u5 %hedef $addtokcs(%hedef,$mid($did(%y),2,2),44) } | inc %y } } var %z = 39 { while %z <= 47 { if $did(%z).state == 1 { set -u5 %uygulama $lower($did(%z)) } | inc %z } } if (!%hedef || !%uygulama) { noop $input(Yeni spamfilter için hedef ya da uygulama seçmediniz!,ohud,Hata!) } else { spamfilter add $remove(%hedef,$chr(44)) %uygulama $saniye($did(58,$did(58).sel).text) $& $iif(!$did(49),-,$replace($did(49),$chr(32),$chr(95))) $did(51) $iif(%spm_txt,write spamlist.txt F $remove(%hedef,$chr(44)) %uygulama $saniye($did(58,$did(58).sel).text) $& $iif(!$did(49),-,$replace($did(49),$chr(32),$chr(95))) $address($me,5) $did(51)) noop $input(Belirttiğiniz spamfilter eklendi.,o) did -r $dname 1,49,51 did -u $dname 30-47 did -c $dname 58 1 $iif(%spm_txt,loadbuf -o $dname 1 spamlist.txt,stats f) } } alias süre_spm { return $replace($duration($1),secs,saniye,sec,saniye,mins,dk.,hrs,saat,days,gün,day,gün,wk,hafta,min,dk.,Hr,saat) } alias saniye { if gün isin $1- { return $calc($remove($1-,gün) * 86400) } if dk. isin $1- { return $calc($remove($1-,dk.) * 60) } if saat isin $1- { return $calc($remove($1-,saat) * 3600) } else { return - } } menu status,query,channel { $iif(o !isincs $usermode,$style(2)) Spamfilter Dialog:spamdialog } alias -l spamdialog { dialog $iif($dialog(spamdialog),-v,-m spamdialog) spamdialog | stats f } raw 229:*:{ if $dialog(spamdialog) { tokenize 32 $1- | did -az spamdialog 1 $2-4 $7- | halt } } raw 219:*:{ if $2 === f && $dialog(spamdialog) { $iif(%spm_txt,filter -if spamdialog 1 spamlist.txt) | halt } }

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir