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/)
-   IRCd Makaleler (https://www.ircforumlari.net/ircd-makaleler/)
-   -   EGGDROP - Tcl scriptleri bota yükleme,tanıtma.. (https://www.ircforumlari.net/ircd-makaleler/390422-eggdrop-tcl-scriptleri-bota-yuklemetanitma.html)

OtherSide 06 Haziran 2012 04:33

Cevap: EGGDROP - Tcl scriptleri bota yükleme,tanıtma..
 
Merhaba , eggdroplarda sıkıntı yokta bir bota extra tcl dosyası attığımda bunu confuna da eklediğim halde çalışmıyor nedenini bulamadım bir türlü sorun yok gibi gözüküyor ama tcl yi görmüyor..

saywhat 06 Haziran 2012 08:39

Cevap: EGGDROP - Tcl scriptleri bota yükleme,tanıtma..
 
botun içine attığı tcl scripti botun görebilmesi ve çalışmaya başlaması için botun confunda scriptlerin eklendiği kısımda

source scripts/scriptin-adi.tcl

şeklinde gösterilmesi gerekir. scripts klasörü yerine başka bir klasöre eklendiyse o klasörün yerin adı "scripts" yerine yazılır.botun ana dizinine koyduysanız
source scriptin-adi.tcl

şeklinde eklenir. burda dikkat edilmesi gereken scriptin adını olduğu gibi yazmak gerekir .büyük -küçük harf uyumuna dikkat etmelisiniz.ayrıca scriptin adında birden fazla kelimeden oluşuyorsa kelime aralarında boşluk olamaz örneğin:

sCRiptİN AdI.tcl

şeklinde olamaz ayrı yazan AdI ya birleştirilmeli ya araya nokta yada tire konmalı sadece .conf gösterirken değil scriptin adınıda bu şekilde değişmelisiniz.yani confta eklenenle olan script adları görünümleri uyumlu aynı olmalı:

sCRiptİN-AdI.tcl ise bunu botun .confunda source scripts/scriptin-adi.tcl

şeklinde gösteremezsiniz olduğu gibi eklenmeli

source scripts/sCRiptİN-AdI.tcl

bu örnek için doğru şekildir.

sadece bu değişikliği yapmak da yeterli değildir. botun bu değişikliği görmesi için bota ya .rehash ya .restart işlemi uygulamak gerekir

kanal üstünden sahip-owner yetkisindeki kişi /msg bot-nick rehash şifre

komutuyla yada telnet/dcc bağlantısıyla .rehash yada .restart komutu uygulayabilir. bazı scriptlerde .rehash yeterli gelirken bazı scriptlerin işlemeye başlaması için .restart gerekebiliyor.

eklediğiniz scriptin de kendine göre işlemeye başlaması için yazılışından kaynaklanan özellikleri nedeniyle bazı ayarların yapılması gerekir..

bazı scriptlerin çalışması için telnet/dcc üzerinden aktif hale getirilmesi gerekir.

bunun için
.chaninfo #kanaliniz

komutuyla botun bulunduğu kanal üzerindeki ayarları göreceksiniz. bu komuttan sonra alt bölümde botun içindeki scriptlerden kaynaklanan ayarlar yer alır.örnek

bota Google tcl scripti attık diyelim bu scripti aktif etmek için scripti botun içine sftp ile upload ettik confu açtık

source scripts/Google.tcl
die ekledik .rehash yada .restart ettik.
bota telnet/dcc bağlandık.

.chaninfo #akanali

komutu verdik bot ayarları listeledi .listelenen ayarlarda kullanıcı tanımlı ayarlar kısmında -Google die bir satır gördük diyelim.
bu scriptin yüklendiğine ancak kanal üstünde aktif halde olmadığına işaret eder.
aktif etmek için:
.chanset #akanali +Google
komutu verdik mi bu script kanalımız üstünde işlemeye başlayacaktir. ayarları korumak için .save kanal ve kullanıcı dosyamızın yedeklemek için .backup komutu uygulanabilir.yedeklenmiş ayarları geri yüklemek için .reload uygulnabilir.

eğer hala script işlemiyorsa bu script üstünde sizin yaptığınız değişiklikler nedeniyle olabilir.yada yapmanız gereken ayarları script içinde yapmadığınızdan kaynaklanabilir.

yada yüklenen script artık işlevini yitirmiş olabilir.yani artık çalışmıyordur.bu özellikle bir siteden kaynak kodlar aracılığıyla bilgi çeken scriptlerin başına sık sık gelir.site üstünde yapılan değişiklikler nedeniyle kaynak kodu değişir ve bot için yazılmış kod artık işlemez hale gelir.

tüm bunların dışında yüklediğiniz scriptin çalışması için ya başka bir scriptin daha yüklü olması yada botun işlediği sistemde tcl.lib haricinde başka başka paketlerin var olması gerekebilir.

bu yüklü olması gereken script yada paketleri scriptin kodların başladığı üst kısmında require http yada package require json vs gibi belirtirler.bunun anlamı o scripti çalışması için bu scriptin yada paketin bulunması zorunludur.bu gereksinim yoksa yada script bu paketin-scriptin yüklü olduğu yeri-dizini göremiyorsa çalışmayacaktır.

Örnek bazı scriptler mysql database kullanabilir bunu kullanmanız için botun kurulu olduğu makinada bu paketin kurulu olması ve sistem yöneticisinin size bu pakete erişim hakkı tanıması gerekebilir...

yukardaki şekilde yüklediniz kontrolleri yaptınız hala işlemiyorsa o scripti ve botunuzu özelliklerini (versionu yüklü olduğu makinadaki tcl versionu vs ) gibi bilgilerini burda paylaşmanız gerekir (bota telnet/dcc üzerinde .status komutu bu bilgileri listeler.) ki neden çalışmadının cevabını verebilelim.bunun dışında scripti çalıştımayı denediğinizde yada botu yüklediğinizde telnet/dcc yada putty üzerinde herhangi bir hata error mesajı görünüyorsa bunuda paylaşmanız hatayı tanımlamakta yardımcı olacaktır.

saywhat 06 Haziran 2012 13:42

Cevap: EGGDROP - Tcl scriptleri bota yükleme,tanıtma..
 
konuya biraz daha katkı yapalım ve işinize yarayabilecek bilgi amaçlı bazı komutları tanıtalım:

öncelikle eggdrop botunuzun .conf dosyasına şu iki satırı ekleyip botu yeniden başlatın.

Kod:

bind dcc n tcl *dcc:tcl
bind dcc n set *dcc:set

bu iki satır bota telnet/dcc chat üzerinden .tcl ve .set komutlarını kullanabilmezi sağlayacak ki bu çok işe yarar bir şey ,aşağıdaki bazı komut örneklerini vereyim:

TCL Komutları:

Kod:

.tcl set ::tcl_library
tcl kütüphanesinin sistem üzerinde nerde kurulu olduğunu verir
Kod:

Tcl: /usr/local/lib/tcl8.5
gibi...

Kod:

.tcl package names
halihazırda botun kullanabildiği-görebildiği tcl paketlerini listeler.
Kod:

Tcl: logger http htmlparse tcl::tommath tcltest opt OAuthSingle MenzAgitats_Soundex Levenshtein msgcat eggbase64 eggdrop whatswhat Tcl sha1 platform base64 fsck
gibi...

Kod:

.tcl set ::tcl_patchLevel
sistemde kurulu tcl paketini tam sürümünü gösterecektir.
Kod:

Tcl: 8.5.9
gibi...

Kod:

.tcl set ::errorCode
hatalı kullanılmış yada tanımlanamayan yüklediğiniz scriptteki kodu gösterecektir..

Kod:

Tcl: TCL LOOKUP CHANNEL sock14
gibi...

Kod:

.tcl set ::errorInfo
koddaki hatalı görülen -botun tanımlayamadığı kod parçasının bilgisini verecektir..

Kod:

Tcl: can not find channel named "sock14"
Tcl:    while executing
Tcl: "eof $sock"

gibi...


Shell Komutları:

Kod:

.tcl exec -- date
botun kurulu olduğu sistemdeki tarih ve saat dilimi bilgisini verecek
Kod:

Tcl: Wed Jun  6 13:02:11 EST 2012
gibi


Kod:

.tcl exec -- pwd
botun kurulu olduğu dizini-yolu gösterecek..

Kod:

Tcl: /home/saywhat/bot
gibi...

Kod:

.tcl exec -- ls -m
botun kurulu olduğu dizindeki dosyaları listeler..

Kod:

Tcl: bum.txt, data, doc, eggdrop, eggdrop-1.6.21, filesys, gseen.conf, gseen.dat,
Tcl: help, ig-debug.txt, language, logs, logs2html.conf, megahal.aux, megahal.ban,
Tcl: megahal.brn, megahal.c, megahal.dic, megahal.dll, megahal.h, megahal.msg,
Tcl: megahal.swp, megahal.trn, modules, modules-1.6.21, patches, scripts,
Tcl: social.conf, stats.conf, statsmod.dat, sup, system, templates, text,
Tcl: triggerlog.txt, twitter.dat, var, webby.txt, whatswhat.dat, whatswhat.dat.bak,
Tcl: egg.conf

gibi...

Kod:

.tcl exec -- ps x
hesabınızda çalışan işlemleri listeler..

Kod:

Tcl:  PID TTY      STAT  TIME COMMAND
Tcl: 14919 ?        S      8:10 ./eggdrop egg.conf
Tcl: 15859 ?        S      0:00 sshd: saywhat@notty
Tcl: 15860 ?        Ss    0:00 /usr/lib/openssh/sftp-server
Tcl: 17348 ?        R      0:00 ps x

gibi...

Kod:

.tcl exec -- uptime
sistem zamanı uptime süresini verir makinanın açık olduğu süreyi.
Kod:

Tcl:  13:04:41 up 96 days,  8:23, 15 users,  load average: 0.00, 0.00, 0.00
gibi...

Kod:

.tcl exec -- uname -sr
sistem kernel versionu sürümünü verir.

Kod:

Tcl: Linux 2.6.32.40-grsec
gibi..

Bot Komutları:
Kod:

.tcl set ::serveraddress
botun şuan bağlı olduğu sunucu adresini verir..
Kod:

Tcl: 67.220.75.93:6667
gibi...


Kod:

.tcl set ::config
botun .conf dosyasının adını gösterir.

Kod:

Tcl: egg.conf
gibi...

Kod:

.tcl set ::botname
işleyen botun bilgisini nickini-ident-hostunu vs ..
Kod:

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


Kod:

.console
sizin ayarlanmış erişiminizdeki konsol flaglarını verir.telnet bağlantısında botun size gösterdikleri de denebilir.

Kod:

Your console is #bum: mpjkcobxsdw (msgs, public, joins, kicks/modes, cmds, misc, bots, files, server, debug, wallops).
gibi..

Kod:

.whom
konsol kullanıcı bilgilerini verir yada başka deyişle botun sizi telnet üzerindeki gördüğü. bilgiyi..,

Kod:

Nick        Bot        Host
----------  ---------  --------------------
*nrt        BoTie      [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
Total users: 1

gibi...


Kod:

.uptime
botun son çalıştırılmaya başladığından bu yana online süresi.

Kod:

Online for 3 days, 22:12  (background)
gibi..


Kod:

.tcl set ::version
eggdrop botunuzun versionu sürümü..
Kod:

Tcl: 1.6.21 1062100
gibidir...

bunun dışında elinizdeki tcl kod parçasını işlemin doğru dönüp dönmediğini .tcl komutuyla deneme şansıda vardır..

şöyleki bota .tcl kod parçası yazıp attığınızda bot tcl: 1 dönerse kod doğru çalışır 0 dönerse hatalı olduğunu gösterecek hatta hemen ardından .tcl set ::errorInfo yaptığınızda hatanın ayrıntısını yanlış olan tcl komutu ve yerine ne kullanılabileceğini dahi söyleyecektir...

işinize yarayabilir sanırım..kolay gelsin..


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

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