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/)
-   Eggdrop, NeoStats, BNC (https://www.ircforumlari.net/eggdrop-neostats-bnc/)
-   -   Radyo dinleyen nick tcl ile ilgili. (https://www.ircforumlari.net/eggdrop-neostats-bnc/615032-radyo-dinleyen-nick-tcl-ile-ilgili.html)

Kombine 18 Eylül 2014 22:45

Radyo dinleyen nick tcl ile ilgili.
 
Merhaba arkadaşlar , elimde TechnicaL arkadaşımızın yazmış olduğu bir tcl var çok sık sürede kanala yansıttığı için bunu !dinleyici komutu yazdığımda yansıtmasını istiyorum belirttiğim kanala.Rica etsem ilgi alanı olan arkadaşlarımız yardımcı olabilir mi?
Kod:

# Radyo dinleyici eklentisi # site:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Alinti: SaW # Duzenleyen: aCoustiC  #radyo kanali set sc(kanal) "#radyo" #radyo portu set sc(port) "7979" #radyo ip set sc(ip) "174.36.194.119" #radyo sifre set sc(sifre) "adminsifremiz"  #Ayar kisimlari bitti, gerisini ellemenize gerek yoktur.  bind raw - 315 who_son bind time - "* * * * *" sc:dinleyici proc sc:dinleyici {min hour day month year} {        global nicks SayIp        http::config -useragent "Mozilla 5.0"        set baglan [http::geturl http://$::sc(ip):$::sc(port)/admin.cgi?pass=$::sc(sifre)&mode=viewxml&page=0 -timeout 10000]        set httpraw [http::data $baglan]        set nicks ""        set ips ""        set SayIp "0"        http::cleanup $baglan          if { [regexp "<LISTENERS>(.*?)</LISTENERS>" $httpraw data veri] } {                set listeraw $veri                bind raw - 352 raw_oku                regsub -all "</LISTENER>" $listeraw "</LISTENER>\n" listeraw                foreach strListe $listeraw {                        if { [regexp "<HOSTNAME>(.*?)</HOSTNAME>" $strListe data ipVeri] } {                                  if {[regexp $ipVeri $ips] == "0"} {                                          lappend ips $ipVeri                                        incr SayIp                                                                          }                        }                }        }        foreach x $ips {                  putserv "who +i $x"        } } proc raw_oku {from keyword arg} {        global nicks        set nick [lindex $arg 5]        if {[regexp {$nick} $nicks] == "0"} {                                  lappend nicks $nick          } } proc who_son {from keyword arg} {        global nicks SayIp        set SayIp [expr $SayIp - 1]        ;#putlog $SayIp        if {$SayIp == "0"} {                foreach xy [chanlist $::sc(kanal)] {                        if {[regexp $xy $nicks] == "1"} {                                if {[isvoice $xy $::sc(kanal)] == "0"} {                                        putserv "sajoin $xy #radyo"                                        putserv "mmmode $::sc(kanal) +v $xy"                                }                        }                        if {[regexp $xy $nicks] == "0"} {                                if {[isvoice $xy $::sc(kanal)] == "1"} {                                        putserv "mmmode $::sc(kanal) -v $xy"                                }                        }                }                putserv "os raw :operserv PRIVMSG $::sc(kanal) :\02 0,4.::. Radyomuzu Dinleyenler .::.\02 0,1 $nicks"                unbind raw - 352 raw_oku        } }


saywhat 18 Eylül 2014 23:31

Cevap: Radyo dinleyen nick tcl ile ilgili.
 
Kod:

bind time - "* * * * *" sc:dinleyici
sc:dinleyici prosedürünü dakikada bir çalıştırır/çağırır...

Kod:

bind time - "*2 * * * *" sc:dinleyici
iki dakikada bir

Kod:

bind time - "?5 *" sc:dinleyici
beş dakikada bir

Kod:

bind time - "?0 *" sc:dinleyici
10 dakikada bir çağıracak/çalıştıracaktır.....

yok bu aralıklar dışında dilediğim bir süre aralığında çalışsın,ben seçeyim deniyorsa (dakika cinsinden)

prosedürler dışına bir süre-aralığı ayarı satırı girin.

set sure "25"

ilgili prosedür (bu örnekte sc:dinleyici) içinde hemen proc sc:dinleyici ......
satırının bir altına , set sure "xx" ayarında istenen süre aralığını kontrol edecek bir satırı girin :

Kod:

if ([scan $min %d] + ([scan $hour %d]*60)) % $::sure eq 0} {
(tabi bu koşul satırı sonundaki açık " { " bracket'a karşılık olarak eklendiği prosedür sonunada fazladan bir kapalı " } " bracket eklemeyi de unutmayın*...)

böylelikle set sure ayarından ayarlanabilecek dakika aralığında, şu anki bind satırına hiç dokunmadan, istenen iş yaptırılabilir.


yok oto süre aralığında değil, komutla olsun deniyorsa:

Kod:

bind time - "* * * * *" sc:dinleyici
satırını;

Kod:

bind pub - "!dinleyici" sc:dinleyici
ve ,

Kod:

proc sc:dinleyici {min hour day month year} {
satırınıda;

Kod:

proc sc:dinleyici {nick uhost hand chan text} {
olarak değişmeniz kafi gelir....

Kombine 18 Eylül 2014 23:46

Cevap: Radyo dinleyen nick tcl ile ilgili.
 
Saywhat herzamanki gibi harikasın , istediğim şekilde anlatımını yapmışsın Emeğine sağlık fakat hiçbir tepki alamadım bottan bu sefer.Rica etsem tekrar kontrol edermisin?birşey daha sormak istiyorum tcl dinleyen bot nicklerinide dahil ediyor , bunu muaf etme şansımız varmıdır peki?

saywhat 19 Eylül 2014 01:56

Cevap: Radyo dinleyen nick tcl ile ilgili.
 
üste ,prosedürlerin dışına muaf nickleri ,birer boşluk bırakarak ekleyin .

Kod:

set muaf "birbot ikibot ucbot"
gibi...

scriptin en sonundaki ;
Kod:

        putserv "os raw :operserv PRIVMSG $::sc(kanal) :\02 0,4.::. Radyomuzu Dinleyenler .::.\02 0,1 $nicks"   
        unbind raw - 352 raw_oku
        }
}

satırlarını,

Kod:

    foreach foo [split $::muaf " "] {
        regsub -all -- "$foo" $nicks "" nicks
       
        putserv "os raw :operserv PRIVMSG $::sc(kanal) :\02 0,4.::. Radyomuzu Dinleyenler .::.\02 0,1 [join [string trim $nicks] " ,"]"   
        unbind raw - 352 raw_oku
        }
    }
}

olarak değişip deneyiniz...

yaptığınız değişikliklerden sonraki "tepki vermediğini" söylediğiniz haliyle kodu gösterirseniz,sorunu söyleyebilirim.

yukarıda birden fazla editleme yolu/seçimi vermiştim siz hangi yolu ve nasıl denediğinizi görmem lazım ki sorun varsa görebilirim..

Kombine 19 Eylül 2014 04:47

Cevap: Radyo dinleyen nick tcl ile ilgili.
 
> "proc who_son {from keyword arg} {
> global nicks SayIp
> set SayIp [expr $SayIp - 1]
> ;#putlog $SayIp
> if {$SayIp == "0"} {
> foreach xy [chanlist $::sc..."
> (file "scripts/ek.tcl" line 57)
> invoked from within
> "source scripts/ek.tcl"
> (file "radyo.conf" line 65)

foreach foo [split $::muaf " "] { regsub -all -- "$foo" $nicks "" nicks
bu kodu eklediğim zaman yukarda belirttiğim hatayı alıyorum , kodu eklemeyince sorun ortadan kalkıyor @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] , yardımların için şimdiden teşekkürler.

saywhat 19 Eylül 2014 05:16

Cevap: Radyo dinleyen nick tcl ile ilgili.
 
yukarıda tarif ettiğim değişikliklerin yapılmış haliyle buradan alabilirsiniz -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] (kanal komutuyla çalışmasını istediğinizi kabul ederek ...)

bu paste sitesi özel olarak Tcl yazımı/syntax'ını kontrol etmek için kullanılan bir paste adresidir. negalfar Tcl yazım kontrolü yapan bir yazılımı kullanır. script/kodda herhangi bir Tcl hatası olduğunda ,pastenin üstünde hatayı ve yerini işaret eder.

Görüldüğü üzere şu haliyle hiçbir Tcl yazım hatası bulunmamaktadır...
not : eggdrop Tcl == (pure/safe) Tcl değildir !! ... eggdrop'un kendine has tanımlanmış Tcl komutlarıda vardır.Tcl açısından yazım hatası olmasa dahi eggdrop'ta çalışır* demek de doğru değildir.

yukarıdaki gösterdiğiniz hata çıktısı scriptin 57.satırına ,yani edit edilecek olan satırlardan farklı bir yere ve farklı bir prosedüre işaret ediyor ki, bu durum bana Tcl scripti açmak- editlemekte kullandığınız txt editörünün Tcl desteğinin olmadığını düşündürüyor... (umarım windows notepad kullanmıyorsunuzdur bu iş için..)

Kombine 19 Eylül 2014 06:17

Cevap: Radyo dinleyen nick tcl ile ilgili.
 
Teşekkür ederim sevgili @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] , düzenlemiş olduğunuz kodları kullandım ve yüklemede aynı hatayı vermedi,hayır notepad kullanmıyorum fakat şimdide !dinleyici komutunu uyguladığımda her dakikada bir belirlediğim kanala bildirim yapmaya başladı (!dinleyici komutunu uygulamadan herşey yolunda ) ekstradan bot nickleri hala muaf şekilde değil bot nicklerinin arasına ( , ) koymadım.

saywhat 19 Eylül 2014 07:11

Cevap: Radyo dinleyen nick tcl ile ilgili.
 
bota telnet/dcc üzerinden bağlanıp ->
Kod:

.binds time
komutu uygulayın.

bu komut botunuzun hafızasında tuttuğu/halen işlemde olan "bind time" ile çağrılan prosedürlerin listesini verir. ..

Kod:

binds time
Command bindings:
  TYPE FLAGS    COMMAND              HITS BINDING (TCL)
  time -|-      00 00 20 * *            0 logger:time-save
  time -|-      00 *                  133 sayac:pub
  time -|-      01 00 * * *            1 MDS::backup_db
  time -|-      ?0 * * * *            794 ::pixseen::RemoveFlood

gibi olacak çıktısı...

oradan (BINDING başlığı altında, alt alta prosedür isimleri listelenir) "sc:dinleyici" prosedürünüde görüyorsanız ki göreceksiniz. eski kullandığınız bind time kullanan kod halen botunuzun hafızasında saklı. kodun yeni hali .rehash ile yüklenmiş olsada ,eski halini hafızasından silmek için yeterli gelmemiş. hafızanın temizlenmesi için .restart edilmeli....

Kombine 19 Eylül 2014 07:17

Cevap: Radyo dinleyen nick tcl ile ilgili.
 
Teşekkürler ilginiz için @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] restart ile deniyeceğim.birde muaf nickler hala aktif değil , nickler arasına , koymadım bu yüzden olmuş olabilir mi?

Not : Setowner nickiyle Hello yazmadığım için bağlantı sağlayamıyorum şuan tekrar setowner nickiyle hello yazmam için ne yapmam gerekli?mIRC 736 ve diğer Scriptlerde denediğimde aynı hatayı alıyorum malasef.

Acknowledging chat request...
-
Unable to connect
-
DCC session closed

Chat Isteği Kabul Ediliyor...
-
Bağlanılamıyor!
-
DCC Oturumu Kapatıldı

saywhat 19 Eylül 2014 09:29

Cevap: Radyo dinleyen nick tcl ile ilgili.
 
başka biriyle DCC chat deneyin o denemede de aynı durum oluşuyorsa , PC'nizde olabilecek anti-virüs yada firewall yazılımları, artı NAT ardından bağlanıyorsanız ,DCC / handshake için kullanılan portlar bloke olduğundan dolayı olabilir.

DCC olmadıysa "telnet" seçeneği var. botun .conf dosyasında listen xxxx all satırında xxxx yerine belirtilmiş port aralığını ve set my-ip yada set hostname ayarlarındaki IP yada host kullanılarak ,örnek windows telnet penceresinde o IP/host portu şeklinde bağlanabilirsiniz.
buradaki sözü geçen IP/host botun üzerinde işlediği shell'in IP yada hostu olacaktır. birden fazla IP/hostu var ise o halde botun .conf'unda hangisi kullanılıyorsa set my-ip yada set hostname (1.6.x serisindeki botlar için) 1.8 botlarında set vhost4 yada IPv6 kullanılıyorsa set vhost6 şeklinde olur bu ayar... bu ayarda belirtilmiş olması gerekir...

şurada tanıtımını yaptığım aracıda bu iş için kullanabilirsiniz -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]


daha evvel tanıtmamışsanız kendinizi ilk bağlantıda "new" olarak girin login-name sorduğunda sonra sizden yeni bir login name isteyecek ki bu set owner " " ayarında belirttiğiniz rumuz olmalı... (bu önemli bir husustur. -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] )

sonra şifre belirlemenizi ve doğrulamasını ister sonra bağlanırsınız. set owner ayarına birden fazla handle / login-name eklenebilir bu illa irc nickinizle eşleşmesi gerekmez.

set owner "bir, iki, uc" gibi birden fazla handle owner olarak girilebilir. şurada ben bunları resimli olarak anlatmıştım -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

yukarıda paste linkiyle verdiğim koddaki muaf nicklerde sorun olmuşsa şu şekilde -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] de denenebilir. muaf nickleri ayıklamanın birden fazla yolu bulunabilir. sorun benim için şudur ki ,ben bu tür kodları deneyemem kendi botumda nasıl çalıştığını vs ..
denemesi size kalmış birşey...

Kombine 19 Eylül 2014 16:51

Cevap: Radyo dinleyen nick tcl ile ilgili.
 
Defero ile bağlantı sağladım , en son vermiş olduğunuz tcl kaydını yaptım fakat altta belirtmiş olduğum hatayı almaktayım ve tepki vermiyor.
[16:48] Tcl error [who_son]: can't read "SayIp": no such variable
[16:48] Tcl error [who_son]: can't read "SayIp": no such variable
[16:48] Tcl error [who_son]: can't read "SayIp": no such variable
[16:48] Tcl error [who_son]: can't read "SayIp": no such variable
[16:48] Tcl error [who_son]: can't read "SayIp": no such variable

saywhat 19 Eylül 2014 18:55

Cevap: Radyo dinleyen nick tcl ile ilgili.
 
Sanırım siz bunu , TechnicaL'in şu paylaşımından almışsınız -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Oradaki konudaki postlara şöyle bir göz gezdirince, kimi "çok güzel , sorunsuz çalıştı.." derken kimi de sizin yukarıda aldığınız hatayı aldığını yazmış....

hatta biri bu hatayı aldıktan sonra ,girdiği ayarlardaki hatasını fark edip düzelttikten sonra hatanın ortadan kalktığını ve çalıştığını belirtmiş.

kodun o konudaki paylaşılmış bu -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] halinde hiç sorun yoktur. denemez (zaten paste'nin üstünde bunlara işaret edilmiş) ki ben arka sayfada verdiğim düzenlemelerde gördüğüm bu "sorunları" giderip/düzeltip verdiydim.

bu hata nedendir ? ,sorusunun cevabı o konudaki gibi , ayarlarınızdaki bir hata,eksiklik nedeniyle olabileceği gibi, bu scriptin http Tcl ile kullanıldığı düşünülürse ,sürüm farklılıklarından da kaynaklanabileceğini düşünüyorum.... (http sürümü,Tcl yada eggdrop sürümü)

o konu benim buradaki geçmişimden daha eski bir konu,o zamanlar burada olsaydım o konuda sizin aldığınız hatayı alan arkadaşlara diyebileceğimde bu olurdu....

ama bana kalsa,yani böyle bir kodu kullanma gibi bir durumum olsaydı ki yok, kendim sıfırdan bambaşka bir şekilde yazmayı tercih ederdim ,orası da ayrı konu tabi....

Kombine 19 Eylül 2014 19:04

Cevap: Radyo dinleyen nick tcl ile ilgili.
 
Evet o konu başlığı altındaki tcli olduğu gibi kullanıyorum şuan ve sizinde eklemeleriniz üzerine çalışan güzel bir tcl ortaya çıktı.Ilk paylaşılan tcl üzerine os raw üzerinden kanala mesajı iletilmemekteydi putserv "privte #kanal şeklinde değişiklik yaptığımda sorun düzeldi.Onun dışında zamanlayıcı olarak değil !text şeklinde komut uygulatarak çalıştırdım sizin sayenizde.Şuan hiçbir problem gözükmüyor.Bota konsol üzerinden bağlandığımda sizinde bahsettiğiniz gibi .binds time yaptığımda hafızasında kaldığı için sürekli durum güncellemesi yapmaktaydı.Şuan hiçbir sorun yok , sadece bot nicklerini muaf edemiyorum.Paylaşmış olduğunuz set muaf "nick| ve set muaf "nick nick2" çalışması malasef.En kısa sürede bunlarında çözüme ulaşıcağını umuyorum.

- Emek ve yardımlarınızdan dolayı teşekkür ederim.

saywhat 19 Eylül 2014 20:24

Cevap: Radyo dinleyen nick tcl ile ilgili.
 
arkada altta son verdiğim kod'daki muaf ayıklama satırını , bir foreach loop'unda döndürmek, sanırım istediğiniz sonucu verecektir.
yani -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Kombine 19 Eylül 2014 20:44

Cevap: Radyo dinleyen nick tcl ile ilgili.
 
Şu tcl sayesinde baya birşey öğrenmiş oldum tabiki senin sayendede @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] bu son verdiğin tcl ile radyo botu ve diğer dinleyenler hariç sadece dji gösteriyor dinleyici olarak :)

saywhat 19 Eylül 2014 21:44

Cevap: Radyo dinleyen nick tcl ile ilgili.
 
pekala, daha farklı düz ve basit bir yöntemi ,string map'i deneyelim -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

muaf nickleri kod içine eklediğim açıklamalardaki gibi set nix ... satırında belirtin. daha fazlaysa
,satırdaki örneklerdeki şekilde "muaf-nick" tırnaklar içinde bir boşluk bırakın ve çift tırnak işareti ekleyin herbir muaf nick için .
örnektekilerden daha az ise ekleyecekleriniz. "muaf-nick" ile birlikte sağ yanındaki çift tırnak işaretinide silin/kaldırın.herbir tırnak içindeki muaf nicke karşılık sağ yanında çift tırnak işareti olmalıdır aksi durumda hata atar bot düşer...

Kod:

# muaf nickleri tırnaklar içine alarak yazın ve her tırnak içindeki muaf nicke karşılık yan
# tarafında çift tırnak işareti yerleştirin. yani muaf nickler arasında içi boş çift tırnak olsun...
# alt satırdaki örneklerde olduğu gibi... (muaf yazılan nicklerde büyük-küçük harf uyumu olması gerekmez)

          set nix [string map -nocase {"muaftır" "" "muaftır2" "" "muaftır" "" "muaftır" ""} $nicks]



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

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