Tekil Mesaj gösterimi
Alt 23 Mayıs 2012, 04:41   #3
Çevrimdışı
ulusalchat
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: badword.tcl -- kanal koruma




Heartbroken Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Selam

sabahın erken saatlerinde paylaştığım badnick koruma scripti gibi buda eski* sunucularımda botların girdiği kanallarda kanal yetkililerin kullanımına ,o kanalın savunmasına yönelik bir script.

Adından anlaşılacağı üzere badword- kötü söz koruması..komutla botun op (@) olduğu kanalda en az halfop (%) ve üzeri kanal yetkililerinin ekleyip-sileceği ve listeleyeceği şekilde yapılmıştır.

kanalda accessi olan voice (+) ve üzeri kimselere bu koruma işlemez-muaf tutar.ayrıca kod içinde muaf tutulacak kelimelerin eklenebildiği bir bölümde mevcuttur.(bunu kendinize göre düzenlemeniz gerekecektir.)

uluslararası yabancı bir sunucudaki resmi yardım kanallarının koruma botlarında kullanılmış ve halen kullanılan bir kod olduğundan orjinali ingilizce idi. Burda paylaşmak için kendimce Türkçe'leştirdim ve kullanımınıza sunuyorum.

komutlar:

!addbadword kelime* sebep -> !addbadword *napyon* napıyon olcaktı tüh bak...

!rembadword kelime* -> !rembadword *napyon*

!listbadword

görüldüğü üzere wildcard kullanabilme imkanı var.kodun en üstünde badwordlerin saklanacağı .txt dosyasının yerini-dizini doğru şekilde belirtiniz.

ÖNEMLİ: kodda satır 210-222 arasında korumadan muaf tutulacak kelimelerin ekleneceği kısım vardır.bu kısmı kendinize göre düzenleyiniz.çoğaltıp -azaltabilirsiniz o satırları..

Örneğin: korumaya [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] yada [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] badword- kötü söz olarak eklemişinizdir.ancak bazı sitelerin yazılmasına tölerans göstermek istiyorsunuzudur .işte o bölümde bunları belirtmelisiniz.

umarım ki işinize yarayacaktır.Güle güle kullanın.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
set badword_version "1.3" #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # KURULUM #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # eklenen kötü sözlerin kayıtedileceği dizini belirtin (sonu slash ile bitmeyecek şekilde) set badword_cfg(datapath) "/home/broken/ircd/bot/scripts/BadWords" # set badword_cfg(nameroot) "badwords-" #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # KURULUM SONU - bu bölümden sonrasına ne yaptığınızı bilmiyorsanız dokunmamalısınız :) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ADDBADWORD #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ####triggerların olduğu dosyaya yeni bir girdi eklemek için kullanılan prosedür bind pub - !addbadword badword:pub:add proc badword:pub:add { nick uhost handle chan arg } { if { ![isop $nick $chan] && ![ishalfop $nick $chan] } { return 0 } set word [swear:filter2 [string range $arg 0 [expr [string first " " $arg]-1]]] set reason [lrange $arg 1 end] if { $word == "" || $reason == "" } { puthelp "NOTICE $nick :Please provide a badword and a reason." return 0 } # kontroller tamam.yeni bir girdi ekleyelim. global badword_cfg set file "$badword_cfg(datapath)/badword[string range $chan 1 end].txt" set write [open $file a] puts $write "$word#$reason" close $write puthelp "NOTICE $nick : $word kelimesi $chan kanalında kötü söz olarak eklendi." } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # REMBADWORD #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # bu prosedür daha önce eklenmiş kelimenin # kanalında silinmesi içindir. bind pub - !rembadword badword:pub:rem proc badword:pub:rem { nick uhost handle chan badword } { if { ![isop $nick $chan] && ![ishalfop $nick $chan] } { return 0 } # scripti daha okunaklı hale getirir global badword_cfg set badwordfile "$badword_cfg(datapath)/badword[string trimleft $chan #].txt" # eger badword dosyası yoksa... if { ![file exists $badwordfile ] } { puthelp "NOTICE $nick : $chan kanalı için bir badword dosyası bulunamadı... Barış :)" return 0 } set tempfile "$badword_cfg(datapath)/badword[string trimleft $chan #].bak" set readfirst [open $badwordfile r] set linenumb 0 set count 0 puthelp "NOTICE $nick :İşleniyor: Kötü Söz kaldırılıyor." while { ![eof $readfirst] } { gets $readfirst line set helpwanted [string range $line 0 [expr [string first # $line]-1]] if { $badword != $helpwanted } { if { $linenumb==0 } { set writetemp [open $tempfile w] puts $writetemp $line close $writetemp incr linenumb } else { set writetemp [open $tempfile a] puts $writetemp $line close $writetemp incr linenumb } } else { incr count puthelp "NOTICE $nick :($count):!addbadword $helpwanted [string range $line [expr [string first # $line]+1] end]" } } close $readfirst set readfirst2 [open $tempfile r] set linenumb2 0 while { ![eof $readfirst2] } { gets $readfirst2 line if { [string first # $line] != -1 } { if { $linenumb2 == 0 } { set writetemp [open $badwordfile w] puts $writetemp $line close $writetemp incr linenumb2 } else { set writetemp [open $badwordfile a] puts $writetemp $line close $writetemp } } } # bu dosyayı ne diye açtık bir hiç için ?? # daha güçsüz bırakmak için mi ? if { $linenumb2 == 0 } { set writetemp [open $badwordfile w] close $writetemp } close $readfirst2 puthelp "NOTICE $nick :Tamamlandı: Kötü Söz kaldırıldı." } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # LISTBADWORDS #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Daha önce o kanal için eklenmiş tüm kötü sözler # için soran yetkiliye listelenmesi prosedürü. bind pub - !listbadword badword:pub:list bind pub - !listbadwords badword:pub:list proc badword:pub:list { nick uhost handle chan badword } { if { ![isop $nick $chan] && ![ishalfop $nick $chan] } { return 0 } # scripti daha okunaklı yapıyor global badword_cfg set badwordfile "$badword_cfg(datapath)/badword[string trimleft $chan #].txt" # eğer kötü söz dosyası yoksa... if { ![file exists $badwordfile ] } { puthelp "NOTICE $nick : $chan kanalı için oluşturulmuş bir Kötü Söz dosyası bulunamadı... Barış :)" return 0 } set read [open $badwordfile r] set text "" while { ![eof $read] } { gets $read line set text "$text [lindex [split $line #] 0]" } close $read set finish [string range $text 1 [expr [string length $text]-2]] if { $finish == "" } { puthelp "NOTICE $nick : $chan kanalı için oluşturulmuş herhangi bir Kötü Söz listesi yok :)" return 0 } # eğer ki eklenmiş kötü sözlerin sayısı çok ise. # listelerken satır aralıkları bırakacak yada satır nosu bildirilecek set long [split $finish] if { [llength $long] > 30 } { for { set c 0} { $c < [llength $long] } { incr c 30 } { if { $c == 0 } { puthelp "NOTICE $nick : $chan: kanalı için Kötü Sözler : 4[lrange $long $c [expr $c+29]]" } else { puthelp "NOTICE $nick : 4[lrange $long $c [expr $c+29]]" } } } else { puthelp "NOTICE $nick : $chan: kanalı için Kötü Sözler 4$finish" } } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # BADWORDS kontrol #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # kanal üstündeki yazışmalarda kötü söz kontrolünü # yapan prosedür # bind hepsi bind pubm - "* *" badword:pubm:check proc badword:pubm:check { nick uhost handle chan arg } { # yetkililere dokunma if { [isop $nick $chan] || [ishalfop $nick $chan] || [isvoice $nick $chan] } { return 0 } # muaf kelimeleri ayrı tutma. if { [string match -nocase "*bir-kelime-girin*" $arg] } { return 0 } if { [string match -nocase "*atmasın-bu kelimeleri*" $arg] } { return 0 } if { [string match -nocase "*bundan-atmasın*" $arg] } { return 0 } if { [string match -nocase "*böyle-çoğaltabilirsiniz*" $arg] } { return 0 } # scripti daha okunaklı yapalım global BadwordWarn badword_cfg set badwordfile "$badword_cfg(datapath)/badword[string trimleft $chan #].txt" # kötü söz dosyası yoksa.. if { ![file exists $badwordfile ] } { return 0 } # kelimeleri kötü söz listesinde araştır set input " [swear:filter $arg] " set read [open $badwordfile r] while { ![eof $read] } { gets $read line set helpwanted [string range $line 0 [expr [string first # $line]-1]] set message [string range $line [expr [string first # $line]+1] end] if { [string match -nocase "* $helpwanted *" $input] == 1 && $helpwanted != "" } { if {([info exists BadwordWarn($uhost)] == 1)} { putserv "MODE $chan +b $uhost" putserv "KICK $chan $nick : $message ($helpwanted) " unset BadwordWarn($uhost) } else { set BadwordWarn($uhost) 1 timer 5 "unset BadwordWarn($uhost)" putserv "KICK $chan $nick : $message ($helpwanted) " } } } close $read } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # filtre #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ proc swear:filter {str} { # regsub -all -- {\003[0-9]{0,2}(,[0-9]{0,2})?|\017|\037|\002|\026|\006|\007} $str "" str regsub -all -nocase {[^a-z,0-9@:/\s\|]} $str "" str return $str } # bunu kim yaptı bilmiyorum.deniyorum... proc swear:filter2 {str} { # regsub -all -- {\003[0-9]{0,2}(,[0-9]{0,2})?|\017|\037|\002|\026|\006|\007} $str "" str regsub -all -nocase {[^a-z,0-9*?@:/\s\|\-]} $str "" str return $str } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ putlog "BadWord.tcl v$badword_version yüklendi."



Sistem güzel calısıyor paylasim icin tesekkürler ancak bir sorun var türkce karakterleri kabul etmiyor kelimenin icinde ç ı ş falan gecin ce almiyor
örnek ananı kelimesini eklemek istediginde anan seklinde kalıyor

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları tatlim sohbet Mobil Chat