Tekil Mesaj gösterimi
Alt 28 Temmuz 2014, 10:01   #6
Çevrimdışı
saywhat
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: adwords.conf soru..




kendi botuma göre ayarlayıp ,sorun olup olmadığını test ettim.

bot ana dizininde spam.txt oluşturup
denemek için botun yakalaması için birkaç "yasak" kelimeyi alt alta girdim.
kimini : *s*p*a*m - kiminide : yassağ - vs gibi ekledim ki neyi yakalayıp neyi yakalamadığını görebileyim.

denemeler sonucunda koda biraz "rütuş" yapmak gerekti.. en iyi sonucu :

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
bind pubm - "% *" ad:words proc ad:words {nick uhost hand chan text} { # bot ana dizininde spam.txt dosyası oluşturun içine yasak sözleri alt alta yazın # wildcard kullanarak ta ekleme yapılabilir *sp*a? vs gibi . # bunlarda büyük-küçük harf fark etmez. set dosya "spam.txt" # yakalanacak kanal mesajındaki olası renk kodlarını ve özel karakterleri ayıklamak için set text [filter [stripcodes bcruag $text]] #kanalda hangi mesajı yakalayıp, postalayan nicki ve yazdığı şeyleri yakaladığı kısım if {[regexp -nocase -- {\((.*?):PRIVMSG:(.*)$} $text "" hedef laf]} { # spam sözü,harfler arasına farklı karakterler yerleştirip atanlar için alttaki satır. # ilk attığım kodda bu satırda hata yapmışım.o nedenle beklenen işi yapmıyor-du... # olması gereken şekli budur. regsub -all -- {[A-Z\+\%\`\=\&\#\+\-\_\!\~\<\,\@\#\$\%\^\&\*]} $laf "A+%`=&#+-_!~<,@#$%^&*" laf # bu satıra gerek yokmuş.bu olsada,olmasada yapacağını yapıyor. #set laf *[string map -nocase {" " *} $laf]* set i 0 set fp [open $dosya r] while {[gets $fp b] >= 0} { # kanaldan yakalanan mesajlar "laf" dosyadan okunanlarla eşleşiyormu ? # diğer deyişle ,yasak kelime/ler içeriyor mu? if {[string match -nocase "*$b*" $laf]} { # kendi botumda denerken eklediğim satır. "laf" ları ve nick kısmını, dosyadan okunan # kelimelerle eşleşme olduğunda kanala yakalanan nicki ve "laf" ları nasıl yakaladığını # "laf" içinde ve nick'te olabilecek özel karakterlerin bot için bir sorun # olup olmadığını görmek için kullandım. siz kullanmayın.. #puthelp "privmsg $chan :laf çıktısı: -> $laf - hedef-nick çıktısı: -> $hedef" #putquick "shun $hedef 5m :det!!!" #putquick "sajoin $hedef 0" #putquick "sajoin $hedef #uyarı" incr i } } close $fp } return 0 } # Tcl için özel karakterleri filtre etmek için prosedür. # bunda da "sorun" vardı .. istenen işi iyi yapmıyordu...onarıldı.. proc filter {text} { set text [string map {"\\" "\\\\" "\[" "\\\[" "\]" "\\\]" "\{" "\\\{" "\}" "\\\}" "\$" "\\\$" "\"" "\\\""} $text] return [subst $text] }


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


bu şekilde verdi... buna göre kodun son "çalışan" denenmiş ,sizin kullanmak isteyebileceğiniz hali :

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
bind pubm - "#adwords *" ad:words proc ad:words {nick uhost hand chan text} { set dosya "spam.txt" set text [filter [stripcodes bcruag $text]] if {[regexp -nocase -- {\((.*?):PRIVMSG:(.*)$} $text "" hedef laf]} { regsub -all {[A-Z\+\%\`\=\&\#\+\-\_\!\~\<\,\@\#\$\%\^\&\*]} $laf "A+%`=&#+-_!~<,@#$%^&*" laf set i 0 set fp [open $dosya r] while {[gets $fp b] >= 0} { if {[string match -nocase "*$b*" $laf]} { putquick "shun $hedef 5m :det!!!" putquick "sajoin $hedef 0" putquick "sajoin $hedef #uyarı" incr i } } close $fp } return 0 } proc filter {text} { set text [string map {"\\" "\\\\" "\[" "\\\[" "\]" "\\\]" "\{" "\\\{" "\}" "\\\}" "\$" "\\\$" "\"" "\\\""} $text] return [subst $text] }


 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet