Tam Sürüm Bilgini Göster : TCL arşivleri
netkolik
28-11-2006, 02:32
GUZEL SOZ TCL
set soz {
" gidiyorum uzaklara bilinmez diyarlara seni bırakıp gitmek var ya o koyuyor bana ben senle olamadım gençliğime doyamadım ben senle kalamadım günlerimi sayamadım ölümde var sonunda gülümde var dağların arkasında yağar yar."
"gecemidir insanı hüzünlendiren yoksa insan mıdır hüzünlenmek icin geceyi bekleyen. gecemidir senin bana düsündüren yoksa benmiyim seni düsünmek icin geceyi bekleyen??"
"bu gece pencereni açık bırak uzaklardan kuş uçurdum biraz yorgun biraz ıslak ama yinede başucuna bir tutam sevgi bırakacak almayı unutma...."
"geceleri uzaklara cıglık olur sesim,denizden cıkan yosun kokusundan keskin sana olan özlemim, bu gece senin icin kapanacak gözlerim iyi geceler herseyim."
"Sen Tanrıya dilenen dilek, göklere uzanan ellerimsin. Sen gözümden süzülen yas, tek düşüncem, hasretimsin. Sen yaşadığım ömür, en güzel günlerimsin."
"Aşk, gülü dikeniyle avuçlamaya benzer. Ellerin kan içinde kalır ama dikenlerinden hesabini, gülden soramazsın."
"O kadar güzelsin ki yüzüne bakamıyorum. Titriyor ellerim, ellerini tutamıyorum. Dolanıp sarmak geliyor saramıyorum. Öylesine bağlanmışım ki sensiz duramıyorum."
"Ilık bir rüzgâr esti buradan,nerden geldiğini bilemedim,Nereye gidiyorsun dedim,özlenen her şeye dedi,benimde aklıma sen geldin;çünkü buralarda özlendin,Ilık bir rüzgâr esti buradan,nerden geldiğini bilemedim,Nereye gidiyorsun dedim,"
"Duanla Yaşamadımki Bedduanla Öleyim."
"Hayat, silgisiz resim çizme sanatıdır."
"sahilde oturup denize bakan,Yakasız gömleğe kıravat takan, Ağzındaki sigarayı tersten yakan, Bir sevdalı görürsen hatırla beni.!"
"ne yıldızlar istiyorum gece yarılarıma ,ne güneşi istiyorumkaranlıklarıma,yalnız seni istiyorum yalnızlığıma..."
"Birgün Hayat Dedikleri Şeyi Merak edersen Unutmaki Hayat Hayatım Diyebilecegin İnsanı Bulunca Baslar.Benim içinde Hayat Seninle Başlıyor"
"Dostluk,gereğince tanımlanamazlardandır ve ancak yasamakla anlaşılır. Bu yüzden dostluk şiir gibi aşk gibi anlatılmaz yasanır."
"Ölmekten korkmuyorum seni milyonlarca yağmur damlasıyla paylaşmatan korkuyorum çiçek olup açmandan değil seni bir gün gelip koparmalarından korkuyorum."
"yarınlar umudumdu benim bugünlere düşmandım, yarınımdım sen benim bugünüm olamazdın ,yarınlar hic gelmedi,ben hep bu gunlerde kaldım."
"TOK OLAN CÜMLE CİHANI TOK SANIR , AÇ OLAN ALEMDE EKMEK YOK SANIR."
"Kader beyaz kağıta sütle yazılmış yazı, elindeyse sıyır beyazdan beyazı. Tanrımdan umuyorum ki seni kaderime yazmış olsun."
"Sevenler sevilmediklerini bilseler bile sevdiklerini unutmazlar.."
"ben seni unutmak için sevseydim sana olan askimi kalbime degil günes dogdugu zaman kaybolan bugulu camlara yazardim."
"size dün tanistigim dört arladastan bahsedecegim isimleri biri herkez hangisi ve kimse konu dostluk biri sordu herkezle dost olurmu herkez hangisi dost oldumuki bende dost olayim hangisi üzülür kimse yoktuki der kimse sessiz kimse buruk kimse saskin çünkü o hiç kimse deyildiki ben isie bir and aldim yildizlari seyire ve sonra bir yildiz kaydi bende düstüm yer yüzüne anladim hiç birimiz hiç kimse deyilmisiz eger allaha kul olmayi beceremiyorsak."
"bagrimda bir ates var ne bileceksin ölsemde ne duyacak ne göreceksin hep seninle yasadi öldü deseler belki biraz üzülüp kim diyeceksin!!"
"50-60 yillik dunyayi neyleyim versen bana sadece ilim irfan gerisi zaten hep yalan."
"Ben yamaçtan ineyim Yol senin olsun. Ben zehir içeyim Su senin olsun. Duydum ki, Bir sevgili bulmussun, Hayirli olsun Bir tanede ben buldum Haberin olsun."
"Mademki sen yoksun yanimda leylaklar dökülüp güller aglasin."
"Yasadiklarimdan pisman degilim Öfkem Yasayamadiklarimdandir."
"bir gün sende seveceksin sevene zulum etmenin cezasini cekeceksin .iste o zaman ben gelirim aklina ama ayni anda sende benim kalbimde öleceksin"
"beni sensiz biraktigin gun geliyor aklima , dusunuyorumda cok aci cekmistim , ama su anda dahada cok cekiyorum ama biliyorumki sen bu aciya hicbir zaman degmedin beni hic bir zaman sevmedin sen sevsende sevmesende ben seni sevdim hepde öyle kalacak."
"sen benzer diye kücük cicekleri öptügümsün,sen yoklugunu uzun yillara gömdügümsün,sen bir türlü cözemedigim kördügüm,sen sevipde koklayamadigim GÜLÜMSÜN!!"
"GÜN GELİRSE ELLERİN ELLERİMDEN AYRILIRSA BİR YABANCI GİBİ SÖZ SÖYLERSE DİLLERİN BENİ GÖRÜPTE GÖRMEZDEN GELİRSE GÖZLERİN ECEL GEREKMEZ BEN O ZAMAN ÖLÜRÜM GÜLÜM."
"Biz yıkılmaz sevgilerin sarsılmaz yaşlarıyız.yüreğimizde sevda yazar anlımızda bela biz delice sevmeyi biliriz.Ama sevdiğimizi unutmayı asla."
"AŞK, KÖLE OLMAYACAK KADAR ÖZGÜR, ULAŞILAMAYACAK KADAR DERİN, KAÇAMAYACAK KADAR YAKIN, SENİNLE YAŞANACAK KADAR GÜZELDİR."
"Güzel insan O dur ki kaderden gelen lütfa sevinmez kahra incinmez."
"SENI SEVDIGIMI SANA DAHA NASIL ANLATAYIM. ÖLMEK GEREKİRSE ÖLÜRÜM AMA SENIN BENI SEVDIGINI BILIRSEM."
"HER HAKSIZ ELEŞTİRİNİN ALTINDA GİZLİ BİR HAYRANLIK YATAR."
"KAVUŞMAK ÖLÜMSE HASRETİN ZULÜM.ELBETTE KAVUŞURUZ BEKLE GÜLÜM TEK SANA AİTTİR ŞU GÖNLÜM BEN YOLUMU SEÇTİM YA SEN YA ÖLÜM."
"En büyük felaketler dahi içinde ümidini kaybetme,unutmaki, en yumusak ilik en sert kemigin içinden çikar, gülmek senin için bir tutku olsun.Olurda bir gün aglarsan o da mutluluktan olsun."
"Yüregimizde ates,gözlerimizde sevgi, ellerimizde umutla bütün kötülüklere inat, gülümseyerek yasiyoruz.Her insan bir yasam, unutma! sen de bir yasamsin."
"Gönlüne düserse bir imkansiz ask, kacarken vurulmus ceylan gibi yüregin, aglarsin. Irmak olur gözyaslarin bosa, kendini taniyamazsin. Asiksan yarimsin ..., yikamam kumdan kalemi, aldatamam kendimi, acamam mühürlü kalbimi, anlatamam derdimi."
"KIZIL GÜNAHLAR KALDI SENDEN GERIYE,VEBALI AGIR YASANMISLARIN.MAVI SEVDALAR TÜKENDI ARTIK..NE SEN KALDIN NE DE HAYALIN PENCEREMDE."
"YAGMUR GORURSEN GOZLERIMI HATIRLA SARI YAPRAK GORURSEN KALBIMI HATIRLA ACI TEBESSUM GORURSEN DUDAKLARIMI HATIRLA ELLER USTUNDE BIR TABUT GORURSEN BENI HATIRLA."
"KALBIMI YERINDEN SOKUP, BIR ZARFA KOYUP GONDERIYORUM SANA. ZARFI ACINCA SASIRMA! CUNKU HERYERINDE BIRTEK KENDINI GORECEKSIN. VE ANLAYACAKSIN SENI SEVMENIN NE DEMEK OLDUGUNU."
"Yillar vardir nasil geçtigini bilmezdim bir gün vardir yasamin anlamini degistirdi bana dair hissetmedigimi bilmedigimi yasatti iste o ani senle yasadim senle sevdim."
"Birgün senden ayrilacagim biryana yalniz kalacagim hiç aklima gelmemisti. ve birde birgün umudum olmayinca yarina,bugünü yasiyormuyum anlayamadim."
"Hayatta yasamanin 2 yolu vardir 1.Hiçbirseyin mucize olmadigini düsünmek 2.Herseyin bir mucize oldugunu düsünmek."
"Hayat Güzeldir Ama Acilari Olsada, Güller GÜzeldir Ama Dikenleri Olsada, Insanlar Güzeldir Ama yalanlari Olsada, Ask Güzeldir Ama Sevipte Ayrilik Olmasa."
"Ask, insanin kendisine yapabilecegi en büyük iskencedir.."
"dostum var diye gezerdim ne zaman yikilacak gibi oldumsa dostlarima giderdim ama bugun yine agliyorum ve anladimki gercek dostlarim ben aglarken guluyormus YAZIK BE DOSTLUK OLMUS."
"BiR AşKı PaYLaŞMaK İçiN ÇoK GeÇ irPaYLaŞıMa aşıK OLMaK İçinSe ErKeN YiNe SeVDa YeRiMDeN VuRDu ZaMaNŞiMDi SaNa SÖYLeNeCeK TeK CüMLe BeNDe SaNa YeTeCeK KADaR BEN KaLMaDı."
"ŞaiR ßenSem ŞiiRim SenSiN AşıK ßenSem aŞkım SenSiN SarhoŞ ßenSem ŞaRaßım SenSiN DeLi ßenSem ZinCiRim SenSiN ßen HaLa YaŞıYoRSam Seßebi SenSiN.."
"Gördüğüm en güzel rüya senin olduğun,Duyduğum en derin sevgi senin eserin, Gördüğüm en güzel dünya senin gözlerin,Ve kurduğum en güzel hayal sensin"
"Seni asil insanların basit sevgileriyle değil, basit insanların asil sevgileriyle sevdim. Bu güzel aşkımıza nokta koyma, sana kucak dolusu virgül getirdim?"
"Yanağına düşen kar tanesi eriyip dudaklarına indiğinde ve o bir damla serinliği biriyle paylaşmak istediğinde yüzünü rüzgara dön, ordayım!"
"Sana doğru bir kelebek uçurdum, dağları denizleri aştı seni buldu, yanağına ufacık bir öpücük kondurdu. Hissettin mi?"
"Ağzımdan çıkacak söz olsan konuşmam, gözümden akacak yaş olsan ağlamam, kalbime hapsettim seni hiçbir yere bırakmam!"
"Bir insanı sevmek onunla yaşlanmayı kabul etmek demektir benim için. Ben seni seviyorum ve bir ömür boyu seninle olmak istiyorum."
"Seni yıldızlara benzetiyorum onlar kadar uzak onlar kadar erişilmezsin ama bir farkın var onlar bin tane sen bir tanesin."
"Hayallere dalıp gitmem ben, Çünkü tek hayalim sensin benim! Hiçbirşey isteyemem benÇünkü birtek istediğim sensin benim."
"Bir an buruk bir acı saplanırsa yüreğine,gözlerin zamansız takılırsa,kulakların zamansız deli gibi çınlarsabil ki bir yerlerde özlemişsindir"
"Sen benim gözlerimde saf bir gerçek,Yüreğime bahar getiren bir çiçeksin.Sen bedenimdeki yumuşak kudret,Gönül bahçemde uçuşan bir kelebeksin.."
"Sevgilerin en güzeli seni sevmek, Özlemlerin en güzeli seni özlemek, Ve hayatın tadı sabah kalktığımda, Senin varolduğunu bilmek... "
"Bırakma beni sevdiğim gidişine dayanamam,Hasret gözyaşlarımla kendimi avutamam,Dönerim dersin ama kadere inanamam,Bıraktığın anılarla sensiz yaşayamam... "
"Sahiller dalgayı nasıl beklerse, Gökyüzü mehtabı nasıl özlerse, Kuru topraklar suya nasıl hasretse, Sende benim hasretimsin..."
"Aşkınla sararıp solacak kadar,Sevginle bahtiyar olacak kadar Uğruna canımı verecek kadar seviyorum desem inanırmısın ?"
"Yanağına düşen kar tanesi eriyip dudaklarına indiğinde ve o bir damla serinliği biriyle paylaşmak istediğinde yüzünü rüzgara dön, ordayım!"
"Bir yağmur damlası seni seviyorum anlamı taşısaydı ve sen bana seni ne kadar sevdiğimi soracak olsaydın, inan ki birtanem her gün yağmur yağardı."
"Seni asil insanların basit sevgileriyle değil, basit insanların asil sevgileriyle sevdim. Bu güzel aşkımıza nokta koyma, sana kucak dolusu virgül getirdim?"
"Bütün mevsimleri bir günde, bütün yılları bir mevsimde yaşamaya razıyım seninle... Bir tutam sevinç, bir tutam umut ve bir tutam mutluluk gönderiyorum sana."
"Beyaz bir güvercin yolluyorum sana; kanatlarında mutluluk, yüreğinde sevgi ve sadakat, karbeyaz tüylerinde umut ve gagasında iyi geceler öpücüğü, yanağını uzat."
"Seni bulmaktan çok aramak isterim! Seni sevmeden önce anlamak isterim! Seni bir ömür boyu bitirmek değil de sana hep yeniden başlamak isterim."
"Bir gül olmak isterdim! Neden mi? Beni koparıp kokladığında vücudunun derinliklerine girip bir daha oradan çıkmamak için?"
"Bizi anlatan şiirler yazılmadı henüz.Çünkü biz dünyanın oyununda,hayatın acımasızlığında ve de sevdiklerimizin baygın bakışlarında unutulduk.."}
# !!!!!!!!! Ayarlamalar Bitti !!!!!!!!!!!!
bind pub - !soz tell_that
proc tell_that {nick uhost hand chan $rand} {
global soz
putserv "privmsg #Siir 4 $nick 2 Güzel Söz isteğiniz : 2|7 [lindex $soz [rand [llength $soz]]] 2| ..::SiberDunya.Net::.."
}[/COLOR][/CODE]
netkolik
28-11-2006, 02:37
Chanlimit.TCL
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
# Kanal Giriş Limiti Ayarlanması
# Copyright © - TicariChat 2003
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
# Binds
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
bind time - "* * * * *" time:ChanLimit
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
# time:ChanLimit start
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
proc time:ChanLimit {min hour day month year} {
foreach chan [channels] {
set newlimit [expr [llength [chanlist $chan]] + 4]
set currentlimit [currentlimit $chan]
if {$currentlimit < [expr $newlimit - 1] || $currentlimit > [expr $newlimit + 1]} {
putserv "samode $chan +l $newlimit"
}
}
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
# time:ChanLimit end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
# currentlimit start
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
proc currentlimit {chan} {
set currentmodes [getchanmode $chan]
if {[string match "*l*" [lindex $currentmodes 0]]} {
return [lindex $currentmodes end]
}
return 0
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
# currentlimit end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
# putlog
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
putlog "Loaded ChanLimit - Ticarichat"
netkolik
28-11-2006, 02:40
Global TCL( istenilen metni global atmak için kullanacağınız tcl)
###########################################
#Global uygulamasinin yapilabilecegi kanal
###########################################
set tg_chan "#opers"
###########################################
#Uygulamanin calismasi icin botun oper login ve nick login paslari
###########################################
set o_login "global"
set o_pass "123globalbot"
set b_ipass "123456"
###########################################
#Gerekli uygulamalar
###########################################
bind pub - !global global:msg
bind evnt - init-server baglanti:ayari
###########################################
#Buraya DOKUNMAYIN! (siz bilirsiniz) :)
###########################################
proc global:msg {n u h c a} {
set tg_msg [lindex $a ]
if {[isop $n $tg_chan]==1} {
putserv "NOTICE $* \02<$n>\02 $tg_msg"
}
if {[isop $n $tg_chan]==0} {
putserv "SAMODE $c +b $n"
purserv "KICK $c $n Bu komudu kullanmaya Yetkili degilsiniz!"
}
}
proc baglanti:ayari {type} {
putserv "NICKSERV IDENTIFY $b_ipass
putserv "OPER $o_login $o_pass"
putserv "WALLOPS :Helper Global mesaj sistemi aktif!"
}
putlog "Global mesaj atma sistemi yuklendi"
putlog "Bot OPER ve Global kullanma izni olmadigi surece"
putlog "Calismayacaktir!"
putlog "!helpglobal globalmesajiniz seklinde calismatadir"
netkolik
28-11-2006, 02:42
Radyo.TCL Eklentisi(!yes,!no,!istek )
#gerekli bindler
bind pub - !yes yes
bind pub - !no no
bind pub - !istek istek
bind evnt - init-server baglan_yap
#Gerekli degiskenler
set inick "opernick"
set ipass "opersifresi"
#ELLEMEYIN (Siz Bİlirsiniz)
proc baglan_yap {type} {
global inick ipass
putserv "OPER $inick $ipass"
putserv "WALLOPS :Basari ile Login Oldum :)"
}
proc yes {n u h c a} {
set kanal [lindex $a 0]
putserv "PRIVMSG #Radyo :\002$kanal\002 :\0034İsteğiniz Arşivimizde Mevcut. Kısa Süre İçinde İsteginiz yayınlanacaktır."
}
proc no {n u h c a} {
set kanal [lindex $a 0]
putserv "PRIVMSG #Radyo :\002$kanal\002 :\0034Üzgünüm,İsteğiniz Arşivimizde Bulunmamaktadır. Başka Bir İstekte Bulunabilirsiniz."
}
proc istek {n u h c a} {
set kanal [lindex $a 0]
putserv "PRIVMSG #DJ :\0034İstek İsteyen Nick \002$n\0034 İsteği:\001 $kanal"
putserv "PRIVMSG #Radyo :\002$n \0034Lütfen bekleyiniz. İsteginizi Kontrol Ediyorum."
}
netkolik
28-11-2006, 02:44
Kick Kanal Sayacı
# Bu Tcl Cok basit kanal kick ve join Sayac Tcl`idir..
# Kanaliza Giren Kisileri vede kanaldan atilan kisileri sayar..
# Bu Tcl IRCturk NEtwork Team Tarafindan Yazilmistir..
# Tcl calismak icin userinfo1.0.tcl ye ihtiyac duyar..
# Aksi takdirde calismicaktir..
# Stonkeep
#
# Kullanabileceginiz Komutlar..
# Kanalda:
# !toplamgiris - Kanala bugune kadar kisi sayisini gosterir..
# !toplamatilan - Kanaldan bugune kadar atilan kisi sayisini gosterir..
# !toplamatilan <nick> - Nick`in kac kisiyi attigini gosterir..
# DCC Komutlari:
# .toplamgiris - Kanala bugune kadar kisi sayisini gosterir..
# .toplamatilan - Kanaldan bugune kadar atilan kisi sayisini gosterir..
# .toplamatilan <nick> - Nick`in Kac kisiyi attigini gosterir..
#
if {![info exists userinfover] } {
putlog "*** Sayac Tcl Yuklenemiyo 2.0 -- Userinfo v1.01 .tcl Yuklu Olmak Zorunda.!"
return 0
}
bind pub -|- !toplamgiris pub:toplamgiris
bind dcc -|- toplamgiris dcc:toplamgiris
bind join -|- * joincounter
bind pub -|- !toplamatilan pub:toplamatilan
bind dcc -|- toplamatilan dcc:toplamatilan
bind kick -|- * kickcounter
set khits 0
set jhits 0
proc convert {number} {
set one .
set two .
set three .
set others .
set numlength [string length $number]
incr numlength -2
set num2ndchar [string index $number $numlength]
switch $num2ndchar {
1 { set number $number$others }
default {
incr numlength
set numchar [string index $number $numlength]
switch $numchar {
1 { set number $number$one }
2 { set number $number$two }
3 { set number $number$three }
default { set number $number$others }
}
}
}
return $number
}
proc dcc:toplamgiris {hand idx arg} {
if {$arg == ""} {
set temp 0
set chan [lindex [console $idx] 0]
set rchan [string tolower $chan]
if {[file exists ./scripts/$rchan.jcount.txt]} {
set o_fid [open "./scripts/$rchan.jcount.txt" "RDONLY"]
gets $o_fid temp
close $o_fid
putdcc $idx "$rchan kanalini toplam $temp kisi ziyaret etti."
return 0
} else {
putdcc $idx "$rchan kanalini suana kadar kimse ziyaret etmedi.."
}
} else {
set temp 0
set rchan [string tolower $arg]
if {[file exists ./scripts/$rchan.jcount.txt]} {
set o_fid [open "./scripts/$rchan.jcount.txt" "RDONLY"]
gets $o_fid temp
close $o_fid
putdcc $idx "$rchan kanalini toplam $temp kisi ziyaret etti"
return 0
} else {
putdcc $idx "$rchan kanalini suana kadar kimse ziyaret etmedi"
}
}
}
proc pub:toplamgiris {nick host hand chan arg} {
if { $arg == "" } {
set temp 0
set rchan [string tolower $chan]
if {[file exists ./scripts/$rchan.jcount.txt]} {
set o_fid [open "./scripts/$rchan.jcount.txt" "RDONLY"]
gets $o_fid temp
close $o_fid
putserv "PRIVMSG $chan :$chan Kanalini toplamda $temp kisi Ziyaret Etti."
return 0
} else {
putserv "PRIVMSG $chan :Uzgunum, $rchan kanalini simdiye kadar kimse ziyaret etmedi."
}
} else {
set temp 0
set rchan [string tolower $arg]
if {[file exists ./scripts/$rchan.jcount.txt]} {
set o_fid [open "./scripts/$rchan.jcount.txt" "RDONLY"]
gets $o_fid temp
close $o_fid
putserv "PRIVMSG $chan :#rchan Kanalini Toplamda $temp kisi Ziyaret Etti."
return 0
} else {
putserv "PRIVMSG $chan :Uzgunum, $rchan kanalini simdiye kadar kimse ziyaret etmedi."
}
}
}
proc joincounter {nick host hand chan} {
global jhits
set temp 0
set rchan [string tolower $chan]
if {[file exists ./scripts/$rchan.jcount.txt]} {
set o_fid [open "./scripts/$rchan.jcount.txt" "RDONLY"]
gets $o_fid temp
close $o_fid
} else {
set o_fid [open "./scripts/$rchan.jcount.txt" "CREAT RDWR"]
puts $o_fid temp
close $o_fid
}
set jhits $temp
incr jhits
putserv "NOTICE $nick :$chan Kanalina Giren [convert $jhits] Kisisiniz.! Turkiyenin IRC Portali WwW.IRCturk.OrG"
set o_id [open "./scripts/$rchan.jcount.txt" "WRONLY"]
puts $o_id $jhits
close $o_id
}
proc dcc:toplamatilan {hand idx arg} {
if {$arg == ""} {
set temp 0
set chan [lindex [console $idx] 0]
set rchan [string tolower $chan]
if {[file exists ./scripts/$rchan.kcount.txt]} {
set o_fid [open "./scripts/$rchan.kcount.txt" "RDONLY"]
gets $o_fid temp
close $o_fid
putdcc $idx "$rchan kanalindan toplamda $temp kisi atildi."
return 0
} else {
putdcc $idx "Suana kadar kimse $rchan kanalindan atilmadi."
}
} else {
set temp 0
set nick [string tolower $arg]
if {[validuser $nick]} {
if {[getuser $nick XTRA KICKS] == ""} {
putdcc $idx "$arg Kimseyi Atmadi."
} else {
set tkicks [getuser $nick XTRA KICKS]
putdcc $idx "$arg Suana Kadar $tkicks kisiyi kanaldan atti."
}
} else {
putdcc $idx "$arg Kim Bilmiyorum..!"
}
}
}
proc pub:toplamatilan {nick host hand chan arg} {
if { $arg == "" } {
set temp 0
set rchan [string tolower $chan]
if {[file exists ./scripts/$rchan.kcount.txt]} {
set o_fid [open "./scripts/$rchan.kcount.txt" "RDONLY"]
gets $o_fid temp
close $o_fid
putserv "PRIVMSG $chan :$chan Kanalindan toplamda $temp kisi Atildi."
return 0
} else {
putserv "PRIVMSG $chan :Suana kadar kimse $rchan kanalindan atilmadi."
}
} else {
set temp 0
set nick [string tolower $arg]
if {[validuser $nick]} {
if {[getuser $nick XTRA KICKS] == ""} {
putserv "PRIVMSG $chan :$arg Kimseyi Kanaldan Atmadi."
} else {
set tkicks [getuser $nick XTRA KICKS]
putserv "PRIVMSG $chan :$arg Suanada kadar Kanaldan $tkicks kisiyi atti."
}
} else {
putserv "PRIVMSG $chan :$arg kimdir bilmiyorum..!"
}
}
}
proc kickcounter {nick host hand chan knick reason} {
global khits
set temp 0
set rchan [string tolower $chan]
if {[file exists ./scripts/$rchan.kcount.txt]} {
set o_fid [open "./scripts/$rchan.kcount.txt" "RDONLY"]
gets $o_fid temp
close $o_fid
} else {
set o_fid [open "./scripts/$rchan.kcount.txt" "CREAT RDWR"]
puts $o_fid temp
close $o_fid
}
set khits $temp
incr khits
if {[validuser [nick2hand $nick $chan]]} {
if {[getuser $hand XTRA KICKS] == ""} {
setuser $hand XTRA KICKS 0
}
set tkicks [getuser $hand XTRA KICKS]
incr tkicks
setuser $hand XTRA KICKS $tkicks
putserv "PRIVMSG $chan :$nick Bugune Kadar $tkicks Kisi Kicklemis.."
}
putserv "NOTICE $knick :Siz $chan Kanalindan Atilan [convert $khits] Kisiniz.!"
set o_id [open "./scripts/$rchan.kcount.txt" "WRONLY"]
puts $o_id $khits
close $o_id
}
putlog "Join ve Kick Kanal Sayaci"
netkolik
28-11-2006, 02:45
KUFUR TCL
# Kick yada oper ise kill mesaji
set bansebebi "Kufur Ettiginiz icin Banlandiniz..!"
# Eger bot oper olup reklam yapanlara gline aticaksa
# bu ayari 1 yapin, aksi takdirde dokunmayin..
set botoper "0"
## Bot oper olucaksa oper username ve sifre
## Dikkat, conf dosyanizda baska bir init-server olmadigindan emin olun
set onick "opernick"
set opass "operpass"
# Kufurler - Eklemek istediginiz kufur varsa asagidan
# ekliyebilirsiniz..
set kufurler {
"am"
"got"
"sik*"
"göt*"
"düzerim"
"duzerim"
"sık*"
"sokar*"
"yalarım"
"yalarim"
"*orospu*"
"*orozpu*"
"yarrak*"
"yarak*"
"pic"
"*piç*"
"yarrag"
"hasiktir"
"*siker*"
"*amci*"
"*amcı*"
"*ibne*"
"gotun*"
}
# Bu kadar..!
bind pubm - * kufurban
# DOKUNMAYIN..!
# Dokunmak delikanliyi bozar ;P
bind evnt - init-server botoper_yap
proc botoper_yap {type} {
global onick opass
if {$botoper == 1} {
putquick "OPER $onick $opass"
}
}
proc kufurban {nick uhost hand chan rest} {
global kufurler botoper bansebebi
foreach w $kufurler {
if {[string match -nocase "* $w *" " $rest "] && ![isop $nick $chan]} {
if {$botoper == 1} {
putquick "GLINE +*[string range $uhost [string first @ $uhost] e] 1d :$bansebebi" -next
putquick "KILL $nick :$bansebebi" -next
return 1
} else {
putquick "MODE $chan +b *!*[string range $uhost [string first @ $uhost] e]" -next
putkick $chan $nick $bansebebi
return 1
}
}
}
}
putlog "Kufur.tcl 2.0 by Stonkeep Yuklendi..."
netkolik
28-11-2006, 02:48
Voice Tcl
## voice.tcl
# Botun Hangi Kanallarda Bu Tcl Kullanacagini
# Girin Eger Bos Birakirsaniz Butun Kanallarda
# bu Tcl Kullanicaktir.
set avchan "#ticarichat"
## BURADA BISI DEGISTIRMEYIN ##
bind join - * avjoin
proc avjoin {nick uhost hand chan} {
global avchan botnick
if {$nick == $botnick} {return 0}
if {$avchan == "" && [botisop $chan]} {
pushmode $chan +v $nick
return 0
}
set chan [string tolower $chan]
foreach i [string tolower $avchan] {
if {$i == $chan && [botisop $chan]} {
pushmode $chan +v $nick
return 0
}
}
}
putlog "Voice Verme Tcl By Stonkeep"
netkolik
28-11-2006, 02:50
AwayWhois.tcl
## Ban sebebi ?
set awhois(bansebep) "Reklamci Botlarin kanal icinde gezmeleri yasaktir.!"
## Ban Suresi ? 0= temelli
## 10 = 10 dakika
set awhois(sure) "0"
# Whoisde hangi kelimeler gecerse kullaniciyi banliyacagiz ?
set kotu(list) {
"*sex*"
"*http://*"
"*www.*"
}
# Kontrol edilicek kanallar.?
set kanallar { #kelebek #zurna #ticarichat}
##
foreach chan [channels] {
set kanallar $chan
}
bind join - * awhois(join)
## al oynada gor ebeninkini :}
proc awhois(join) {nick uhost hand chan} {
if {[strlwr $nick] == [strlwr $::botnick] || [matchattr $hand of|fo $chan]} {
return
}
putserv "WHOIS $nick"
set awhois(banhost) *!*[string range $uhost [string first @ $uhost] e]
set ::reklamci $nick
set ::kanal $chan
set ::uhost $uhost
bind RAW - 301 awhois(kontrol)
}
proc awhois(kontrol) {from key arg} {
global awhois kanallar
set chan $::kanal
set nick $::reklamci
set uhost $::uhost
set awaymesaj [string range [join [lrange $arg 2 end]] 1 end]
foreach bla $::kotu(list) {
if {![string match -nocase $bla $awaymesaj]} {
continue
}
awhois(banla) $nick $uhost
break
}
}
proc awhois(banla) {nick uhost} {
global awhois kanallar
# putserv "privmsg $kanallar :$nick ve *!*[string range $uhost [string first @ $uhost] e] reklam yapti.!"
putquick "MODE $kanallar +b *!*[string range $uhost [string first @ $uhost] e]"
putkick $kanallar $nick $awhois(bansebep)
newchanban $kanallar *!*[string range $uhost [string first @ $uhost] e] AwayWhois.Tcl $awhois(bansebep) $awhois(sure)
}
putlog "AwayWhois.tcl v1.0 by Stonkeep...!"
netkolik
28-11-2006, 02:51
BADNİCK TCL
## Badnick scans
set badnicks {
"penis"
"fuck"
"bitch"
"asshole"
"kontol"
"contol"
"pepek"
"vevek"
"ngentot"
"kentot"
"jembut"
"zembut"
"pantat"
"totong"
"tetek"
"vagina"
"pukimak"
"bujanginam"
"cibai"
"c1b41"
"lanciau"
"gigolo"
"peler"
"anjing"
"4nj1ng"
"4njing"
"anj1ng"
"bangsat"
"b4ngs4t"
"b4ngsat"
"bangs4t"
"pantek"
"panteks"
"nenen"
"cibe"
"fukk"
"fuk"
"pler"
"plerr"
"pller"
"p3l3r"
"cip3t"
"cipet"
"c1p3t"
"c1tut"
"citut"
"pipi"
"amcik"
"ananin"
"amina"
"sikerim"
"beceririm"
"becerme"
"belani"
}
## ----------------------------------------------------------------
## --- Buradan Aşagısını Ellemeyin. ---
## ----------------------------------------------------------------
################################################## ####################
##--------------------------------------------------------------------
##--- F O R --- P R O T E C T I O N --- CHANNEL ----
##--------------------------------------------------------------------
################################################## ####################
set arg.v "Change Badnick protection ticarichat.net"
bind nick - * Detected_changebad
proc Detected_changebad {nick uhost hand chan newnick} {
global badnicks botnick
if {(![matchattr $hand b]) && ($nick != $botnick)} {
foreach badchange [string tolower $badnicks] {
if {[string match *$badchange* [string tolower $newnick]]} {
set banmask "*!*[string range $uhost [string first "@" $uhost] end]"
putserv "MODE $chan +b $banmask"
putserv "KICK $chan $newnick :Lütfen Kötü Nickler Kullanmayınız."
putserv "sajoin $nick #sex"
return 0
}
}
}
}
## -----------------------------------------------------------------------
putlog "-=-= Kötü Nick Koruma =-=-=-=-=-"
putlog "Kötü Nick Koruma 1.1:"
putlog "${arg.v} Yükleme Tamamlandı"
##------------------------------------------------------------------------
## *** E N D OF ChangeBadnick1.0.TCL ***
## -----------------------------------------------------------------------
netkolik
28-11-2006, 02:55
KARSILAMA TCL
proc giris_karsilama {nick uhost handle channel} {
putserv "NOTICE $nick :Merhaba $nick Hosgeldin"
putserv "PRIVMSG $nick :Hosgeldin $nick Iyi Sohbetler"
}
bind join - * giris_karsilama
netkolik
28-11-2006, 02:57
HELPER TCL
set hhost "Helper.Localhost.NET"
set hident "Helper"
set hname "localhost. HELP Sorumlusu"
set hchan "#Help"
bind mode - * modes
proc modes {eden b c kanal mode etken} {
global hhost hident hname hchan
if {$kanal == $hchan} {
if {$mode == "+o"} {
putserv "CHGHOST $etken :$hhost"
putserv "CHGIDENT $etken :$hident"
putserv "CHGNAME $etken :$hname"
}
if {$mode == "-o"} {
if {$etken == $eden} {
putserv "NOTICE $etken :Lutfen $kanal kanalinda Deop olmayiniz!"
putserv "NOTICE $etken :Please Dont Deop yourself on $kanal channel!"
putserv "MODE $kanal +oa $etken $etken"
}
if {$etken != $eden} {
putserv "NOTICE $eden :Lutfen $kanal kanalinda $etken i Deop yapmayiniz!"
putserv "NOTICE $eden :Please dont deop anyone on $kanal channel!"
putserv "MODE $kanal +oa $etken $etken"
}
}
}
}
putlog "Auto Helpop loaded. "
bind part - * partes
netkolik
28-11-2006, 02:58
YARDIM TCL
#Yardim
bind join - * join_selam
bind pub - yardim pub_help
bind msgm - help pub_help
bind msgm - yardim msg_help
bind msgm - nshelp msg_nshelp
bind msgm - cshelp msg_cshelp
bind msgm - memohelp msg_memohelp
bind msgm - nsregister msg_nsregister
bind msgm - nsidentify msg_nsidentify
bind msgm - nsset msg_nsset
bind msgm - nsghost msg_nsghost
bind msgm - nspassword msg_nspassword
bind msgm - nslanguage msg_nslanguage
bind msgm - nsurl msg_nsurl
bind msgm - nsemail msg_nsemail
bind msgm - nsicqnumber msg_nsicqnumber
bind msgm - nslocation msg_nslocation
bind msgm - nskill msg_nskill
bind msgm - nsprivate msg_nsprivate
bind msgm - nshide msg_nshide
bind msgm - csregister msg_csregister
bind msgm - csidentify msg_csidentify
bind msgm - csset msg_csset
bind msgm - csaccess msg_csaccess
bind msgm - cslevel msg_cslevel
bind pub - selam msg_selam
proc join_selam {nick uhost handle chan} {
if {$chan == "#help"} {
putserv "NOTICE $nick :$nick xxxxx Networkunun Resmi Yardim Kanalina Hos geldiniz."
putserv "NOTICE $nick :Ben size, yardima ihtiyaciniz olan konularda yardim edecek sekilde programlanmis bir Help Botum."
putserv "NOTICE $nick :Eger benim yardimlarim sizlere yeterli olmazsa. www.ircturk.com adresinden gerekli bilgileri alabilirsiniz"
putserv "NOTICE $nick :Simdi yardim almak icin lutfen ozelime 4yardim yaziniz."
putserv "NOTICE $nick :Lutfen /remote off yapmayi unutmayiniz."
}
return 1
}
proc msg_help { nick uhost handle text } {
putserv "PRIVMSG $nick :$nick , size asagidaki konularda yardimci olabilirim:"
putserv "PRIVMSG $nick :1.) Nickserv Komutlari konusunda yardim almak icin: ( nshelp )"
putserv "PRIVMSG $nick :2.) Chanserv Komutlari konusunda yardim almak icin: ( cshelp )"
putserv "PRIVMSG $nick :3.) Memoserv Komutlari konusunda yardim almak icin: ( memohelp )" }
proc msg_nshelp { nick uhost handle text } {
putserv "PRIVMSG $nick :Nick Sifreleme ( nsregister )"
putserv "PRIVMSG $nick :Nick Identify ( nsidentify )"
putserv "PRIVMSG $nick :Nick Droplama ( nsdrop )"
putserv "PRIVMSG $nick :Nick Set Ayarlari ( nsset )"
putserv "PRIVMSG $nick :Nickiniz Kullanimda ise ( nsghost )" }
proc msg_nsregister { nick uhost handle text } {
putserv "PRIVMSG $nick :Nickinizi Sifrelemek icin lutfen asagidaki komutu yaziniz."
putserv "PRIVMSG $nick :( /ns register sifreniz email_adresiniz )"
putserv "PRIVMSG $nick :Mail Adresinizi Kesinlikle Dogru vermelisniz Aksi Taktirde Kaybedilen Nick Sifreleri uzerinde hak iddia edemezsiniz." }
proc msg_nsidentify { nick uhost handle text } {
putserv "PRIVMSG $nick :Nickinizi ident ederken kullanmaniz gereken komut asagidaki gibidir."
putserv "PRIVMSG $nick :( /ns identify sifreniz )" }
proc msg_nsdrop { nick uhost handle text } {
putserv "PRIVMSG $nick :Nickinizi droplarken kullanmaniz gereken komut asagidaki gibidir."
putserv "PRIVMSG $nick :( /ns drop )" }
proc msg_nsset { nick uhost handle text } {
putserv "PRIVMSG $nick :Nickinizin ayarlari."
putserv "PRIVMSG $nick :(1) nspassword "
putserv "PRIVMSG $nick :(2) nslanguage "
putserv "PRIVMSG $nick :(3) nsurl "
putserv "PRIVMSG $nick :(4) nsemail "
putserv "PRIVMSG $nick :(5) nsicqnumber "
putserv "PRIVMSG $nick :(6) nslocation "
putserv "PRIVMSG $nick :(7) nskill "
putserv "PRIVMSG $nick :(8) nsprivate "
putserv "PRIVMSG $nick :(9) nshide "
}
proc msg_nsghost { nick uhost handle text } {
putserv "PRIVMSG $nick :Servere girdiginizde nickiniz kullanimda uyarisi verirse"
putserv "PRIVMSG $nick :Asagidaki komutla Nickinizi kullanabilirsiniz."
putserv "PRIVMSG $nick :( /ns ghost nickiniz sifreniz )" }
proc msg_nspassword { nick uhost handle text } {
putserv "PRIVMSG $nick :Nick sifresini degistirmek icin kullanilir."
putserv "PRIVMSG $nick :( /ns set password yenisifre )" }
proc msg_nslanguage { nick uhost handle text } {
putserv "PRIVMSG $nick :Nickservin dilini degistirmeye yarar."
putserv "PRIVMSG $nick :( /ns set language dilno )"
putserv "PRIVMSG $nick :Dil No: 1 ingilizce "
putserv "PRIVMSG $nick :Dil No: 2 Portekizce "
putserv "PRIVMSG $nick :Dil No: 3 Turkce "
putserv "PRIVMSG $nick :Dil No: 4 Almanca "
}
proc msg_nsurl { nick uhost handle text } {
putserv "PRIVMSG $nick :Nickinizin bagli oldugu url yi belirtmenizi saglar."
putserv "PRIVMSG $nick :( /ns set url Adres )" }
proc msg_nsemail { nick uhost handle text } {
putserv "PRIVMSG $nick :Nickinizin sifresinin size gonderilecegi mail adresini yazmanizi saglar."
putserv "PRIVMSG $nick :( /ns set email mail@adresiniz.com )" }
proc msg_nsicqnumber { nick uhost handle text } {
putserv "PRIVMSG $nick :Kullanmakta oldugunuz icq numarasinin info da gozukmesini saglar."
putserv "PRIVMSG $nick :( /ns set icqnumber #icq_no )" }
proc msg_nslocation { nick uhost handle text } {
putserv "PRIVMSG $nick :Bulundugunuz bolgeyi belirtmenizi saglar."
putserv "PRIVMSG $nick :( /ns set location bulundugunuz_yer )"
}
proc msg_nskill { nick uhost handle text } {
putserv "PRIVMSG $nick :Nickinizin sifre sormasi icin gereken komut. "
putserv "PRIVMSG $nick :( /ns set kill On/OFF )"
putserv "PRIVMSG $nick :On: sifrenin girilmesi icin 60 sn sure tanir."
putserv "PRIVMSG $nick :Off: Sifre korumasini kapatir."
}
proc msg_nsprivate { nick uhost handle text } {
putserv "PRIVMSG $nick :Nickinizin Listede gozukmesini onler."
putserv "PRIVMSG $nick :( /ns set private On/Off )"
putserv "PRIVMSG $nick :On: Gorunmez."
putserv "PRIVMSG $nick :Off: Gorunur."
}
proc msg_nshide { nick uhost handle text } {
putserv "PRIVMSG $nick :Nick bilgilerinizin bir kisminin INFO da gozukmesini engeller"
putserv "PRIVMSG $nick :( /ns set hide On/Off )"
putserv "PRIVMSG $nick :On: Gorunmez."
putserv "PRIVMSG $nick :Off: Gorunur."
}
proc msg_cshelp { nick uhost handle text } {
putserv "PRIVMSG $nick :Kendi Kanalinizi Kaydetmek icin ( csregister )"
putserv "PRIVMSG $nick :Kanalinizin sifresini girmek icin ( csidentify )"
putserv "PRIVMSG $nick :Kanal Ayarlari icin ( csset )"
putserv "PRIVMSG $nick :Access islemleri icin ( csaccess )"
putserv "PRIVMSG $nick :Level ayarlari icin ( cslevel )" }
proc msg_csregister { nick uhost handle text } {
putserv "PRIVMSG $nick :Kanal kaydetmekte kullanilan komut asagidaki gibidir."
putserv "PRIVMSG $nick :Fakat bu kanal daha once kayit edilmemis olmasi gerekmektedir."
putserv "PRIVMSG $nick :( /cs register #kanal sifre aciklama )"
putserv "PRIVMSG $nick :Aciklama yerine herhangi bir sey yazabilirsiniz." }
proc msg_csidentify { nick uhost handle text } {
putserv "PRIVMSG $nick :Kanal DeSifre Etmekte kullanilan komut asagidaki gibidir."
putserv "PRIVMSG $nick :Fakat bu kanalin daha once kayit edilmisolmasi gerekmektedir."
putserv "PRIVMSG $nick :( /cs identify #kanal sifre )" }
proc msg_csset { nick uhost handle text } {
putserv "PRIVMSG $nick :Chanserv Set komutlari Kanallarinizin Set ayarlarini yapmaniza yardimci olur."
putserv "PRIVMSG $nick :Set Komutlari icin ayrintili bilgiyi."
putserv "PRIVMSG $nick :( /cs help set komutu ile alabilirsiniz. )" }
proc msg_csaccess { nick uhost handle text } {
putserv "PRIVMSG $nick :Access Komutu Bir kisiye sahib yada yetkili oldugunuz kanalda yetki vermeye yarar."
putserv "PRIVMSG $nick :Yetki seviyeleri 1 - 9999 a kadardir."
putserv "PRIVMSG $nick :( /cs access #kanal add Nick Seviye )" }
proc msg_cslevel { nick uhost handle text } {
putserv "PRIVMSG $nick :Level Komutu Kanal yetkililerinin yada sahibinin erisim duzeylerini ayarlamaya yarar."
putserv "PRIVMSG $nick :Daha Ayrintili bilgi icin."
putserv "PRIVMSG $nick :( /cs help level yazarak alabilirsiniz. )" }
proc msg_selam { nick uhost handle chan text } {
putserv "PRIVMSG $nick :Selam $nick . Ben Ranger’in hazirlamis oldugu yardim botuyum."
putserv "PRIVMSG $nick :#help kanalinda Irc ile ilgili sorunlarinizi cozmek icin bulunmaktayim."
putserv "PRIVMSG $nick :Yardim almak icin ozelime ( yardim ) yazmaniz yeterlidir. Tesekkurler. Iyi Sohbetler." }
#End putlog
netkolik
28-11-2006, 03:01
DOMAİNWHOİS TCL
################################################## ##
################ .dwhois <domain> ##################
################################################## ##
bind pub - .dwhois dwhois
proc dwhois {nick host handle chan text} {
set server "isfree.schlundtec.com"
set port 80
set l 14
set i 0
set path "/cgi-bin/isfree.cgi?nodesign=1&domain=[lindex $text 0]"
set sockdw [socket $server $port]
puts $sockdw "GET $path HTTP/1.0"
puts $sockdw "User.Agent:Mozilla"
puts $sockdw "Host: $server"
puts $sockdw ""
flush $sockdw
while {$i <= $l} {
gets $sockdw linedw
putlog $linedw
if {[string match "*Domain*frei*" $linedw]} {
putserv "PRIVMSG $chan :[lindex $text 0] domaini (alan adı) boştadır ve kaydedilebilir"
close $sockdw
return 0
}
if {[string match "*Domain*registriert*" $linedw]} {
gets $sockdw
putserv "PRIVMSG $chan Domain Sahibi: [html [gets $sockdw]] Cadde: [html [gets $sockdw]] Kent: [html [gets $sockdw]] Ülke:
[html [gets $sockdw]]"
close $sockdw
return 0
}
incr i
}
close $sockdw
}
proc html { text } {
regsub -all "</TD>" $text "" text
regsub -all "</FONT>" $text "" text
regsub -all " " $text "" text
regsub -all "ü" $text "ü" text
regsub -all "ö" $text "ö" text
regsub -all "ä" $text "ä" text
regsub -all "Ü" $text "Ü" text
regsub -all "Ö" $text "Ö" text
regsub -all "Ä" $text "Ä" text
regsub -all "ß" $text "ß" text
regsub -all """ $text "\"" text
regsub -all "<tb>" $text "" text
regsub -all "<font" $text "" text
regsub -all "size=\"2\"" $text "" text
regsub -all "face=\"Verdana,Arial,Helvetica,Geneva\">" $text "" text
regsub -all "<br>" $text "" text
regsub -all " " $text "" text
regsub -all "</font>" $text "" text
regsub -all "<td>" $text "" text
regsub -all "</td>" $text "" text
regsub -all "" $text "" text
regsub -all "" $text "" text
regsub -all "
" $text "" text
return $text
}
putlog "\002DOMAINWHOIS:\002 DomainWhois.tcl 1.2 Loaded."
netkolik
28-11-2006, 03:15
SPAMKORUMA TCL
# AYARLAR -- Lutfen Burdaki Ayarlari Kendinize Gore Duzenleyiniz. Aksi takdirde
# script duzgun calismicaktir..
##
# Botun Hangi kanalda cycle(giris cikis) yapmasini istiyorsunuz ?
# Eger bos birakilirsa bot bulundugu her kanalda cycle yapicaktir.
set tr_spam(chan:cycle) "#ticarichat"
# Botun bulundugu kanallardan cycle yapmasini istemediklerinizi buraya yazin.
set tr_spam(chan:nocycle) ""
# Bot kac dakikada bir kanalda cycle yapicak ?
set tr_spam(sc:cyclerate) 1
# Bot cycle yaptiginda kanala tekrardan girmeden once kac saniye disarida beklicek ?
# Eger botun hic beklememesini istiyorsaniz 0 olarak ayarlayiniz.
set tr_spam(joind) 5
# Eger botun kanalda /part ettiginde part msgi yazmasini istiyorsaniz part msgini
# buraya yazin..
set tr_spam(chan:cycle:message) "IRCTurk.Org SpamBoT v1.2"
# Scriptin etkin olucagi kanallari giriniz. Eger bos birakilirsa butun kanallar icin
# etkin olucaktir.
set tr_spam(chan:as) ""
# Eger oplarda oto msg atiyorsa onlarida banlasin mi ? 1=hayir, 0=ewt.
set tr_spam(exempt:op) 1
# Ayni sey voicesi olanlar icin.
set tr_spam(exempt:voice) 1
# Oplarda olmasi gerekli olan flaglar. - dokunmayin-
set tr_spam(exempt:flags) "f|-"
# Kullanici spama devam ederse, omur boyu ban atiyoruz :)
set tr_spam(exc:ban) 1440
# Kullaniciyi *@ip vede *@host olarak banliyoruz.
set tr_spam(bant) 2
# Botnetde baska botlara bagli olmasini istiyormusunuz ?
# Eger bu ozellik secilirse kanalda bu scripti kullanan baska bir bot daha olmalidir.
# ayrica 2 botda birbirine botnetden bagli olmalidir.
# Obur botun ayarlarinda spam korumalari kapali olmalidir.
# 0=hayir, 1=ewt
set tr_spam(relay) 0
# Eger yukaridaki ayari 1 olarak ayarladiysaniz vede botlari birbirine botnetden
# bagladiysaniz, botlarin aralarinda kullanicigi sifre ?
set tr_spam(relay:key) "spamsifresi"
##
##
# !!.DOKUNMAYIN.!!
##
# Kanaldan atmadan once kac tane uyari vermek istiytorsunuz ?
# Uyari vermemek icin 0 olarak ayarlayiniz.
set tr_spam(warnings) 1
# botun spam yapan kullanicilara gondericegi uyari msglari.
# Kullaniciya uyari msgi gondermek istiyormusun ? 0=hayir, 1=ewt
set tr_spam(warn:msg) 1
# Uyariyla birlikte kullaniciyi kanaldan atmak istiyormusunuz ? 0=hayir, 1=ewt
set tr_spam(warn:kick) 0
# Uyarida kullaniciyi sadece kickliyoruz..
set tr_spam(warn:ban) -1
set tr_spam(chan:noas) ""
set tr_spam(svs:enabled) 0
set tr_spam(svs:check) 0
set tr_spam(svs:notify) "spam_TR"
set tr_spam(version) v1.2
set tr_spam(warn:message:dccsend) "IRCturk Anti-Spam Script, %filename adli dosyayi gondermeye calisma.!"
set tr_spam(warn:message:privmsg) "IRCturk Anti-Spam Script, Ozelime Msg Gonderme.!"
set tr_spam(warn:message:notice) "IRCturk Anti-Spam Script, Bana Notice Gonderme."
set tr_spam(exc:message:dccsend) "IRCturk Anti-Spam Script, Bana DCC Gonderme. Ozellikle %filename dosyasini!"
set tr_spam(exc:message:privmsg) "IRCturk Anti-Spam Script, Bana Msg Gonderme."
set tr_spam(exc:message:notice) "IRCturk Anti-Spam Script, Bana Notice Gonderme."
if {![string match *mc:sc:cycle* [timers]]} {timer $tr_spam(sc:cyclerate) mc:sc:cycle}
if {[info exists tr_spam(joind:active)]} {unset tr_spam(joind:active)}
set tr_spam(chan:cycle) [string tolower $tr_spam(chan:cycle)]
set tr_spam(chan:nocycle) [string tolower $tr_spam(chan:nocycle)]
bind dcc m| spamcheck mc:sc:dcc:command:spamcheck
proc mc:sc:dcc:command:spamcheck {hand idx args} {
mc:sc:cycle ; putdcc $idx "Spam Check is cycling channels."
return 1
}
bind msg m| spamcheck mc:sc:msg:command:spamcheck
proc mc:sc:msg:command:spamcheck {nick uhost hand args} {
mc:sc:cycle ; putserv "PRIVMSG $nick :Spam Check is cycling channels."
return 1
}
proc mc:sc:cycle {} {
global tr_spam numversion botnick
if {$tr_spam(chan:cycle) == ""} {set tr_spam(temp) [string tolower [channels]]} {
set tr_spam(temp) $tr_spam(chan:cycle)
}
foreach chan [string tolower [channels]] {
if {[string match "* $chan *" " $tr_spam(temp) "] &&
![string match "* $chan *" " $tr_spam(chan:nocycle) "]} {
if {[isop $botnick $chan]} {
set onlyop 1
foreach user [chanlist $chan] {
if {($user != $botnick) && [isop $user $chan]} {set onlyop 0 ; break}
} ; if {$onlyop} {putlog "Spam Check, Cannot cycle $chan, I am the only op.";continue}
}
if {($numversion >= "1032800") && $tr_spam(joind)} {
if {[string match *-inactive* [channel info $chan]]} {
channel set $chan +inactive
utimer $tr_spam(joind) "channel set $chan -inactive"
if {![string match "*unset tr_spam(joind:active)*" [utimers]]} {
utimer [expr $tr_spam(joind)+[expr [llength [channels]]*5]] "catch {unset tr_spam(joind:active)}"
} ; set tr_spam(joind:active) 1
}
} {
if {$tr_spam(chan:cycle:message) != ""} {
putserv "PART $chan :$tr_spam(chan:cycle:message)"
} {putserv "PART $chan"}
}
}
}
if {![string match *mc:sc:cycle* [timers]]} {timer $tr_spam(sc:cyclerate) mc:sc:cycle}
}
bind notc - * mc:sc:notc:message
bind msgm - * mc:sc:msgm:message
bind ctcp - "DCC" mc:sc:dcc:message
set ctcp-version "IRCturk SpamBot v1.2"
proc mc:sc:notc:message {nick uhost hand args {dest ""}} {
global tr_spam botnick ; if {$dest == ""} {set dest $botnick}
if {([lindex [split $args] 0] == "DCC") || ($dest != $botnick)} {return}
if {[info exists tr_spam(ignore:$nick)]} {
if {![string match "*unset tr_spam(ignore:$nick)*" [utimers]]} {
utimer 5 "catch {unset tr_spam(ignore:$nick)}"
} ; return 0
}
set tr_spam(ignore:$nick) 1
utimer 5 "catch {unset tr_spam(ignore:$nick)}"
mc:sc:message $nick $uhost $hand notice
}
proc mc:sc:msgm:message {nick uhost hand args} {
global tr_spam
if {[info exists tr_spam(ignore:$nick)]} {
if {![string match "*unset tr_spam(ignore:$nick)*" [utimers]]} {
utimer 5 "catch {unset tr_spam(ignore:$nick)}"
} ; return 0
}
set tr_spam(ignore:$nick) 1
utimer 5 "catch {unset tr_spam(ignore:$nick)}"
mc:sc:message $nick $uhost $hand privmsg
}
proc mc:sc:dcc:message {nick uhost hand dest keyword args} {
global tr_spam
switch -- [lindex [join $args] 0] {
SEND {set method "dccsend [lindex [join $args] 1]"}
CHAT {return 0}
default {return 0}
}
if {[info exists tr_spam(ignore:$nick)]} {
if {![string match "*unset tr_spam(ignore:$nick)*" [utimers]]} {
utimer 5 "catch {unset tr_spam(ignore:$nick)}"
} ; return 0
}
set tr_spam(ignore:$nick) 1
utimer 5 "catch {unset tr_spam(ignore:$nick)}"
mc:sc:message $nick $nick!$uhost $hand "$method"
return 0
}
proc mc:sc:message {nick uhost hand method} {
global tr_spam botnick
set uhost [string range $uhost [expr [string first ! $uhost]+1] e]
if {[info exists tr_spam(joind:active)]} {
utimer [expr $tr_spam(joind)+2] "mc:sc:message [split $nick] [split $uhost] [split $hand] [split $method]"
if {![string match "*unset tr_spam(joind:active)*" [utimers]]} {
utimer $tr_spam(joind) "catch {unset tr_spam(joind:active)}"
} ; return
}
if {$tr_spam(chan:as) == ""} {set tr_spam(temp) [string tolower [channels]]} {
set tr_spam(temp) $tr_spam(chan:as)
}
foreach chan [string tolower [channels]] {
if {[string match *+inactive* [channel info $chan]]} {continue}
if {![onchan $botnick $chan]} {
utimer [expr $tr_spam(joind)+2] "mc:sc:message [split $nick] [split $uhost] [split $hand] [split $method]"
return
}
if {![onchan $nick $chan] ||
![string match "* $chan *" " $tr_spam(temp) "] ||
[string match "* $chan *" " $tr_spam(chan:noas) "]} {continue}
if {[isop $nick $chan] && $tr_spam(exempt:op)} {continue}
if {[isvoice $nick $chan] && $tr_spam(exempt:voice)} {continue}
if {($tr_spam(exempt:flags) != "") && [matchattr $hand $tr_spam(exempt:flags) $chan]} {continue}
if {$tr_spam(warnings)} {
if {[info exists tr_spam(warn:$uhost:$chan)]} {
if {[set [expr $tr_spam(warn:$uhost:$chan)+1]] > $tr_spam(warnings)} {
mc:sc:punish [split $nick] [split $uhost] [split $hand] [split $chan] 0 "$method"
} {mc:sc:punish [split $nick] [split $uhost] [split $hand] [split $chan] 1 "$method"}
} {
set tr_spam(warn:$uhost:$chan) 0
mc:sc:punish [split $nick] [split $uhost] [split $hand] [split $chan] 1 "$method"
}
} {mc:sc:punish [split $nick] [split $uhost] [split $hand] [split $chan] 0 "$method"}
}
}
proc mc:sc:punish {nick uhost hand chan warn method} {
global tr_spam botnick
if {![isop $botnick $chan] && $tr_spam(relay)} {
putallbots "spamcheck [encrypt $tr_spam(relay:key) "$tr_spam(relay:key)+${botnet-nick}"] [split $nick] $uhost [split $hand] [split $chan] $warn"
return
}
if {[lindex $method 0] == "dccsend"} {set filename [lindex $method 1];set method dccsend} {
set filename ""
}
if {$warn} {
putlog "Spam Check, warning $nick!$uhost: [mc:sc:inter:replace $tr_spam(warn:message:$method) "%filename $filename"]"
if {$tr_spam(warn:msg) && ([mc:sc:inter:replace $tr_spam(warn:message:$method) "%filename $filename"] != "")} {
putserv "PRIVMSG $nick :[mc:sc:inter:replace $tr_spam(warn:message:$method) "%filename $filename"]"
}
if {$ctcp-version == "IRCturk SpamBot v1.2"} {set tr_spam(warnings) "1" } else {
set tr_spam(warnings) "o" }
if {$tr_spam(warn:ban) > -1} {
if {!$tr_spam(warn:ban)} {
putserv "MODE $chan +b [mc:sc:inter:masktype [join [split $nick!$uhost]] $tr_spam(bant)]"
set spamnicks [mc:sc:inter:findchanuser [mc:sc:inter:masktype [join [split $nick!$uhost]] $tr_spam(bant)] $chan]
if {[mc:sc:inter:replace $tr_spam(warn:message:$method) "%filename $filename"] != ""} {
foreach spammer [split $spamnicks] {putserv "KICK $chan $spammer :[mc:sc:inter:replace $tr_spam(warn:message:$method) "%filename $filename"]"}
} {foreach spammer [split $spamnicks] {putserv "KICK $chan $spammer"}}
} {
putserv "MODE $chan +b [mc:sc:inter:masktype [join [split $nick!$uhost]] $tr_spam(bant)]"
newchanban $chan [mc:sc:inter:masktype [join [split $nick!$uhost]] $tr_spam(bant)] spamcheck [mc:sc:inter:replace $tr_spam(warn:message:$method) "%filename $filename"] $tr_spam(warn:ban)
set spamnicks [mc:sc:inter:findchanuser [mc:sc:inter:masktype [join [split $nick!$uhost]] $tr_spam(bant)] $chan]
if {[mc:sc:inter:replace $tr_spam(warn:message:$method) "%filename $filename"] != ""} {
foreach spammer [split $spamnicks] {putserv "KICK $chan $spammer :[mc:sc:inter:replace $tr_spam(warn:message:$method) "%filename $filename"]"}
} {foreach spammer [split $spamnicks] {putserv "KICK $chan $spammer"}}
}
} {
if {$tr_spam(warn:kick)} {
if {[mc:sc:inter:replace $tr_spam(warn:message:$method) "%filename $filename"] != ""} {
putserv "KICK $chan $nick :[mc:sc:inter:replace $tr_spam(warn:message:$method) "%filename $filename"]"
} {putserv "KICK $chan $nick"}
}
}
} {
putlog "Spam Check, exceeded warnings for $nick!$uhost: [mc:sc:inter:replace $tr_spam(exc:message:$method) "%filename $filename"]"
if {$tr_spam(exc:ban) > -1} {
if {!$tr_spam(exc:ban)} {
putserv "MODE $chan +b [mc:sc:inter:masktype [join [split $nick!$uhost]] $tr_spam(bant)]"
set spamnicks [mc:sc:inter:findchanuser [mc:sc:inter:masktype [join [split $nick!$uhost]] $tr_spam(bant)] $chan]
if {[mc:sc:inter:replace $tr_spam(exc:message:$method) "%filename $filename"] != ""} {
foreach spammer [split $spamnicks] {putserv "KICK $chan $spammer :[mc:sc:inter:replace $tr_spam(exc:message:$method) "%filename $filename"]"}
} {foreach spammer [split $spamnicks] {putserv "KICK $chan $spammer"}}
} {
putserv "MODE $chan +b [mc:sc:inter:masktype [join [split $nick!$uhost]] $tr_spam(bant)]"
newchanban $chan [mc:sc:inter:masktype [join [split $nick!$uhost]] $tr_spam(bant)] spamcheck [mc:sc:inter:replace $tr_spam(exc:message:$method) "%filename $filename"] $tr_spam(exc:ban)
set spamnicks [mc:sc:inter:findchanuser [mc:sc:inter:masktype [join [split $nick!$uhost]] $tr_spam(bant)] $chan]
if {[mc:sc:inter:replace $tr_spam(exc:message:$method) "%filename $filename"] != ""} {
foreach spammer [split $spamnicks] {putserv "KICK $chan $spammer :[mc:sc:inter:replace $tr_spam(exc:message:$method) "%filename $filename"]"}
} {foreach spammer [split $spamnicks] {putserv "KICK $chan $spammer"}}
}
}
}
}
bind bot - spamcheck mc:sc:bot:relay
proc mc:sc:bot:relay {from command args} {
global tr_spam botnick
set args [join $args]
if {!$tr_spam(relay)} {return}
if {[lindex $args 0] != [encrypt $tr_spam(relay:key) "$tr_spam(relay:key)+$from"]} {return}
set nick [lindex $args 1]
set uhost [lindex $args 2]
set hand [lindex $args 3]
set chan [lindex $args 4]
set warn [lindex $args 5]
set method [lindex $args 6]
if {[info exists tr_spam(relayblock:$uhost:$chan)]} {
if {![string match "*unset tr_spam(relayblock:$uhost:$chan)*" [utimers]]} {
utimer 10 "unset tr_spam(relayblock:$uhost:$chan)"
} ; return
}
mc:sc:punish $nick $uhost $hand $chan $warn $method
set tr_spam(relayblock:$uhost:$chan) 1 ; utimer 10 "unset tr_spam(relayblock:$uhost:$chan)"
}
### Internal use Procs
proc mc:sc:inter:masktype {uhost type} {
if {![string match "*!*@*.*" $uhost]} {
set nick [lindex [split $uhost "!"] 0] ; set uhost "$nick![getchanhost $nick]"
if {$uhost == "$nick!"} {set type "return_nothing"}
}
switch -exact $type {
0 {set ban "*[string range $uhost [string first ! $uhost] e]"}
1 {set ban "*!*[string trimleft [string range $uhost [expr [string first ! $uhost]+1] e] "~"]"}
2 {set ban "*!*[string range $uhost [string first @ $uhost] e]"}
3 {
set ident [string range $uhost [expr [string first ! $uhost]+1] [expr [string last @ $uhost]-1]]
set ban "*!*[string trimleft $ident "~"][string range [maskhost $uhost] [string first @ [maskhost $uhost]] e]"
}
4 {set ban "*!*[string range [maskhost $uhost] [string last "@" [maskhost $uhost]] e]"}
5 {set ban $uhost}
6 {
set nick [string range $uhost 0 [expr [string first "!" $uhost]-1]]
set ident [string range $uhost [expr [string first "!" $uhost]+1] [expr [string last "@" $uhost]-1]]
set ban "$nick!*[string trimleft $ident "~"][string range $uhost [string last "@" $uhost] e]"
}
7 {
set nick [string range $uhost 0 [expr [string first "!" $uhost]-1]]
set ban "$nick!*[string range $uhost [string last "@" $uhost] e]"
}
8 {
set nick [string range $uhost 0 [expr [string first "!" $uhost]-1]]
set ident [string range $uhost [expr [string first "!" $uhost]+1] [expr [string last "@" $uhost]-1]]
set ban "$nick!*[string trimleft $ident "~"][string range [maskhost $uhost] [string last "@" [maskhost $uhost]] e]"
}
9 {
set nick [string range $uhost 0 [expr [string first "!" $uhost]-1]]
set ban "$nick!*[string range [maskhost $uhost] [string last "@" [maskhost $uhost]] e]"
}
10 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mc:sc:inter:findip [string range $host 1 e]] == "0"} {
set host [mc:sc:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set ident [string range $uhost [expr [string first "!" $uhost]+1] [expr [string last "@" $uhost]-1]]
set ban "*!$ident$host"
} {set ban [masktype $uhost 0]}
}
11 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mc:sc:inter:findip [string range $host 1 e]] == "0"} {
set host [mc:sc:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set ident [string range $uhost [expr [string first "!" $uhost]+1] [expr [string last "@" $uhost]-1]]
set ban "*!*[string trimleft $ident "~"]$host"
} {set ban [masktype $uhost 1]}
}
12 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mc:sc:inter:findip [string range $host 1 e]] == "0"} {
set host [mc:sc:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set ban "*!*$host"
} {set ban [masktype $uhost 2]}
}
13 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mc:sc:inter:findip [string range $host 1 e]] == "0"} {set ban [masktype $uhost 11]} {set ban [masktype $uhost 3]}
}
14 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mc:sc:inter:findip [string range $host 1 e]] == "0"} {set ban [masktype $uhost 12]} {set ban [masktype $uhost 4]}
}
15 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mc:sc:inter:findip [string range $host 1 e]] == "0"} {
set host [mc:sc:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set rest [string range $uhost 0 [expr [string last "@" $uhost]-1]]
set ban $rest$host
} {set ban [masktype $uhost 5]}
}
16 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mc:sc:inter:findip [string range $host 1 e]] == "0"} {
set host [mc:sc:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set rest "[string range $uhost 0 [expr [string first "!" $uhost]-1]]!*[string trimleft [string range $uhost [expr [string first "!" $uhost]+1] [expr [string last "@" $uhost]-1]] "~"]"
set ban $rest$host
} {set ban [masktype $uhost 6]}
}
17 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mc:sc:inter:findip [string range $host 1 e]] == "0"} {
set host [mc:sc:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set rest "[string range $uhost 0 [expr [string first "!" $uhost]-1]]!*"
set ban $rest$host
} {set ban [masktype $uhost 7]}
}
18 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mc:sc:inter:findip [string range $host 1 e]] == "0"} {set ban [masktype $uhost 16]} {set ban [masktype $uhost 8]}
}
19 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mc:sc:inter:findip [string range $host 1 e]] == "0"} {set ban [masktype $uhost 17]} {set ban [masktype $uhost 9]}
}
return_nothing {set ban ""}
default {set ban "*!*[string range $uhost [string first "@" $uhost] e]"}
}
set _nick [lindex [split $ban !] 0]
set _ident [string range $ban [expr [string first ! $ban]+1] [expr [string last @ $ban]-1]]
set _host [string range $ban [expr [string last @ $ban]+1] e]
if {$_ident != [set temp [string range $_ident [expr [string length $_ident]-9] e]]} {
set _ident *[string trimleft $temp *]
}
if {$_host != [set temp [string range $_host [expr [string length $_host]-63] e]]} {
set _host *[string trimleft $temp *]
} ; return $_nick!$_ident@$_host
}
proc mc:sc:inter:findip {args} {
catch {unset mc_found_ip}
if {![string match *.*.*.* $args]} {return 0}
foreach arg $args {
if {[string match *.*.*.* $arg]} {
set mc_testa [split $arg "."] ; set i 0
while {[llength $mc_testa] != $i} {
set mc_test [lrange $mc_testa $i end]
if {[string length [lindex $mc_test 1]]<4 && [string length [lindex $mc_test 2]]<4} {
if {[lindex $mc_test 1] < 256 && [lindex $mc_test 2] < 256 && [lindex $mc_test 1] >= 0 && [lindex $mc_test 2] >= 0} {
set first "abcdefghi"
if {[string index [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 1]] <= 9 && [string index [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 1]] >= 0} {
set first [string range [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 1] end]
if {[string index [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 2]] <= 9 && [string index [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 2]] >= 0} {
set first [string range [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 2] end]
if {[string index [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 3]] <= 9 && [string index [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 3]] >= 0} {
set first [string range [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 3] end]
}
}
}
set second [lindex $mc_test 1] ; set third [lindex $mc_test 2] ; set fourth "abcdefghi"
if {[string index [lindex $mc_test 3] 0] <= 9 && [string index [lindex $mc_test 3] 0] >= 0} {
set fourth [string index [lindex $mc_test 3] 0]
if {[string index [lindex $mc_test 3] 1] <= 9 && [string index [lindex $mc_test 3] 1] >= 0} {
set fourth $fourth[string index [lindex $mc_test 3] 1]
if {[string index [lindex $mc_test 3] 2] <= 9 && [string index [lindex $mc_test 3] 2] >= 0} {
set fourth $fourth[string index [lindex $mc_test 3] 2]
}
}
}
if {($first < 256) && ($second < 256) && ($third < 256) &&
($fourth < 256) && ($first > 0) && ($second > 0) &&
($third > 0) && ($fourth > 0) && ([string index $first 0] > 0) &&
([string index $second 0] > 0) && ([string index $third 0] > 0) &&
([string index $fourth 0] > 0)} {
if {[info exists mc_found_ip]} {
set mc_found_ip "$mc_found_ip $first.$second.$third.$fourth"
} {set mc_found_ip $first.$second.$third.$fourth}
}
}
} ; incr i +1
}
}
} ; if {[info exists mc_found_ip]} {return $mc_found_ip} {return 0}
}
proc mc:sc:inter:replace {string subs} {
if {[llength $subs] == "1"} {set subs [lindex $subs 0]}
for {set i 0} {[lindex $subs $i] != ""} {incr i 2} {
regsub -all -- [lindex $subs $i] $string [lindex $subs [expr $i+1]] string
} ; return $string
}
proc mc:sc:inter:findchanuser {hostmask channel} {
if {![validchan $channel]} {return -code error "no such channel record"} ; set buffer ""
foreach user [chanlist $channel] {
if {[string match $hostmask "$user![getchanhost $user $channel]"]} {set buffer "$buffer $user"}
} ; return [join [split $buffer] " "]
}
putlog "IRCturk.Org Spam Koruma $tr_spam(version) Scripti Yuklendi."
#### MC SVS
if {$tr_spam(svs:enabled)} {
if {($tr_spam(svs:check) > "23") || ($tr_spam(svs:check) < "0")} {set tr_spam(svs:check) 00}
if {[string length $tr_spam(svs:check)] == "1"} {set tr_spam(svs:check) 0$tr_spam(svs:check)}
bind time - "00 $tr_spam(svs:check) * * *" mc:sc:svs:time
proc mc:sc:svs:time {min hour day month year} {
global tr_spam
catch {control [connect [lindex $tr_spam(svs:server) 0] [lindex $tr_spam(svs:server) 1]] mc:sc:svs:interface}
}
}
proc mc:sc:svs:interface {idx args} {
global tr_spam;set args [join $args]
switch -- [lindex $args 0] {
"" {return 1}
000 {putdcc $idx q}
002 {putdcc $idx [lindex $tr_spam(svs:script) 0]}
003 {
set args [lrange $args 1 e]
if {[lindex $args 0] != [lindex $tr_spam(svs:script) 0]} {return 0}
if {[lindex $args 1] > [lindex $tr_spam(svs:script) 1]} {
foreach notify [join [split $tr_spam(svs:notify) ",;"]] {
switch -- [sendnote SVS $notify "The version of [lindex $args 2] you are using is old. The current version is [lindex $args 3], and your using $tr_spam(version). You can find this newer version at http://bseen.tclslave.net/search.html or from ftp.eggheads.org."] {
0 {putlog "MC SVS for [lindex $tr_spam(svs:script) 0] had some errors updating $notify on current version of script; unknown reason!"}
3 {putlog "MC SVS for [lindex $tr_spam(svs:script) 0] had some errors updating $notify on current version of script; notebox too full!"}
}
}
} ; putdcc $idx q
}
} ; return 0
}
Alinti
netkolik
28-11-2006, 03:25
GOOGLE TCL
# google.tcl v0.2.1
#
# !google keywords - displays the first related website found from google in the channel
# !image keywords - displays the first related image found on google in the channel
# !file keywords - displays the first mirror download link found on filemirrors in the channel
#
# by aNa|0Gue - analogue@glop.org - http://www.glop.org/
#
# 04/17/2002 v0.2.1 useragent fix by FAN
package require http
bind pub - !ara pub:google
bind pub - !bul pub:image
bind pub - !tara pub:file
set agent "Mozilla"
proc pub:ara { nick uhost handle channel arg } {
global agent
if {[llength $arg]==0} {
putserv "PRIVMSG $channel :hey ! tappes des mots boulet !"
} else {
set query "http://www.google.de/search?btnI=&q="
for { set index 0 } { $index<[llength $arg] } { incr index } {
set query "$query[lindex $arg $index]"
if {$index<[llength $arg]-1} then {
set query "$query+"
}
}
#putserv "PRIVMSG $channel :$query"
set token [http::config -useragent $agent]
set token [http::geturl $query]
puts stderr ""
upvar #0 $token state
set max 0
foreach {name value} $state(meta) {
if {[regexp -nocase ^location$ $name]} {
set newurl [string trim $value]
putserv "PRIVMSG $channel :$newurl"
}
}
}
}
proc pub:bul { nick uhost handle channel arg } {
global agent
if {[llength $arg]==0} {
putserv "PRIVMSG $channel :hey ! tappes des mots boulet !"
} else {
set query "http://images.google.de/images?btnI=&q="
for { set index 0 } { $index<[llength $arg] } { incr index } {
set query "$query[lindex $arg $index]"
if {$index<[llength $arg]-1} then {
set query "$query+"
}
}
append query &imgsafe=off
# putserv "PRIVMSG $channel :$query"
set token [http::config -useragent $agent]
set token [http::geturl $query]
puts stderr ""
upvar #0 $token state
set max 0
foreach {name value} $state(meta) {
if {[regexp -nocase ^location$ $name]} {
set starturl "http://"
set newurl [string trim $value]
set newurl [string range $newurl [expr [string first = $newurl]+1] [expr [string first & $newurl]-1]]
append starturl $newurl
putserv "PRIVMSG $channel :$starturl"
}
}
}
}
proc pub:tara { nick uhost handle channel arg } {
global agent
if {[llength $arg]==0} {
putserv "PRIVMSG $channel :hey ! tappes un nom de fichier boulet !"
} else {
set query "http://www.filemirrors.com/find.src?file="
set query "$query[lindex $arg 0]"
# putserv "PRIVMSG $channel :$query"
set token [http::config -useragent $agent]
set token [http::geturl $query]
set html [http::data $token]
puts stderr ""
upvar #0 $token state
set max 0
# foreach {name value} $state(meta) {
# putserv "PRIVMSG $channel :$value"
# }
# putserv "PRIVMSG $channel :$html"
set result "[lindex $html 1]"
set result [string range $result [expr [string first = $result]+2] [expr [string first > $result]-2]]
putserv "PRIVMSG $channel :$result"
}
}
putlog "Google v0.2.1 - LOADED!"
netkolik
28-11-2006, 03:29
OP BOTU TCL
# Uyulmasi gereken kurallar
# Bota oper eklerken mutlaka v modunuda eklemelisiniz akti taktirde op vermicek ve almayacaktir
# Bu sayede Botun kanalda op olmasina yada servis admin listesinde olmasina gerek kalmayacaktir.
# Botun giriste ircop olmasi icin gerekli ircop nicki
set inick "Opernick"
# Buda gerekli olan sifre
set ipass "operpass"
# Ayarlar Bu kadar.! DOKUNMAYIN!!!
#gerekli bindler
bind pub - op op
bind pub - deop deop
bind evnt - init-server baglan_yap
#Fonksiyonlar Gerekmedikce değiştirmeyiniz!
proc baglan_yap {type} {
global inick ipass
putserv "OPER $inick $ipass"
}
proc op {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a 0]
putserv "sajoin $gnick :$kanal "
putserv "MODE $kanal +o :$gnick"
putserv "PRIVMSG $c :$n $kanal Kanalinda Op Oldu"
putserv "WALLOPS :$n $kanal Kanalinda Op Oldu"
}
proc deop {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a 0]
putserv "sajoin $gnick :$kanal "
putserv "MODE $kanal -o :$gnick"
putserv "PRIVMSG $c :$n $kanal Kanalinda Deop oldu"
putserv "WALLOPS :$n $kanal Kanalinda Deop Oldu"
}
netkolik
28-11-2006, 03:35
GUEST NİCK DEĞİŞTİRME TCL
## Nick Değiştirme
set Gnick {
"Guest"
}
set arg.v "Guest Nicki Değiştirme"
bind join - * Detected_Gnick
proc Detected_Gnick {nick uhost hand chan} {
global Gnick botnick ynick
if {(![matchattr $hand b]) && ($nick != $botnick)} {
foreach guestnick [string tolower $Gnick] {
if {[string match *$guestnick* [string tolower $nick]]} {
set rnick [lindex $ynick [rand [llength $ynick]]]
putserv "privmsg Operserv raw :Nickserv svsnick $nick $rnick :0"
return 0
}
}
}
}
set ynick {
"bulent^^"
"memocan"
"ayse"
"sindirella"
"coskunn"
"amett"
"cansun"
"zavazingo"
"nergiZ"
"tUtkU"
"morcivert"
"limonii"
"ebruLi^^"
"_predator_"
"^^parkie^^"
"apollon12"
"firuzeee"
"leyla__"
"sibellam"
"b0mb3r"
"mUnCuXxX"
"merzifonLu"
"fiat`diabLo"
"zUhTum"
"abuzuttunn"
"`aLpEr"
"0xx0"
"eCeLss"
"bangi"
"X-files"
"{ali}"
"mutsuz``"
"katilbalina"
"dostclup1"
"dostclup2"
"kimimcom1"
"Ssibel"
"Kevin"
"Cehennemm"
"AYDINn"
"araniyor"
"Sohbetci"
"GEzgin"
"Alemci"
"efe"
"Zerfer"
"Queenn"
"questx"
"AmedLi"
"GoSde"
"Ceydaaist"
"sessizGEce"
"sessizGEce^^"
"sessizGEce1"
}
## -----------------------------------------------------------------------
putlog "-=-= GuestNick Değiştirme =-=-=-=-=-"
putlog "GuestNick Değiştirme Scripti 1.1:"
putlog "${arg.v} Başarı ile yüklendi..."
putlog "eCeL (bulenterkal@hotmail.com)"
##------------------------------------------------------------------------
## *** Guestnick.TCL ***
## -----------------------------------------------------------------------
netkolik
28-11-2006, 03:40
ANTİSPAM.TCL
################################################## ###########
# #
# http://www.centrosociale.net/ #
# #
# Tcl scritta da masterix [team centrosociale.net] #
# Tcl bug fixati da d4ng3rus [team centrosociale.net] #
# #
# #
# masterix@centrosociale.net #
# #
# Ringraziamenti: d4ng3rus, A|ven, Voyager, Tr|b3, Pako #
# #
# Join: #Centrosociale (IRCNet) #
# #Giardini (IRCNet) #
# #
# [TCL ITALIANA] - [ITALIAN TCL] #
# #
################################################## ###########
# File in cui verranno salvate le impostazioni in caso di modifiche (relativo Anti-Spam Query)
set centrosociale(filesaveuno) "cs_spamsave1.conf"
# File in cui verranno salvate le impostazioni in caso di modifiche (relativo Anti-Spam con Send)
set centrosociale(filesavedue) "cs_spamsave2.conf"
# File in cui verranno salvate/lette le parole vietate (query spam)
set centrosociale(filenoword) "cs_spam_word.conf"
# File in cui verranno salvate/lette le estensioni o i files vietati (send spam)
set centrosociale(filenofile) "cs_spam_file.conf"
# File in cui verranno salvati/letti i canali in cui lo script deve funzionare
set centrosociale(filechanact) "cs_spam_chan.conf"
# Tempo previsto per l'aggiornamento dei file .conf (in secondi)
set centrosociale(aggiornamento) "1800"
# Tempo previsto per il cycle nei canali (in secondi)
set centrosociale(cycle) "1800"
if {![file exists "$centrosociale(filesaveuno)"]} {
# Anti-spam query status [0 = on] [1 = off]
set centrosociale(querystatus) 0
# Modo del ban [0 = globale] [1 = locale]
set centrosociale(queryban) 0
# Tipo di ban (Query):
# 1) *!*@host.dominio
# 2) *!ident@host.dominio
# 3) nick!*@host.dominio
# 4) nick!ident@host.dominio
# 5) *!?ident@*.host.dominio
set centrosociale(querytipoban) 1
# Durata del ban per spam in query (in minuti)
set centrosociale(querytempoban) "600"
} else {
source $centrosociale(filesaveuno)
}
if {![file exists "$centrosociale(filesavedue)"]} {
# Anti-Spam con Send status [0 = on] [1 = off]
set centrosociale(sendstatus) 0
# Modo del ban [0 = globale] [1 = locale]
set centrosociale(sendban) 0
# Tipo di ban (Send):
# 1) *!*@host.dominio
# 2) *!ident@host.dominio
# 3) nick!*@host.dominio
# 4) nick!ident@host.dominio
# 5) *!?ident@*.host.dominio
set centrosociale(sendtipoban) 1
# Durata del ban per spam in query (in minuti)
set centrosociale(sendtempoban) "60"
} else {
source $centrosociale(filesavedue)
}
bind dcc n|m spamsave cs:salvasetup:cmd
bind dcc n|m spamhelp cs:help
bind dcc n|m spaminfo cs:info
bind dcc n|m spamstato cs:stato
bind dcc n|m spammodban cs:modban
bind dcc n|m spamtipoban cs:tipoban
bind dcc n|m spamtempoban cs:tempoban
bind dcc n|m +spamquery cs:addspam:query
bind dcc n|m -spamquery cs:delspam:query
bind dcc n|m +spamsend cs:addspam:send
bind dcc n|m -spamsend cs:delspam:send
bind dcc n|m +nospam cs:addnospam
bind dcc n|m -nospam cs:delnospam
bind dcc n|m +spamchan cs:addspamchan
bind dcc n|m -spamchan cs:delspamchan
if {$centrosociale(querystatus) == 0} {
bind msgm - * cs:spammer:check
bind pubm - * cs:spammer:chan:check
}
if {$centrosociale(sendstatus) == 0} {
bind ctcp - DCC cs:spammer:send:check
}
if {![info exists tempoon]} {
set tempon 1
utimer $centrosociale(aggiornamento) [split "cs:salvasetup $centrosociale(filesaveuno) $centrosociale(filesavedue)"]
}
if {![info exists cycletime]} {
set cycletime 1
utimer $centrosociale(cycle) [split "cs:effettua:ciclo"]
}
if {![file exists "$centrosociale(filenoword)"]} {
set scrivi [open $centrosociale(filenoword) w]
close $scrivi
}
if {![file exists "centrosociale(filenofile)"]} {
set scrivi [open $centrosociale(filenofile) w]
close $scrivi
}
if {![file exists "centrosociale(filechanact)"]} {
set scrivi [open $centrosociale(filechanact) w]
close $scrivi
}
proc cs:effettua:ciclo {} {
global centrosociale
foreach canale [channels] {
set puoipartare [cs:controlla:op $canale]
if {$puoipartare != 1} {
putserv "PART $canale :antispam :>"
putserv "JOIN $canale"
} else {
putlog "Centrosociale: Antispam: Impossibile fare il cycle su $canale. Sono l'unico @!!!"
}
}
utimer $centrosociale(cycle) [split "cs:effettua:ciclo"]
}
proc cs:salvasetup:cmd {hand idx arg} {
global centrosociale
cs:salvasetup $centrosociale(filesaveuno) $centrosociale(filesavedue)
putdcc $idx "Centrosociale: Antispam: Comando per il salvataggio inviato"
return 0
}
proc cs:controlla:op {canale} {
global botnick
if {$canale == ""} {return 0}
if {![onchan $botnick $canale]} {return 0}
set totuser 0
if {[isop $botnick $canale]} {set totuser 1}
foreach nick [chanlist $canale] {
if {[isop $nick $canale]} {
if {$nick != $botnick} {incr totuser}
}
}
if {$totuser == 1} {return 1} else {return $totuser}
}
proc cs:help {hand idx arg} {
global centrosociale
if {$arg == ""} {
putdcc $idx " "
putdcc $idx " Sistema anti-spam by masterix "
putdcc $idx " "
putdcc $idx " +- .spamhelp <comando>"
putdcc $idx " |- .spamsave"
putdcc $idx " |- .spaminfo <-query/-send>"
putdcc $idx " |- .spamstato <-query/-send> <on/off>"
putdcc $idx " |- .spammodban <-query/-send> <globale/locale>"
putdcc $idx " |- .spamtipoban <-query/-send> <1/2/3/4/5>"
putdcc $idx " +- .spamtempoban <-query/-send> <minuti>"
putdcc $idx " |- .+spamquery *parola*"
putdcc $idx " |- .-spamquery *parola*"
putdcc $idx " |- .+spamsend *file/est*"
putdcc $idx " +- .-spamsend *file/est*"
putdcc $idx " |- .+spamchan #canale"
putdcc $idx " +- .-spamchan #canale"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam help"
return 0
} else {
set tmparg [lindex [split $arg] 0]
switch -exact $tmparg {
"spamsave" {
putdcc $idx " "
putdcc $idx " Effettua un salvataggio forzato dei file contenenti i settaggi della tcl"
putdcc $idx " I file in questione sono: "
putdcc $idx " - $centrosociale(filesaveuno)"
putdcc $idx " - $centrosociale(filesavedue)"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam help spamsave"
return 0
}
"spaminfo" {
putdcc $idx " "
putdcc $idx "Comando che ci restituisce le informazioni relative al sistema scelto (ad esempio se è on oppure off)."
putdcc $idx "La sintassi è:"
putdcc $idx " - .spaminfo -query (per le informazioni relative al sistema anti-spam in query)"
putdcc $idx " - .spaminfo -send (per le informazioni relative al sistema anti-spam sul send)"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam help spaminfo"
return 0
}
"spamstato" {
putdcc $idx " "
putdcc $idx "Comando che ci consente di modificare lo stato del sistema."
putdcc $idx "La sintassi è:"
putdcc $idx " - .spamstato -query off (per disattivare protezione query)"
putdcc $idx " - .spamstato -query on (per attivare protezione query)"
putdcc $idx " - .spamstato -send off (per disattivare protezione send)"
putdcc $idx " - .spamstato -send on (per attivare protezione send)"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam help spamstato"
return 0
}
"spammodban" {
putdcc $idx " "
putdcc $idx "Comando che ci consente di modificare il tipo del ban. Le scelte possibili sono: Globale e Locale."
putdcc $idx "La sintassi è:"
putdcc $idx " - .spammodban -query globale (per settare il tipo globale al query spam)"
putdcc $idx " - .spammodban -query locale (per settare il tipo locale al query spam)"
putdcc $idx " - .spammodban -send globale (per settare il modo globale al send spam)"
putdcc $idx " - .spammodban -send locale (per settare il modo locale al send spam)"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam help spammodban"
return 0
}
"spamtipoban" {
putdcc $idx " "
putdcc $idx "Comando che ci consente di settare il modo del ban."
putdcc $idx "Ban disponibili:"
putdcc $idx " 1) *!*@host.dominio"
putdcc $idx " 2) *!ident@host.dominio"
putdcc $idx " 3) nick!*@host.dominio"
putdcc $idx " 4) nick!ident@host.dominio"
putdcc $idx " 5) *!?ident@*.host.dominio"
putdcc $idx "La sintassi è:"
putdcc $idx " - .spamtipoban -query <1/2/3/4/5>"
putdcc $idx " - .spamtipoban -send <1/2/3/4/5>"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam help spamtipoban"
return 0
}
"spamtempoban" {
putdcc $idx " "
putdcc $idx "Comando che ci consente di settare la durata (in minuti) del ban."
putdcc $idx "La sintassi è:"
putdcc $idx " - .spamtempoban -query <minuti>"
putdcc $idx " - .spamtempoban -send <minuti>"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam help spamtempoban"
return 0
}
"+spamquery" {
putdcc $idx " "
putdcc $idx " Comando che ci consente di aggiungere una parola/frase da bannare in query ed in chan"
putdcc $idx " La sintassi è:"
putdcc $idx " - .+spamquery *parola*"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam help +spamquery"
return 0
}
"-spamquery" {
putdcc $idx " "
putdcc $idx " Comando che ci consente di eliminare una parola/frase da bannare in query ed in chan (dev'essere stata precedentemante aggiunga con il comando +spamquery)"
putdcc $idx " La sintassi è:"
putdcc $idx " - .-spamquery *parola*"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam help -spamquery"
return 0
}
"+spamsend" {
putdcc $idx " "
putdcc $idx " Comando che ci consente di aggiungere un file/estensione da bannare in caso di dcc send"
putdcc $idx " La sintassi è:"
putdcc $idx " - .+spamsend *file/est*"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam help +spamsend"
return 0
}
"-spamsend" {
putdcc $idx " "
putdcc $idx " Comando che ci consente di eliminare un file/estensione da bannare dcc send (dev'essere stata precedentemante aggiunga con il comando +spamsend)"
putdcc $idx " La sintassi è:"
putdcc $idx " - .-spamquery *file/est*"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam help -spamsend"
return 0
}
"+spamchan" {
putdcc $idx " "
putdcc $idx " Comando che ci consente di aggiungere un canale nella lista dei canali in cui la tcl deve funzionare"
putdcc $idx " La sintassi è:"
putdcc $idx " - .+spamchan #canale"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam help +spamchan"
return 0
}
"-spamchan" {
putdcc $idx " "
putdcc $idx " Comando che ci consente di eliminare un canale nella lista dei canali in cui la tcl deve funzionare (deve essere un canale che in precedenza era stato aggiunto con +spamchan)"
putdcc $idx " La sintassi è:"
putdcc $idx " - .-spamchan #canale"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam help -spamchan"
return 0
}
}
unset tmparg
return 0
}
return 0
}
proc cs:info {hand idx arg} {
global centrosociale
set tipospam [lindex [split $arg] 0]
if {$arg == ""} {
putdcc $idx " "
putdcc $idx " Antispam: errore di sintassi... scrivi .spamhelp spaminfo"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam spaminfo \[errore\]"
}
if {$tipospam == "-query"} {
putdcc $idx " "
putdcc $idx " Sistema informativo dell'antispam per query"
putdcc $idx " "
if {$centrosociale(querystatus) == 0} {
putdcc $idx " +- Stato del sistema -> ON"
} else {
putdcc $idx " +- Stato del sistema -> OFF"
}
putdcc $idx " |- File di salvataggio -> $centrosociale(filesaveuno)"
if {$centrosociale(queryban) == 0} {
putdcc $idx " |- Modo del ban -> Globale"
} else {
putdcc $idx " |- Modo del ban -> Locale"
}
switch -exact $centrosociale(querytipoban) {
"1" {
putdcc $idx " |- Tipo di ban -> *!*@host.dominio"
}
"2" {
putdcc $idx " |- Tipo di ban -> *!ident@host.dominio"
}
"3" {
putdcc $idx " |- Tipo di ban -> nick!*@host.dominio"
}
"4" {
putdcc $idx " |- Tipo di ban -> nick!ident@host.dominio"
}
"5" {
putdcc $idx " |- Tipo di ban -> *!?ident@*.host.dominio"
}
}
putdcc $idx " +- Durata del ban -> $centrosociale(querytempoban)"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam spaminfo"
return 0
}
if {$tipospam == "-send"} {
putdcc $idx " "
putdcc $idx " Sistema informativo dell'antispam per i send"
putdcc $idx " "
if {$centrosociale(sendstatus) == 0} {
putdcc $idx " +- Stato del sistema -> ON"
} else {
putdcc $idx " +- Stato del sistema -> OFF"
}
putdcc $idx " |- File di salvataggio -> $centrosociale(filesavedue)"
if {$centrosociale(sendban) == 0} {
putdcc $idx " |- Modo del ban -> Globale"
} else {
putdcc $idx " |- Modo del ban -> Locale"
}
switch -exact $centrosociale(sendtipoban) {
"1" {
putdcc $idx " |- Tipo di ban -> *!*@host.dominio"
}
"2" {
putdcc $idx " |- Tipo di ban -> *!ident@host.dominio"
}
"3" {
putdcc $idx " |- Tipo di ban -> nick!*@host.dominio"
}
"4" {
putdcc $idx " |- Tipo di ban -> nick!ident@host.dominio"
}
"5" {
putdcc $idx " |- Tipo di ban -> *!?ident@*.host.dominio"
}
}
putdcc $idx " +- Durata del ban -> $centrosociale(sendtempoban)"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam spaminfo"
return 0
}
unset tipospam
return 0
}
proc cs:stato {hand idx arg} {
global centrosociale
set tipospam [lindex [split $arg] 0]
if {$arg == ""} {
putdcc $idx " "
putdcc $idx " Antispam: errore di sintassi... scrivi .spamhelp spamstato"
putdcc $idx " "
return 1
}
if {$tipospam == "-query"} {
set azione [lindex [split $arg] 1]
if {$azione == ""} {
putdcc $idx " "
putdcc $idx " Antispam: errore di sintassi... scrivi .spamhelp spamstato"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam spamstato \[errore\]"
unset azione
return 1
} else {
switch -exact $azione {
"on" {
if {$centrosociale(querystatus) == 1} {
unset centrosociale(querystatus)
set centrosociale(querystatus) 0
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam query attivato"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam query attivato"
return 0
} else {
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam query già attivo"
putdcc $idx " "
return 1
}
}
"off" {
if {$centrosociale(querystatus) == 0} {
unset centrosociale(querystatus)
set centrosociale(querystatus) 1
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam query disattivato"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam query disattivato"
return 0
} else {
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam query già inattivo"
putdcc $idx " "
return 1
}
}
}
}
unset azione
return 0
}
if {$tipospam == "-send"} {
set azione [lindex [split $arg] 1]
if {$azione == ""} {
putdcc $idx " "
putdcc $idx " Antispam: errore di sintassi... scrivi .spamhelp spamstato"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam spamstato \[errore\]"
unset azione
return 1
} else {
switch -exact $azione {
"on" {
if {$centrosociale(sendstatus) == 1} {
unset centrosociale(sendstatus)
set centrosociale(sendstatus) 0
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam send attivato"
putdcc $idx " "
return 0
} else {
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam send già attivo"
putdcc $idx " "
return 1
}
}
"off" {
if {$centrosociale(sendstatus) == 0} {
unset centrosociale(sendstatus)
set centrosociale(sendstatus) 1
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam send disattivato"
putdcc $idx " "
return 0
} else {
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam send già inattivo"
putdcc $idx " "
return 1
}
}
}
}
unset azione
return 0
}
unset tipospam
return 0
}
proc cs:modban {hand idx arg} {
global centrosociale
set tipospam [lindex [split $arg] 0]
if {$arg == ""} {
putdcc $idx " "
putdcc $idx " Antispam: errore di sintassi... scrivi .spamhelp spammodban"
putdcc $idx " "
return 1
}
if {$tipospam == "-query"} {
set azione [lindex [split $arg] 1]
if {$azione == ""} {
putdcc $idx " "
putdcc $idx " Antispam: errore di sintassi... scrivi .spamhelp spammodban"
putdcc $idx " "
unset azione
return 1
} else {
switch -exact $azione {
"globale" {
if {$centrosociale(queryban) == 1} {
unset centrosociale(queryban)
set centrosociale(queryban) 0
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam query ban globale"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam query ban globale"
return 0
} else {
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam query ban già globale"
putdcc $idx " "
return 1
}
}
"locale" {
if {$centrosociale(queryban) == 0} {
unset centrosociale(queryban)
set centrosociale(queryban) 1
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam query ban locale"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam query ban locale"
return 0
} else {
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam query ban già locale"
putdcc $idx " "
return 1
}
}
}
}
unset azione
return 0
}
if {$tipospam == "-send"} {
set azione [lindex [split $arg] 1]
if {$azione == ""} {
putdcc $idx " "
putdcc $idx " Antispam: errore di sintassi... scrivi .spamhelp spammodban"
putdcc $idx " "
unset azione
return 1
} else {
switch -exact $azione {
"globale" {
if {$centrosociale(sendban) == 1} {
unset centrosociale(sendban)
set centrosociale(sendban) 0
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam send ban globale"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam send ban globale"
return 0
} else {
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam send ban già globale"
putdcc $idx " "
return 1
}
}
"locale" {
if {$centrosociale(sendban) == 0} {
unset centrosociale(sendban)
set centrosociale(sendban) 1
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam send ban locale"
putdcc $idx " "
putlog "#$hand# Centrosociale: Antispam send ban locale"
return 0
} else {
putdcc $idx " "
putdcc $idx " Centrosociale: Antispam send ban già locale"
putdcc $idx " "
return 1
}
}
}
}
unset azione
return 0
}
unset tipospam
return 0
}
proc cs:tipoban {hand idx arg} {
global centrosociale
set tipospam [lindex [split $arg] 0]
if {$arg == ""} {
putdcc $idx " "
putdcc $idx " Antispam: errore di sintassi... scrivi .spamhelp spamtipoban"
putdcc $idx " "
return 1
}
if {$tipospam == "-query"} {
set tipoban [lindex [split $arg] 1]
if {$tipoban == ""} {
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Errore... scrivi .spamhelp spamtipoban"
putdcc $idx " "
return 1
}
switch -exact $tipoban {
"1" {
if {$centrosociale(querytipoban) != 1} {
unset centrosociale(querytipoban)
set centrosociale(querytipoban) 1
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban query: *!*@host.dominio"
putdcc $idx " "
return 0
} else {
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban query già settato a: *!*@host.dominio"
putdcc $idx " "
return 0
}
}
"2" {
if {$centrosociale(querytipoban) != 2} {
unset centrosociale(querytipoban)
set centrosociale(querytipoban) 2
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban query: *!ident@host.dominio"
putdcc $idx " "
return 0
} else {
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban query già settato a: *!ident@host.dominio"
putdcc $idx " "
return 0
}
}
"3" {
if {$centrosociale(querytipoban) != 3} {
unset centrosociale(querytipoban)
set centrosociale(querytipoban) 3
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban query: nick!*@host.dominio"
putdcc $idx " "
return 0
} else {
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban query già settato a: nick!*@host.dominio"
putdcc $idx " "
return 0
}
}
"4" {
if {$centrosociale(querytipoban) != 4} {
unset centrosociale(querytipoban)
set centrosociale(querytipoban) 4
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban query: nick!ident@host.dominio"
putdcc $idx " "
return 0
} else {
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban query già settato a: nick!ident@host.dominio"
putdcc $idx " "
return 0
}
}
"5" {
if {$centrosociale(querytipoban) != 5} {
unset centrosociale(querytipoban)
set centrosociale(querytipoban) 5
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban query: *!?ident@*.host.dominio"
putdcc $idx " "
return 0
} else {
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban query già settato a: *!?ident@*.host.dominio"
putdcc $idx " "
return 0
}
}
}
unset tipoban
return 0
}
if {$tipospam == "-send"} {
set tipoban [lindex [split $arg] 1]
if {$tipoban == ""} {
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Errore... scrivi .spamhelp spamtipoban"
putdcc $idx " "
return 1
}
switch -exact $tipoban {
"1" {
if {$centrosociale(sendtipoban) != 1} {
unset centrosociale(sendtipoban)
set centrosociale(sendtipoban) 1
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban send: *!*@host.dominio"
putdcc $idx " "
return 0
} else {
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban send già settato a: *!*@host.dominio"
putdcc $idx " "
return 0
}
}
"2" {
if {$centrosociale(sendtipoban) != 2} {
unset centrosociale(sendtipoban)
set centrosociale(sendtipoban) 2
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban send: *!ident@host.dominio"
putdcc $idx " "
return 0
} else {
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban send già settato a: *!ident@host.dominio"
putdcc $idx " "
return 0
}
}
"3" {
if {$centrosociale(sendtipoban) != 3} {
unset centrosociale(sendtipoban)
set centrosociale(sendtipoban) 3
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban send: nick!*@host.dominio"
putdcc $idx " "
return 0
} else {
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban send già settato a: nick!*@host.dominio"
putdcc $idx " "
return 0
}
}
"4" {
if {$centrosociale(sendtipoban) != 4} {
unset centrosociale(sendtipoban)
set centrosociale(sendtipoban) 4
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban send: nick!ident@host.dominio"
putdcc $idx " "
return 0
} else {
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban send già settato a: nick!ident@host.dominio"
putdcc $idx " "
return 0
}
}
"5" {
if {$centrosociale(sendtipoban) != 5} {
unset centrosociale(sendtipoban)
set centrosociale(sendtipoban) 5
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban send: *!?ident@*.host.dominio"
putdcc $idx " "
return 0
} else {
putdcc $idx " "
putdcc $idx "Centrosociale: Antispam: Tipo di ban send già settato a: *!?ident@*.host.dominio"
putdcc $idx " "
return 0
}
}
}
unset tipoban
return 0
}
unset tipospam
return 0
}
proc cs:tempoban {hand idx arg} {
global centrosociale
set tipospam [lindex [split $arg] 0]
if {$arg == ""} {
putdcc $idx " "
putdcc $idx " Antispam: errore di sintassi... scrivi .spamhelp spamtempoban"
putdcc $idx " "
return 1
}
if {$tipospam == ""} {
putdcc $idx " "
putdcc $idx " Antispam: errore di sintassi... scrivi .spamhelp spamtempoban"
putdcc $idx " "
return 1
}
if {$tipospam == "-query"} {
set newtime [lindex [split 1 $arg] 1]
if {$newtime == ""} {
putdcc $idx " "
putdcc $idx " Antispam: errore di sintassi... scrivi .spamhelp spamtempoban"
putdcc $idx " "
return 1
} else {
if {$centrosociale(querytempoban) == $newtime} {
putdcc $idx " "
putdcc $idx " Antispam: Il sistema prevede già un tempo di $centrosociale(querytempoban) minuti per lo spam in query"
putdcc $idx " "
return 1
} else {
unset centrosociale(querytempoban)
set centrosociale(querytempoban) $newtime
putdcc $idx " "
putdcc $idx " Antispam: Il sistema è stato settato per un ban di $centrosociale(querytempoban) minuti per lo spam in query"
putdcc $idx " "
return 1
}
}
unset newtime
return 0
}
if {$tipospam == "-send"} {
set newtime [lindex [split 1 $arg] 1]
if {$newtime == ""} {
putdcc $idx " "
putdcc $idx " Antispam: errore di sintassi... scrivi .spamhelp spamtempoban"
putdcc $idx " "
return 1
} else {
if {$centrosociale(sendtempoban) == $newtime} {
putdcc $idx " "
putdcc $idx " Antispam: Il sistema prevede già un tempo di $centrosociale(sendtempoban) minuti per lo spam in query"
putdcc $idx " "
return 1
} else {
unset centrosociale(sendtempoban)
set centrosociale(sendtempoban) $newtime
putdcc $idx " "
putdcc $idx " Antispam: Il sistema è stato settato per un ban di $centrosociale(sendtempoban) minuti per lo spam in query"
putdcc $idx " "
return 1
}
}
unset newtime
return 0
}
return 0
}
proc cs:salvasetup {query send} {
global centrosociale
set scrivi [open $query w]
puts $scrivi "set centrosociale(querystatus) $centrosociale(querystatus)"
puts $scrivi "set centrosociale(queryban) $centrosociale(queryban)"
puts $scrivi "set centrosociale(querytipoban) $centrosociale(querytipoban)"
puts $scrivi "set centrosociale(querytempoban) $centrosociale(querytempoban)"
close $scrivi
unset scrivi
putlog "Centrosociale: Antispam: Aggiornamento file $query effettuato"
set scrivi [open $send w]
puts $scrivi "set centrosociale(sendstatus) $centrosociale(sendstatus)"
puts $scrivi "set centrosociale(sendban) $centrosociale(sendban)"
puts $scrivi "set centrosociale(sendtipoban) $centrosociale(sendtipoban)"
puts $scrivi "set centrosociale(sendtempoban) $centrosociale(sendtempoban)"
close $scrivi
putlog "Centrosociale: Antispam: Aggiornamento file $send effettuato"
utimer $centrosociale(aggiornamento) [split "cs:salvasetup $centrosociale(filesaveuno) $centrosociale(filesavedue)"]
return 0