Konu: Çözüldü Badwords Shun + Rapor
Tekil Mesaj gösterimi
Alt 15 Mart 2025, 11:22   #4
Çevrimiçi
Gurkan
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Badwords Shun + Rapor




ByaSiL Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Merhaba;Hortlatıcam ama bunu anlayamadım.
Bu txtden mi okuyor küfürleri ws.
Birde @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] üstadım, bunun birleştirilmiş halini ve küfür list gibi bişey yapabilir miyiz. Topluca içeri alıp küfür listte görüntüleyebileceğimiz şekilde;

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
; Korumayı aktif etmek için /badword on alias badword.init { if (!$isid) return if ($exists(badwords.txt)) { loadbuf -p %badwords badwords.txt } else { set %badwords } set %badword.detect off set %badword.channels #Kanal,#Kanal1,#Kanal2 echo -a 14»1»15»4 Küfür koruması ayarları yüklendi. Korumayı aktif etmek için /badword on yazınız. } on *:START:{ badword.init } ; Sadece belirtilen kanallarda çalışır on *:TEXT:*:%badword.channels:{ if (%badword.detect == on) { var %chan = $chan, %nick = $nick if (%nick !isop %chan) { var %msg = $1-, %i = 1 while (%i <= $numtok(%msg, 32)) { if ($istok(%badwords, $gettok(%msg, %i, 32), 32)) { Shun %nick 2Sunucu kurallarına uymadığınız için bir süre girişiniz yasaklanmıştır. Lütfen Sunucu kurallarına uyunuz daha ayrıntılı bilgi ve yardım için 4/motd2 yazınız. 4Nick:2 %nick 4Kanal:2 %chan 12$time msg #Rapor 4Küfür Tespiti: 14%nick 4kullanıcısı 14%chan 4kanalında küfür kullandı. Kelime: 14$gettok(%msg, %i, 32) 4- Saat: 14$time halt } inc %i } } } } on *:ACTION:*:%badword.channels:{ if (%badword.detect == on) { var %chan = $chan, %nick = $nick if (%nick !isop %chan) { var %msg = $1-, %i = 1 while (%i <= $numtok(%msg, 32)) { if ($istok(%badwords, $gettok(%msg, %i, 32), 32)) { Shun %nick 2Sunucu kurallarına uymadığınız için bir süre girişiniz yasaklanmıştır. Lütfen Sunucu kurallarına uyunuz daha ayrıntılı bilgi ve yardım için 4/motd2 yazınız. 4Nick:2 %nick 4Kanal:2 %chan 12$time msg #Rapor 4Küfür Tespiti (ACTION): 14%nick 4kullanıcısı 14%chan 4kanalında küfür kullandı. Kelime: 14$gettok(%msg, %i, 32) 4- Saat: 14$time halt } inc %i } } } } on *:NOTICE:*:%badword.channels:{ if (%badword.detect == on) { var %chan = $chan, %nick = $nick if (%nick !isop %chan) { var %msg = $1-, %i = 1 while (%i <= $numtok(%msg, 32)) { if ($istok(%badwords, $gettok(%msg, %i, 32), 32)) { Shun %nick 2Sunucu kurallarına uymadığınız için bir süre girişiniz yasaklanmıştır. Lütfen Sunucu kurallarına uyunuz daha ayrıntılı bilgi ve yardım için 4/motd2 yazınız. 4Nick:2 %nick 4Kanal:2 %chan 12$time msg #Rapor 4Küfür Tespiti (NOTICE): 14%nick 4kullanıcısı 14%chan 4kanalında küfür kullandı. Kelime: 14$gettok(%msg, %i, 32) 4- Saat: 14$time halt } inc %i } } } } on *:JOIN:%badword.channels:{ if (%badword.detect == on) { var %chan = $chan, %nick = $nick ; Eğer nickin kendisi küfür içeriyorsa var %i = 1 while (%i <= $numtok(%nick, 32)) { if ($istok(%badwords, $gettok(%nick, %i, 32), 32)) { Shun %nick 2Sunucu kurallarına uymadığınız için bir süre girişiniz yasaklanmıştır. Lütfen Sunucu kurallarına uyunuz daha ayrıntılı bilgi ve yardım için 4/motd2 yazınız. 4Nick:2 %nick 4Kanal:2 %chan 12$time msg #Rapor 4Küfürlü Nick Tespiti: 14%nick 4kullanıcısı 14%chan 4kanalına girdi. 4- Saat: 14$time halt } inc %i } } } alias badword { if ($1 == on) { set %badword.detect on echo -a 14»1»15»4 Küfür koruması aktif edildi. } elseif ($1 == off) { set %badword.detect off echo -a 14»1»15»4 Küfür koruması devre dışı bırakıldı. } elseif ($1 == add) { if ($2 != $null) { set %badwords $addtok(%badwords, $2, 32) echo -a 14»1»15»4 Listeye $2 eklendi ; Kaydet write -c badwords.txt %badwords } } elseif ($1 == del) { if ($istok(%badwords, $2, 32)) { set %badwords $remtok(%badwords, $2, 32) echo -a 14»1»15»4 Listeden $2 silindi ; Kaydet write -c badwords.txt %badwords } } elseif ($1 == delall) { unset %badwords echo -a 14»1»15»4 Küfür listesi boşaltıldı ; Kaydet write -c badwords.txt %badwords } elseif ($1 == list) { if ($window(@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]s-List) == $null) { window -ab @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]s-List } if ($numtok(%badwords, 32) == 0) { aline @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]s-List 14»1»15»1 Listede hiçbir kelime yok halt } aline @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]s-List 14»1»14»4 Küfürlü kelimeler listeleniyor... 4Toplam küfür: ( $+ $numtok(%badwords, 32) $+ ) var %n = 1 while (%n <= $numtok(%badwords, 32)) { aline $color(info 2) @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]s-List 4»»» $gettok(%badwords, %n, 32) inc %n } aline @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]s-List 14»1»15»4 Liste sonu } elseif ($1 == import) { if ($2 != $null) { var %importfile = $2 if (!$exists(%importfile)) { echo -a 4»1»15»4 Dosya bulunamadı: %importfile return } var %lines = $lines(%importfile), %i = 1 var %count = 0 while (%i <= %lines) { var %line = $read(%importfile, %i) if (%line != $null) { ; Satırı boşluklardan ayır ve her kelimeyi ekle var %j = 1, %words = $numtok(%line, 32) while (%j <= %words) { var %word = $gettok(%line, %j, 32) if (%word != $null) { if (!$istok(%badwords, %word, 32)) { set %badwords $addtok(%badwords, %word, 32) inc %count } } inc %j } } inc %i } echo -a 14»1»15»4 Toplam %count yeni kelime eklendi write -c badwords.txt %badwords badword list } else { echo -a 14»1»15»4 Dosya adı belirtilmedi. Kullanım: /badword import [dosya_adı] } } elseif ($1 == export) { ; Küfür listesini TXT dosyasına kaydet if ($2 != $null) { var %exportfile = $2 write -c %exportfile %badwords echo -a 14»1»15»4 Küfür listesi %exportfile dosyasına kaydedildi } else { echo -a 14»1»15»4 Dosya adı belirtilmedi. Kullanım: /badword export [dosya_adı] } } elseif ($1 == channels) { if ($2 != $null) { set %badword.channels $2 echo -a 14»1»15»4 Küfür koruması şu kanallarda aktif: %badword.channels } else { echo -a 14»1»15»4 Mevcut kanallar: %badword.channels } } elseif ($1 == editor) { badwords.editor } elseif ($1 == help) { echo -a 14»1»15»4 Küfür koruması komutları: echo -a 14»1»15»4 /badword on - Korumayı aktif et echo -a 14»1»15»4 /badword off - Korumayı devre dışı bırak echo -a 14»1»15»4 /badword add [kelime] - Küfür ekle echo -a 14»1»15»4 /badword del [kelime] - Küfür sil echo -a 14»1»15»4 /badword delall - Tüm küfürleri sil echo -a 14»1»15»4 /badword list - Küfür listesini göster echo -a 14»1»15»4 /badword import [dosya_adı] - TXT dosyasından küfür listesi içeri aktar echo -a 14»1»15»4 /badword export [dosya_adı] - Küfür listesini TXT dosyasına dışa aktar echo -a 14»1»15»4 /badword channels [kanal1,kanal2] - Kanalları ayarla echo -a 14»1»15»4 /badword editor - Gelişmiş küfür listesi düzenleyicisini aç } else { echo -a 14»1»15»4 Geçersiz komut. Yardım için /badword help yazınız. } } alias badwords.editor { dialog -m badwordsEditor badwordsEditor } dialog badwordsEditor { title "Küfür Listesi Düzenleyici" size -1 -1 500 400 option dbu text "Mevcut Küfür Listesi:", 1, 5 5 100 8 list 2, 5 15 300 330, vsbar button "Ekle", 10, 315 15 175 25 button "Seçileni Sil", 11, 315 45 175 25 button "Dosyadan İçe Aktar", 12, 315 75 175 25 button "Dosyaya Dışa Aktar", 13, 315 105 175 25 button "Tümünü Temizle", 14, 315 135 175 25 button "Aktif/Pasif Yap", 15, 315 165 175 25 text "Durum:", 20, 5 350 40 10 text "", 21, 50 350 200 10 button "Kapat", 99, 315 340 175 25, ok } on *:dialog:badwordsEditor:init:*:{ ; Listeyi doldur did -r badwordsEditor 2 var %i = 1 while (%i <= $numtok(%badwords, 32)) { did -a badwordsEditor 2 $gettok(%badwords, %i, 32) inc %i } ; Durumu göster if (%badword.detect == on) { did -o badwordsEditor 21 4AÇIK - Aktif Kanallar: %badword.channels } else { did -o badwordsEditor 21 14KAPALI } } on *:dialog:badwordsEditor:sclick:10:{ ; Ekle butonu var %word = $$?="Eklemek istediğiniz küfürlü kelimeyi giriniz:" if (%word != $null) { if (!$istok(%badwords, %word, 32)) { set %badwords $addtok(%badwords, %word, 32) did -a badwordsEditor 2 %word write -c badwords.txt %badwords } else { echo -a 14»1»15»4 Bu kelime zaten listede var! } } } on *:dialog:badwordsEditor:sclick:11:{ ; Seçileni Sil butonu var %sel = $did(badwordsEditor, 2).sel if (%sel > 0) { var %word = $did(badwordsEditor, 2).seltext set %badwords $remtok(%badwords, %word, 1, 32) did -d badwords on *:dialog:badwordsEditor:sclick:11:{ ; Seçileni Sil butonu var %sel = $did(badwordsEditor, 2).sel if (%sel > 0) { var %word = $did(badwordsEditor, 2).seltext set %badwords $remtok(%badwords, %word, 1, 32) did -d badwordsEditor 2 %sel write -c badwords.txt %badwords } } on *:dialog:badwordsEditor:sclick:12:{ ; Dosyadan İçe Aktar butonu var %file = $sfile($mircdir, Dosyadan Küfür Listesi Yükle, *.txt) if (%file != $null) { var %lines = $lines(%file), %i = 1 var %count = 0 while (%i <= %lines) { var %line = $read(%file, %i) if (%line != $null) { ; Satırı boşluklardan ayır ve her kelimeyi ekle var %j = 1, %words = $numtok(%line, 32) while (%j <= %words) { var %word = $gettok(%line, %j, 32) if (%word != $null) { if (!$istok(%badwords, %word, 32)) { set %badwords $addtok(%badwords, %word, 32) did -a badwordsEditor 2 %word inc %count } } inc %j } } inc %i } write -c badwords.txt %badwords echo -a 14»1»15»4 Toplam %count yeni kelime eklendi } } on *:dialog:badwordsEditor:sclick:13:{ ; Dosyaya Dışa Aktar butonu var %file = $sfile($mircdir, Küfür Listesini Dışa Aktar, *.txt) if (%file != $null) { write -c %file %badwords echo -a 14»1»15»4 Küfür listesi %file dosyasına kaydedildi } } on *:dialog:badwordsEditor:sclick:14:{ ; Tümünü Temizle butonu if ($?!="Tüm küfür listesini silmek istediğinize emin misiniz? (evet/hayır)" == evet) { unset %badwords did -r badwordsEditor 2 write -c badwords.txt echo -a 14»1»15»4 Küfür listesi tamamen temizlendi } } on *:dialog:badwordsEditor:sclick:15:{ ; Aktif/Pasif Yap butonu if (%badword.detect == on) { set %badword.detect off did -o badwordsEditor 21 14KAPALI echo -a 14»1»15»4 Küfür koruması devre dışı bırakıldı. } else { set %badword.detect on did -o badwordsEditor 21 4AÇIK - Aktif Kanallar: %badword.channels echo -a 14»1»15»4 Küfür koruması aktif edildi. } } ; Toplu küfür ekleme işlemi için daha kullanışlı bir dialog alias badwords.bulkadd { dialog -m badwordsBulkAdd badwordsBulkAdd } dialog badwordsBulkAdd { title "Toplu Küfür Ekleme" size -1 -1 400 300 option dbu text "Her satıra bir küfür gelecek şekilde liste girin:", 1, 5 5 300 8 edit "", 2, 5 15 390 250, multi vsbar button "Ekle", 10, 5 270 190 25 button "İptal", 99, 200 270 195 25, cancel } on *:dialog:badwordsBulkAdd:sclick:10:{ ; Ekle butonu var %text = $did(badwordsBulkAdd, 2).text var %lines = $numtok(%text, 13), %i = 1 var %count = 0 while (%i <= %lines) { var %line = $gettok(%text, %i, 13) if (%line != $null) { ; Satırı boşluklardan ayır ve her kelimeyi ekle var %j = 1, %words = $numtok(%line, 32) while (%j <= %words) { var %word = $gettok(%line, %j, 32) if (%word != $null) { if (!$istok(%badwords, %word, 32)) { set %badwords $addtok(%badwords, %word, 32) inc %count } } inc %j } } inc %i } write -c badwords.txt %badwords echo -a 14»1»15»4 Toplam %count yeni kelime eklendi ; Eğer editör açıksa listeyi güncelle if ($dialog(badwordsEditor)) { dialog -r badwordsEditor badwords.editor } ; Dialog'u kapat dialog -x badwordsBulkAdd } on *:dialog:badwordsEditor:sclick:*:{ if ($did == 16) { badwords.bulkadd } } Menu Channel { Küfür Koruması .Ayarlar:/badword.editor .Aktif Et:/badword on .Devre Dışı Bırak:/badword off .Küfür İşlemleri ..Küfür Ekle:/badword add $$?="Küfür gir:" ..Toplu Küfür Ekle:/badwords.bulkadd ..Küfür Listesini Göster:/badword list ..Gelişmiş Editör:/badwords.editor .Dosya İşlemleri ..İçe Aktar:/badword import $$?="Dosya adı girin:" ..Dışa Aktar:/badword export $$?="Dosya adı girin:" } on *:dialog:badwordsEditor:init:*:{ ; Diğer başlangıç kodları zaten yazıldı ; Toplu ekleme butonu ekle did -a badwordsEditor 16 "Toplu Küfür Ekle" 315 195 175 25 }

Modifiye edilmiş kod, kodu denedikten sonra tecrübelerini buraya yazabilir misin?
; Belirtilen kanallarda çalışma
; Toplu küfür ekleme
; Küfür listesi
; Dosyadan içe ve dışa aktarma
; Menü entegrasyonu eklendi.


Konu Gurkan tarafından (15 Mart 2025 Saat 11:24 ) değiştirilmiştir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet bizimmekan