IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   TCL Scriptler (https://www.ircforumlari.net/tcl-scriptler/)
-   -   ScanX hakkında. (https://www.ircforumlari.net/tcl-scriptler/561185-scanx-hakkinda.html)

Raymon 24 Ocak 2014 01:16

ScanX hakkında.
 
Merhabalar. ScanX tcl'sinde .mel kanal loglamayı bir türlü çalıştıramadım. Biryerede hatamı yaptım bilmiyorum. Bu cevabı alıyorum sürekli.

[01:13] (nick): .mel +chan #istanbul
[01:13] ((nick1): [02:13:47] #nick# mel +chan #istanbul
[01:13] ((nick1): You are not allowed to perform maintenance!
[01:13] ((nick1): Contact * for more information
[01:13] ((nick1): mIRCStats Eggdrop Logger v1

saywhat 24 Ocak 2014 02:09

Cevap: ScanX hakkında.
 
mel -> mirc stats eggdrop logger v1 imiş bu scanx'deki...

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] bu projenin sayfası.
son güncellemesi 2005'te yapılmış.bu "en güncel" versionu v2.0

"The tcl will only run on eggdrop1.6.0 or newer!!!
The tcl needs Tcl version 8.1 or newer!!!" bu tcl sadece eggdrop1.6.0 ve üstü sürümle çalışır...tcl8.1 ve daha yenisi gerekir...

ne kadar eski olduğunu göstermesi açısından... çalışmaması hiçbir şekilde şaşırtıcı olmamalı...

yine de scanx 4436 ve 4437. satırlardaki bu "mel" ayarlarına bakıldığında :

Kod:

set statsdir "mel/"
set statslogdir "mel/logs/"

eggdrop içinde bu mel için ayrı bir klasör /mel klasörü ve onun içinde birde logs adında klasör arıyacaktır.

yukarda sizin gösterdiğiniz hatayı verense :

Kod:

if {![finditem fkeep [string tolower $handle]]} {
        putlog "#$handle# mel $arg"
        putidx $idx "You are not allowed to perform maintenance!"
        putidx $idx "Contact $logkeeper for more information"
        putidx $idx "\002mIRCStats Eggdrop Logger\002 $logver"
        return 0

mel'in readme dosyasına göre logkeeper olarak scanx satır 4438 set logkeeper "*" ayarında kendi handle'ınız gösterilmeliymiş. bot nicki vs değil.
handle botun sizi sahip olarak tanıdığı login-name idir. botunuza bağlanırken hangi nick-rumuz kullanıyorsanız ,eggdrop .conf üzerinde set owner "" satırında yazandır.

tavsiyem yukardaki linkten mel'i indirin ve içindeki readme.txt dosyasından ayarları-yapılandırması nasıl olmalı ona bir göz gezdirin.

Raymon 24 Ocak 2014 02:43

Cevap: ScanX hakkında.
 
putlog "#$handle# mel $arg" bu satırda şahsi nickimi almış handle yerine eggdrop.conf'daki set owner. orası doğru. yinede kullanma klavuzunu okumakta yarar var dediğiniz gibi =) ilgilendiğin için sağol saywhat.

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 02:43 -->-> Daha önceki mesaj 02:27 --

Elinizde buna benzer olupta olduğu kanaldaki konuşmaları, başka bir kanala msg olarak gönderen bir kod varmı hocam?

saywhat 24 Ocak 2014 03:19

Cevap: ScanX hakkında.
 
burası -> tcl archive -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] egghelp'in resmi tcl deposu / arşivi ... burada arama yerine "relay" yazıp aratın karşınıza iki türlü relay* scripti çıkacaktır. bunlardan bazıları channel relay kimileride irc server relay yapar..

irc server relay scriptleri en az iki bottan oluşan botnet kurulumu gerektirir.. örnek iki bot çalıştırır birini kendi sunucunuza diğeri başka /dikizlemek istediğiniz sunucuya sokarsınız iki botu birbirine linkler ve bu tür bir script yükleyerek o sunucudakileri kendi sunucunuzdaki belirlediğiniz yere yansıtırsınız..

diğer channel relay türü scriptlerse adı üstünde diğer kanalı yada kanalları dikizlemek kendi belirlediğiniz kanala yansıtmak için kullanılır. tek bot üstünden işletilebilir.. spy olarakda arama yapılabilir. chanspy vs şeklinde adı olanlarıda vardı yanlış hatırlamıyorsam...

saywhat 24 Ocak 2014 12:50

Cevap: ScanX hakkında.
 
dün gece biraz yoğundu meşguldüm o yüzden vakit ayıramadım...

(bi italyan sabaha kadar benide diğerlerinide tuttu .kurulum yapamıyormuş,yok bir scriptte hata alıyormuş vs vs habire konuşup,sorular yağdırıyordu...)

istediğiniz tür scriptler son derece basittir aslında yapması..yani bir kanalı diğerine yansıtma olayı. fazla allayıp pullamadan ,eggdrop bind komutları kullanarak istenen aksiyon yakalanabilir. hemen her aksiyon için belli bir bind türü vardır zaten bunları eggdrop/doc/ klasörü içinde eggdrop-tcl-commands dökümanı bulabilirsiniz yada sitesinden -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] bakıp ekleme/çıkarmalar yapabilirsiniz size örnek olarak şunu yazıverdim:

Kod:

;# olanları yansıtmak istediğiniz sizin kanalın adı:

set yansi_knl "#bnmkanal"

bind pubm -|- "#kanal *" yakala_chat

proc yakala_chat {nick uhost hand chan text} {
    puthelp "privmsg $::yansi_knl :$chan $nick : $text"
    return 0
    }

bind join -|- "#kanal *" yakala_join

proc yakala_join {nick uhost hand chan} {
    puthelp "privmsg $::yansi_knl :$chan $nick $uhost"
    }

bind part -|- "#kanal *" yakala_part

proc yakala_part {nick uhost hand chan {msg ""}} {
  if {[isbotnick $nick]} { return 0;}
  if {$msg ne ""} {
    puthelp "privmsg $::yansi_knl :$chan $nick $uhost $msg"
  } else {
    puthelp "privmsg $::yansi_knl :$chan $nick $uhost"
    return 0
    }
}

tek bir #kanal'ı izletmek yansıtmak istiyorsanız bind satırlarındaki "#kanal *" yerine #diğer-hedef-kanalı yazarsınız yok botun olduğu tüm kanalları alıp belirlediğiniz kanala yansıtsın diyorsanızda bind satırlarında yukardaki yerine "% *" olarak değişirsiniz (yada "*" aynı işi görür) .bu tüm kanallar için bind'in alakalı aksiyonda tetiklenmesini sağlar...

muaf kanal tutmak istenirse yani hepsini gözlesin ama şunu yansıtmasın deniyosa ilgili bind'in prosedürü içinde hemen proc altına
if {$chan eq "#muaf-kanal"} { return;} yada
if {$chan ne "#muaf-kanal"} {
....diğer normal kod satırları...
prosedür sonuna bir tane daha } eklersiniz...

eq anlamı eşitlik,denklik diğer türlü == yazılabilir. ..
ne anlamı eşitsizlik,denk olmama diğer şekli !=
önemli : kanal isimleri case sensitive yani büyük -küçük harf uyumlu olmalıdır.

set yansi_knl ise sizin olanı yansıtmak istediğiniz kanalınızdır.
yukardaki kod izlenen kanal/lardaki chat'i giriş ve /part'ları yansıtır.

Raymon 24 Ocak 2014 15:19

Cevap: ScanX hakkında.
 
Örnekleme için teşekkür ederim elinize sağlık.

Raymon 24 Ocak 2014 17:26

Cevap: ScanX hakkında.
 
Şöyle birşey denedim ama elime yüzüme bulaştırdım sanırım =) hocam neresinde yanlış var acaba?



setudef flag log
set yansi_knl "#kanaladi"
bind pubm -|- "*" log
proc yakala_chat {nick uhost hand chan text} {
puthelp "privmsg $::yansi_knl :$chan $nick : $text" return 0 } {
if {[isbotnick $nick]} { return 0;}
if {$msg ne ""} {
puthelp "privmsg $::yansi_knl :$chan $nick $uhost $msg"
} else {
puthelp "privmsg $::yansi_knl :$chan $nick $uhost"
return 0
}
}

saywhat 24 Ocak 2014 19:17

Cevap: ScanX hakkında.
 
yukarda verdiğim koda baktığımızda kendi içinde üç ayrı bind'e ve herbir bind'e bağlı-o bind'e ait prosedüre sahip.

kendi içinde 3 ayrı kod tek ortak noktaları yansi_knl değişkenini ortaklaşa kullanmaları.

bu bind çeşitleri mirc scripting'teki eventlerin eggdrop Tcl'deki karşılıkları.
ancak her event-aksiyon için belirlenmiş bindler için kendine özgü proc/prosedürleri var.yukarda verdiğim linkteki eggdrop tcl commands dökümanını "binds" bind çeşitlerini inceleyiniz. her bind türü için kullanılacak- proc / prosedür yapısı gösterilmiştir.

yukarda verdiğim kod çalışır..(denemeye gerek görmedim..çünkü yapı olarak oldukça düz basit.. hata vs olacak durumu yok)

sadece kanala yazılan yazıları yakalamak istiyorum diyorsanız bind pubm dışındaki bind'leri bind join ve bind part'ı unbind olarak değişirsiniz etkisiz hale gelir .onlar işlemez..


Kod:

;# setudef : kullanıcı tarafından belirlenmiş flag
;# dcc/telnet .chaninfo #kanal komutunda -log gibi görünür.
;# bu kodun yüklendiğini sorgulanan kanal üstünde pasif olduğunu gösterir.
;# bu kullanıldığında prosedür içinde bunu destekleyen kodu da yazmanız gerekir.
;# aksi halde aktif etme şansınız olmaz.
;# bu prosedür içinde iki ayrı şekilde belirtilir.
;# bir benim daha sık kullandığım şekliyle :
;# if {![channel get $chan log]} { return ;}
;# diğer daha eski yöntem / satır ise:
;# if {![lsearch -exact [channel info $chan] "+log"] != -1} { return;}
;# her iki satırda kodu aktif etmek için udef kullanıcı tanımlı flag/ayarın kanal üstünde
;#  aktif durumda olup olmadığını kontrol eder ..değilse işleme ..diyor basit anlamda...

setudef flag log

set yansi_knl "#kanaladi"

;# bind pubm ile "*" kanal üstünde yazılan her kelime/cümlede harekete geçer

bind pubm -|- "*" log

;# bind kmutları eggdrop'a özgüdür Tcl/tk'da da bind komutu vardır ancak bambaşka
;# anlamda-şekilde kullanımı vardır. eggdrop bind'leri eggdrop kaynak kodları içinde
;# kendilerine göre prosedürleriyle tanımlanıp oluşturulmuştur.
;# hemen her bind'in prosedürü kullanım yeri,amacına göre farklıdır.
 
proc yakala_chat {nick uhost hand chan text} {
;# aşağıdaki puthelp kanala postalama satırı sonunda " tırnakta sonra diğer satırı ayıracak bir ayraç
;# olmadan satırları uç uca eklerseniz hata alırsınız.bot kendini killer.
;# ayrıca böyle bir satır sonunda açık ayraç olmaz.
;# herhangi bir şart / koşul gösterip ,eğer bu bu bu şartlar oluşmuşsa {
;# dedikten sonra açık bir ayraç ekler ,şunu şunu şunu yap...
;# açılmış ayraç yapılan işlerin sonunda kapalı bir ayraç eklenerek son bulur.

puthelp "privmsg $::yansi_knl :$chan $nick : $text" return 0 } {

;# şartları -koşulları prosedürün başında belirlemilisiniz ki
;# ona göre işlem / sonuç alabilin önce sonuç / çıktı sonra koşulları sıralamak işlemez.
;# bind pubm prosedürleri sonunda return 0 ile bitirp herhangi bir hareket olmadığında
;# kodun pasifize hale getirilmesi gerekir.

;# eğer bot ise boş dön ..işlem yapma/ atla anlamına
;# ancak bind pubm ile bunu kullanmaya gerek var mı?
;# orası tartışılır...

if {[isbotnick $nick]} { return 0;}

;# (msg ""} değişkeni bind part'a aittir ..
;# amacı part mesajlarını yakalamak .görmektir.
;# bunu öylece buraya eklerseniz bu değişken/variable hata verir.
;# bind pubm'a ait değildir.eğer ayrıca düşündüğünüz yaptırmak istediğiniz bir durum varsa
;# ayrıca bunu tanımlamanız gerekir.öylece ekleyemezsiniz.

if {$msg ne ""} {


puthelp "privmsg $::yansi_knl :$chan $nick $uhost $msg"
} else {
puthelp "privmsg $::yansi_knl :$chan $nick $uhost"
return 0
}
}


Raymon 24 Ocak 2014 19:59

Cevap: ScanX hakkında.
 
Daha ne kadar açıklayıcı olunabilirki. Öğrenmeye devam =)

Raymon 24 Ocak 2014 22:24

Cevap: ScanX hakkında.
 
unbind yapınca hata verdi bende komudu engelledim hocam. Bu şekilde istediğim gibi çalıştı hiçbir sorun çıkmadı.


[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 14:29.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk