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/)
-   -   Web Nick Kayıt Sistemi (https://www.ircforumlari.net/tcl-scriptler/622776-web-nick-kayit-sistemi.html)

MesqeN 04 Ekim 2014 11:30

Web Nick Kayıt Sistemi
 
selamlar..


hep istemiştim dün akşamda yazmıştım baktımki bir arkadaşımız o Nacizane elerinden Mükemel bir kod yazmış ircservices icin. paylaşalım dedik. inş umuldugu gibidir.


Örnek Görünüm istenildigi gibi dizayn edile bilir.


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


kurulum üc Aşamadan oluşmaktadır.


WEB, eggdrop, ircservices.


WEB tabanlı paylaşım kısmını


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


Eggdrop tabanlı kısmı


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


services tabanlı kısmı :
ircservices*.* > modules > nickserv > main.c

Kod:

static void do_unsuspend(User *u);
altına
Kod:

static void do_registernick(User *u);
Kod:

    { "DROPNICK", do_dropnick, is_services_admin, -1,
                -1, NICK_OPER_HELP_DROPNICK },

altına
Kod:

    { "REGISTERNICK", do_registernick, is_services_admin, -1,
                -1, NICK_HELP_REGISTER },

Kod:

/*************************************************************************/

 static void do_identify(User *u) {

üstüne

Kod:

/*************************************************************************/

 static void do_registernick(User *u) {
    char *nick = strtok(NULL, " ");
    char *pass = strtok(NULL, " ");
    char *email = strtok(NULL, " ");
    NickInfo *ni = u->ni, *ni2;
    NickGroupInfo *ngi = u->ngi, *ngi2;
    int n;

    if (readonly) {
        notice_lang(s_NickServ, u, NICK_REGISTRATION_DISABLED);
    } else if (!is_services_admin(u)) {
        notice_lang(s_NickServ, u, PERMISSION_DENIED);
    } else if (!nick || !pass || (NSRequireEmail && !email) || (stricmp(pass, u->nick) == 0 && (strtok(NULL, "") || (email && (!strchr(email,'@') || !strchr(email,'.')))))) {
        send_cmd(s_NickServ, "NOTICE %s Kullanimi: \2REGISTERNICK \37nick\37 \37sifre\37 \37email\37\2", u->nick);
    } else if (strlen(nick) > protocol_nickmax) {
        notice_lang(s_NickServ, u, NICK_TOO_LONG, protocol_nickmax);
    } else if (!valid_nick(nick)) {
        notice_lang(s_NickServ, u, NICK_INVALID, nick);
    } else if (stricmp(pass, u->nick) == 0 || (StrictPasswords && strlen(pass) < 5)) {
        notice_lang(s_NickServ, u, MORE_OBSCURE_PASSWORD);
    } else if (email && !valid_email(email)) {
        send_cmd(s_NickServ, "NOTICE %s Lütfen gecerli bir email adresi giriniz.", u->nick);
    } else if (!reglink_check(u, nick, NULL, NULL)) {
        notice_lang(s_NickServ, u, NICK_CANNOT_BE_REGISTERED, nick);
    } else if (!ni || !ngi || ngi == NICKGROUPINFO_INVALID) {
        notice_lang(s_NickServ, u, NICK_NOT_REGISTERED);
    } else if (!user_identified(u)) {
        notice_lang(s_NickServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ);
    } else if (irc_stricmp(u->nick, nick) == 0) {
        send_cmd(s_NickServ, "NOTICE %s Kullandığınız nicki kayıt edemezsiniz.", u->nick);
    } else if ((ni2 = get_nickinfo(nick)) != NULL) {
        if (ni2->status & NS_VERBOTEN)
            notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, nick);
        else
            notice_lang(s_NickServ, u, NICK_X_ALREADY_REGISTERED, nick);
        put_nickinfo(ni2);
    } else if (get_user(nick)) {
        notice_lang(s_NickServ, u, NICK_LINK_IN_USE, nick);
    } else {
        Password passbuf;
        init_password(&passbuf);
        if (encrypt_password(pass, strlen(pass), &passbuf) != 0) {
            clear_password(&passbuf);
            memset(pass, 0, strlen(pass));
            module_log("Failed to encrypt password for %s (register)", u->nick);
            notice_lang(s_NickServ, u, NICK_REGISTRATION_FAILED);
            return;
        }
        ni2 = makenick(nick, &ngi2);
        if (!ni) {
            clear_password(&passbuf);
            module_log("makenick(%s) failed", u->nick);
            notice_lang(s_NickServ, u, NICK_REGISTRATION_FAILED);
            return;
        }
        copy_password(&ngi2->pass, &passbuf);
        clear_password(&passbuf);
        if (ni->last_usermask)
            ni2->last_usermask = sstrdup(ni->last_usermask);
        if (ni->last_realmask)
            ni2->last_realmask = sstrdup(ni->last_realmask);
        if (ni->last_realname)
            ni2->last_realname = sstrdup(ni->last_realname);
        if (ni->last_quit)
            ni2->last_quit = sstrdup(ni->last_quit);
        ni2->time_registered = ni2->last_seen = time(NULL);
        if (email)
            ngi2->email = sstrdup(email);
        ngi2->flags = NSDefFlags;
        ngi2->memos.memomax = MEMOMAX_DEFAULT;
        ngi2->channelmax = CHANMAX_DEFAULT;
        ngi2->language = LANG_DEFAULT;
        ngi2->timezone = TIMEZONE_DEFAULT;
        put_nickinfo(ni2);
        notice_lang(s_NickServ, u, NICK_REGISTERED, nick);
        if (readonly)
            notice_lang(s_NickServ, u, READ_ONLY_MODE);
    }
 }


TCL : yardımında Emegi gecen : CLubber

Services emegi gecen Arkadaşımız xwerswoodx Sonsuz teşekkürler

not yıldırım hızı ile bukadar oluyor. geliştirmeye devam etme sözü ile hayırlı olsun.


ve kodları codeler icinde paylaşamıyorum. Explorerler yada makina ile ilgili bir problemden dolayı malum butonları kulanamıyorum.

Toprak__ 04 Ekim 2014 11:38

Cevap: Web Nick Kayıt Sistemi
 
Hata verdi;
Kod:

Parse error: syntax error, unexpected T_STRING in C:\inetpub\vhosts\klbk.gen.tr\httpdocs\xline\deneme\gonder.php on line 16

uFuK 04 Ekim 2014 12:26

Cevap: Web Nick Kayıt Sistemi
 
Alıntı:

Toprak Nickli Üyeden Alıntı (Mesaj 1041505523)
Hata verdi;
Kod:

Parse error: syntax error, unexpected T_STRING in C:\inetpub\vhosts\klbk.gen.tr\httpdocs\xline\deneme\gonder.php on line 16

$dosyaya_baglanti = fopen($dosya_adi,"w");
if (!fwrite($dosyaya_baglanti,$yazilacak_deger)){
echo "Dosyaya yazilamiyor!";
exit;
}
echo "isleminiz Basarili bir şekilde IRCd Serverine Gönderilmiştir..<BR>";

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] dosyasi olmadiği için hata veriyor. bu 1'nci hatan.

proc basla {{text ""}} {
global zaman_araligi
set connect [::http::geturl [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
set files [::http::data $connect]
set list [split [subst -nocommands $files] "w"]
foreach i $list {
putquick "nıckserv register $i"
::http::cleanup $files
}
timer $zaman_araligi basla
}

Eggdrop bot deneme/kayit.txt'e gidiyor register.ini'ye gitmeliydi bu 2'nci hatan

putquick "nıckserv register $i" Nicke Geçmeden Nick Kayit Etmeye Calisiyorsun Bu 3'ncü Hatan.

Web sayfasindan kayit ederken post ettiğin veriler içinde nick var Eggdrop'dan direkt post edilen ve register.ini'ye kaydolan nickleri kayit etmeye calisiyorsun orada nick verisinide $i değişkenine atamiş oluyorsun ircserviceste nick /ns register nick şifre email diye kaydedilmez.
Bu 4'ncü hatan.

Eğer auth sistemi varsa kişinin nickini kayit edersin 24 saat sonra düşer, gerekli önlem almamişsin bu 1'nci eksikliğin.

Eğer bu kayit sayfasina giden kullanıcı o an nick üzerindeyse Eggdrop bot bu nick kullanılıyor hatasi alir nicke geçemez bu 2'nci eksikliğin

Eğer E-Mail üzerine auth code girilmemişse, veyahut 5'den fazla nick kaydedilmişse hata alirsin ve kullaniciya hiç geri bildirim yapmamişsin bu 3'ncü eksiğin

4-5-6-7-8-9'ncu eksiklerinde var saymıyorum talep edersen geliştirmen açisindan sana o eksiklerin neler oldugunu buradan yazicam bu bir tepki mesajı değildir. Sadece "Çocuk oyuncaği" dediğin şeyin aslinda çocuk oyuncaği olmadiğini sana göstertmek maksatlı bir mesajdır.

Hani hepsinde ayni ufak tefek hatalar diyordunya işte eggdrop tarafina oyle 2 satir kod yazarsan bu tip hatalarin onlarcasiyla karsilasirsin. Sanada söylediğim gibi bu iş en aşaği 100 satir kodla yapilir.(yada byte bakimindan eşdeğer daha az satirla) Hele ki Eggdropta bu sayi daha fazla olacaktir. Çünkü Eggdrop mS gibi geniş fonksiyonlara sahip bir geliştirme araci değil.

Kolay gelsin kodlar için teşekkürler.

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 12:26 -->-> Daha önceki mesaj 12:13 --

Ha unutmadan ekleyim;

set zaman_araligi "4"
if {![string match "*basla*" [timers]]} {
timer $zaman_araligi basla
}
proc basla {{text ""}} {
global zaman_araligi
set connect [::http::geturl [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
set files [::http::data $connect]
set list [split [subst -nocommands $files] "w"]
foreach i $list {
putquick "nıckserv register $i"
::http::cleanup $files
}
timer $zaman_araligi basla
}

Bu iskelet üzerine bu sistemi geliştirmen mümkün değil. 4 saniyede bir komutu calistirip register.ini'de nickleri kaydetmeye calisiyorsun olurda 2-3 nick eklenirse oraya 4 saniye içinde sen 2 nicki ircserviceste arka arkaya kaydedemezsin. While oluşturmuşsun orada (Eggdropttaki adi neyse) o while'a ya süre siniri koyman lazim yada kullaniciya geri dönüş yapman lazim (X dakika sonra tekrar deneyin diye)

Bu iskelette sen hiçbir şekilde kullanıcına geri dönemezsin. Çünkü işlemleri tamamen register.ini ye endeskli yapiyorsun ortada iletişim halinde bir veri kanalın yok.

Kullanici nicki kayit edip etmediğini bile anlayamaz (Ezbere mesaj atarsin kayit ettim diye)

Peki ya nick zaten kayitliysa ne olacak ? Sonra #Help kanalında nickimi çalmışlar diyen userlerle uğraşir durursun.

MesqeN 04 Ekim 2014 12:26

Cevap: Web Nick Kayıt Sistemi
 
Alıntı:

uFuK Nickli Üyeden Alıntı (Mesaj 1041505557)
$dosyaya_baglanti = fopen($dosya_adi,"w");
if (!fwrite($dosyaya_baglanti,$yazilacak_deger)){
echo "Dosyaya yazilamiyor!";
exit;
}
echo "isleminiz Basarili bir şekilde IRCd Serverine Gönderilmiştir..<BR>";

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] dosyasi olmadiği için hata veriyor. bu 1'nci hatan.

proc basla {{text ""}} {
global zaman_araligi
set connect [::http::geturl [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
set files [::http::data $connect]
set list [split [subst -nocommands $files] "w"]
foreach i $list {
putquick "nıckserv register $i"
::http::cleanup $files
}
timer $zaman_araligi basla
}

Eggdrop bot deneme/kayit.txt'e gidiyor register.ini'ye gitmeliydi bu 2'nci hatan

putquick "nıckserv register $i" Nicke Geçmeden Nick Kayit Etmeye Calisiyorsun Bu 3'ncü Hatan.

Web sayfasindan kayit ederken post ettiğin veriler içinde nick var Eggdrop'dan direkt post edilen ve register.ini'ye kaydolan nickleri kayit etmeye calisiyorsun orada nick verisinide $i değişkenine atamiş oluyorsun ircserviceste nick /ns register nick şifre email diye kaydedilmez.
Bu 4'ncü hatan.

Eğer auth sistemi varsa kişinin nickini kayit edersin 24 saat sonra düşer, gerekli önlem almamişsin bu 1'nci eksikliğin.

Eğer bu kayit sayfasina giden kullanıcı o an nick üzerindeyse Eggdrop bot bu nick kullanılıyor hatasi alir nicke geçemez bu 2'nci eksikliğin

Eğer E-Mail üzerine auth code girilmemişse, veyahut 5'den fazla nick kaydedilmişse hata alirsin ve kullaniciya hiç geri bildirim yapmamişsin bu 3'ncü eksiğin

4-5-6-7-8-9'ncu eksiklerinde var saymıyorum talep edersen geliştirmen açisindan sana o eksiklerin neler oldugunu buradan yazicam bu bir tepki mesajı değildir. Sadece "Çocuk oyuncaği" dediğin şeyin aslinda çocuk oyuncaği olmadiğini sana göstertmek maksatlı bir mesajdır.

Hani hepsinde ayni ufak tefek hatalar diyordunya işte eggdrop tarafina oyle 2 satir kod yazarsan bu tip hatalarin onlarcasiyla karsilasirsin. Sanada söylediğim gibi bu iş en aşaği 100 satir kodla yapilir.(yada byte bakimindan eşdeğer daha az satirla) Hele ki Eggdropta bu sayi daha fazla olacaktir. Çünkü Eggdrop mS gibi geniş fonksiyonlara sahip bir geliştirme araci değil.

Kolay gelsin kodlar için teşekkürler.




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


tcl de sorun yok sadece uzantı kısmını gözden kacırmışım gerekli düzenleme ve kuruluma ayit detaylı bilgileri tekrardan paylaşıcam. dedigim gibi Yıldırım hızı bukadar olur Ama bilgili bir insanın bunlara takılması ve aktif edememeside beni düşündürdü :)



Alıntı:

Toprak Nickli Üyeden Alıntı (Mesaj 1041505523)
Hata verdi;
Kod:

Parse error: syntax error, unexpected T_STRING in C:\inetpub\vhosts\klbk.gen.tr\httpdocs\xline\deneme\gonder.php on line 16



Degerli @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] web dosyasının icerisinde bulunan register.txt cmd 777 izni verilmelidir



Gerekli düzenlemeler Yapılmıştır ve kuruluma ayit bilgileri icerisine aktardım DEMO Adresinide Yakında paylaşacagım


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


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


Adreslerinden Ulaşabilirsiniz.

uFuK 04 Ekim 2014 12:32

Cevap: Web Nick Kayıt Sistemi
 
ben .ini dosyasına gerek duymuyorum cünkü wind makina gerek duymaksızın yapıla bile bir işlem

Değerli MesqeN Win makina mIRC'i çalıştırmak için lazim bana sen Eggdrop kullanıyorsun tabiki senin Win makinaya ihtiyacin yok.

Fakat işe öncelikle dinamik bir veri kanalı oluşturarak başlamalisin. Ben mS'de socket kullanabiliyorum, Eggdropta socket kullanip (Var ise) dinamik bir veri kanalı oluşturabilirsin dediğim gibi amacım eleştirmek değil sadece eksiklerini söylüyorumki sen veya senden başka birisi geliştirmek isterse bunlari gözden kaçirmasin diye. Dinamik bir veri kanalı olmaksizin bu işlem .txt, ini dosyalarindan kurtulamaz. Ve sürekli o dosyalari yoklaman gerekir bu zaman kaybina yol açar ve mutlakada sana bir aksaklık cıkartacaktır.

Ben onlari aktif ederim zaten problem değil düz userler nasil edecek ? :)

Toprak__ 04 Ekim 2014 12:44

Cevap: Web Nick Kayıt Sistemi
 
@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] demo verdigin siteden aldım o hatayı.

saywhat 04 Ekim 2014 13:11

Cevap: Web Nick Kayıt Sistemi
 
uFuK Tcl'de socket tabiki de var.. .
sadece yazan/kullanan yada kullanmayı bilip te* birşey yazan-paylaşan olmamış burada...

php kısmında yorum yapmayacağım, php'yle aram bir iki ufak tecrübem dışında son derece sınırlı kaldı,meil ettiğim bir dil olmadı hiç doğrusu...

yukarıda CLubber'ın katkılarıyla dediğiniz tcl hakkında yorum yapmasam olmayacak. nedenine gelince bunu CLubber yazmış olamaz .... olsa olsa CLubber'ın yazdığı kodlardan parçalar halinde satırlar devşirilip bir araya getirilmiş gibi... toplamda 9 hata saydım. ve kodu çalıştıracak ,çalışmasına neden olacak birşeyde yok ... ( bind ) yok eğer shell üstünde tclsh gibi çalıştırılmayacaksa ,eggdrop ile çalıştıracaksa ne çalıştıracak/başlatacak bu kodu ?

Kod:

  timer $zaman_araligi basla
timer yada utimer kullanımı :
Kod:

timer $zaman_araligi [list basla]
gibidir.

Kod:

proc basla {{text ""}} {
buradaki text "" amacı yok...ne için konulduğu belli değil çünkü prosedür içinde herhangi bir $text yok...

http bağlantısıyla adresteki kayit.txt'tekiler alınmak istenmiş ancak :
Kod:

set list [split [subst -nocommands $files] "w"]
"w" nedir ? eğer bir dosya operasyonu yani dosyadan veri okutma yazma işlemi olaydı "w" dosyaya yazmada kullanılır.oysa bu dosya http bağlantısında "okunmaya" çalışılıyor.

bu durumda veriyi split "w" demek, satırları "w" den itibaren kesip oku * gibi anlam taşır ancak... ve eğer o web üzerindeki dosyada alınmak istenen veri* <b>bla</b> yada $nick $text vs gibi komut yada variable'lar içermiyorsa bu satırda subst -nocommands çok anlamsız duruyor. subst "substitution" yani "yerine yerleştirme / değiştirme /değişiklik" anlamları içeriyor ki Tcl'de tamda buna göre kullanılan bir komut.

Kod:

putquick "nıckserv register $i"
bu şekilde $i değişkenindeki bilgi ,hedefe ulaşmaz bu kod satırıda çalışmaz.doğrusu:
Kod:

putquick "nıckserv register :$i"
olmalıdır.

Kod:

::http::cleanup $files
::http::cleanup tcllib http paketinde,bağlantıdan veri çekildikten sonra hafızada yer işgal etmemesi için hafızayı temizlemekte kullanılır. ancak burada yanlış şekilde kullanılmış ,doğrusu :
Kod:

  ::http::cleanup $connect
olmalıydı bu örnek için...

prosedür içinde son satırda timer durdurulmalıydı oysa burada yeniden çağrılmış. bu şekilde kullanılırsa timer hatası atacaktır.zaten prosedür dışında üstte çağrılmaya çalışlmış olan timer halen işlerken birkez daha bu kez prosedür içinde aynı prosedür için ikinci kez çağrılıyor :
Kod:

foreach _ [timers] {
          killtimer [lindex $_ 2]
}

gibi ,halen işleyen timer'ı timerID'sinden yakalayıp ( ki bu lindex $timerID 2 ' ye denk gelir.) yakalayıp işini bitirirsiniz.

ve en başta yazdığım gibi bu kodu "ne" çalıştıracak ne çalışmasına sebep* olacak.. timer yerine bind cron yada bind time :

Kod:

bind cron - "*/5" proc_adı
->
Kod:

bind time - "?5 *" [list foo bes]; proc foo {icerik m h D M Y} { putlog "${icerik} dakika oldu." }
gibi .her 5 dakikada bir ..prosedür çağrılması/tetiklenmesi/işlemesi sağlanabilir...di...

MesqeN 04 Ekim 2014 13:20

Cevap: Web Nick Kayıt Sistemi
 
Alıntı:

saywhat Nickli Üyeden Alıntı (Mesaj 1041505573)
uFuK Tcl'de socket tabiki de var.. .
sadece yazan/kullanan yada kullanmayı bilip te* birşey yazan-paylaşan olmamış burada...

php kısmında yorum yapmayacağım, php'yle aram bir iki ufak tecrübem dışında son derece sınırlı kaldı,meil ettiğim bir dil olmadı hiç doğrusu...

yukarıda CLubber'ın katkılarıyla dediğiniz tcl hakkında yorum yapmasam olmayacak. nedenine gelince bunu CLubber yazmış olamaz .... olsa olsa CLubber'ın yazdığı kodlardan parçalar halinde satırlar devşirilip bir araya getirilmiş gibi... toplamda 9 hata saydım. ve kodu çalıştıracak ,çalışmasına neden olacak birşeyde yok ... ( bind ) yok eğer shell üstünde tclsh gibi çalıştırılmayacaksa ,eggdrop ile çalıştıracaksa ne çalıştıracak/başlatacak bu kodu ?

Kod:

  timer $zaman_araligi basla
timer yada utimer kullanımı :
Kod:

timer [list $zaman_araligi basla]
gibidir.

Kod:

proc basla {{text ""}} {
buradaki text "" amacı yok...ne için konulduğu belli değil çünkü prosedür içinde herhangi bir $text yok...

http bağlantısıyla adresteki kayit.txt'tekiler alınmak istenmiş ancak :
Kod:

set list [split [subst -nocommands $files] "w"]
"w" nedir ? eğer bir dosya operasyonu yani dosyadan veri okutma yazma işlemi olaydı "w" dosyaya yazmada kullanılır.oysa bu dosya http bağlantısında "okunmaya" çalışılıyor.

bu durumda veriyi split "w" demek, satırları "w" den itibaren kesip oku * gibi anlam taşır ancak... ve eğer o web üzerindeki dosyada alınmak istenen veri* <b>bla</b> yada $nick $text vs gibi komut yada variable'lar içermiyorsa bu satırda subst -nocommands çok anlamsız duruyor. subst "substitution" yani "yerine yerleştirme / değiştirme /değişiklik" anlamları içeriyor ki Tcl'de tamda buna göre kullanılan bir komut.

Kod:

putquick "nıckserv register $i"
bu şekilde $i değişkenindeki bilgi ,hedefe ulaşmaz bu kod satırıda çalışmaz.doğrusu:
Kod:

putquick "nıckserv register :$i"
olmalıdır.

Kod:

::http::cleanup $files
::http::cleanup tcllib http paketinde,bağlantıdan veri çekildikten sonra hafızada yer işgal etmemesi için hafızayı temizlemekte kullanılır. ancak burada yanlış şekilde kullanılmış ,doğrusu :
Kod:

  ::http::cleanup $connect
olmalıydı bu örnek için...

prosedür içinde son satırda timer durdurulmalıydı oysa burada yeniden çağrılmış. bu şekilde kullanılırsa timer hatası atacaktır.zaten prosedür dışında üstte çağrılmaya çalışlmış olan timer halen işlerken birkez daha bu kez prosedür içinde aynı prosedür için ikinci kez çağrılıyor :
Kod:

foreach _ [timers] {
          killtimer [lindex $_ 2]
}

gibi ,halen işleyen timer'ı timerID'sinden yakalayıp ( ki bu lindex $timerID 2 ' ye denk gelir.) yakalayıp işini bitirirsiniz.

ve en başta yazdığım gibi bu kodu "ne" çalıştıracak ne çalışmasına sebep* olacak.. timer yerine bind cron yada bind time :

Kod:

bind cron - "*/5" proc_adı
->
Kod:

bind time - "?5 *" [list foo bes]; proc foo {icerik m h D M Y} { putlog "${icerik} dakika oldu." }
gibi .her 5 dakikada bir ..prosedür çağrılması/tetiklenmesi/işlemesi sağlanabilir...di...


üstad kod sorunsuz calışıyor. ben yazıları ezbere hızlı okudugum icin.


hatalarım yüksek oluyor. Ama mevcut tcl linklerde bunları günceliyerek insanlara sunmakta bir emektir. emek vermek güzeldir.

uFuK 04 Ekim 2014 13:20

Cevap: Web Nick Kayıt Sistemi
 
Peki Eggdrop ile bir portu dinleyebiliyormusunuz @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Çünkü Eggdrop websitesi dizinine kurulacak tabiatiyla ip adresi, web ile ayni olacak tam bir iç haberleşme söz konusu biz mS'de socklisten ile bir porta gelen veriyi (local portumuza) dinleyebiliyoruz. Sizde bu mümkünse Eggdrop temelli olarak sistem geliştirilebilir. Çünkü burada esas olan kullanıcıyı bilgilendirebilmek ve doğru olarak bilgilendirebilmek.

Başta'da bahsettiğim gibi dinamik veri kanalının oluşturulması bu sistem için sadece core'dir. Asil iş IRC tabaninda NickServ ile olan iletişiminizde saklı birçok koşulu kontrolünüz altında tutmak önemli.

saywhat 04 Ekim 2014 13:39

Cevap: Web Nick Kayıt Sistemi
 
Tcl socket çok eskilerden beri bilhassa cisco IOS yazılımlarında/yönetiminde/scriptlerinde -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] ayrıca son Mac (sanırım maverick sürümünde)portları Tcl ile yazıldığı duyurulmuştu -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]...

eggdrop Tcl olarak örnekleri fazla yok ,çoğunlukla Rus (bastel,sergio/vertigo, anastasia, perplexa ...) ve Fransız Tcl script yazarlarının (crazycat,menzegitat,dj.kenny...) çalışmaları var. fransızlar bizdeki mirc socket botlarına benzer güvenlik vs işleri yapan uzun binlerce satırlık Tcl socket kodları var.(lea service ,gestion bot vs sunucu koruma eggdrop Tcl socket scriptleri gibi...)... ruslar güvenlikten ziyade bizdeki cycle botları benzeri ancak sunucu doldurmak için değilde relay (yansıtma) için yazdıkları socket scriptleri var.

ancak Tcl - Tcl/tk 'da socket kullanımı çok daha yaygın -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] - [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] shell / sunucu scriptlerinde tclsh olarak çokça kullanılabiliyor. [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] - [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

port taramak belli bir ip/host : açık port üzerinden veri alışverişi dcc bağlantısında olduğu gibi mümkün. (örnek yazılmış ssh scriptleri vardır. dosya alış verişi yaptıran xdcc file server scriptleri vs vardır. ) ancak :

pure/safe Tcl'deki bazı/kimi komutlar eggdrop tcl için kullanımı uygun değil "sakıncalı" after ,vwait gibi... botun kasmasına asılı kalıp diğer yapması gereken işleri askıya almasına neden oluyor.bir süre sonra bot ping time out oluyor. ..


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

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