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/)
-   -   meal.tcl (https://www.ircforumlari.net/tcl-scriptler/475658-mealtcl.html)

saywhat 21 Nisan 2012 21:09

meal.tcl
 
Selam

Açıklama:

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

kanal komutları:
!meal : kanala meal.txt'teki satırları okur.
!meal nick|kanal : kanala yada nicke meal.txt'teki satırları okur.

NOT: sadece oplar,halfop ve voice sahipleri
!meal nick|kanal komutlarından birini kullanabilir.

bu komutla sunucudaki kanala yada belirlenen nickin
özeline atacaktır.
bu komutun kötüye kullanılmasından şikayetçiyseniz
aşağıdaki kodlarda oynama yaparak bu özelliği
kapatın-değiştirin.


kodu yüklemek için : kodun işleyeceği kanalı ve satırları okuma aralık süresini (dakika cinsinden) ayarlayın.botunuzun conf'una
source scripts/meal.tcl
şeklinde kodu gösterin.
eggdrop/scripts/ dizini içine meal.txt dosyasını düzenleyip atmayı unutmayın...

(altaki linkte paylaştığım meal.zip içinde Diyanet işleri sitesinden bulup indirdiğim,düzenlediğim Kur'an Meal .txt dosyası var. Kendi meal yada Dua .txt dosyanızı oluşturup ya bu meal.txt içine ekleyebilir.yada değiştirebilirsiniz. eggdrop/scripts/ dizini içine atmayı unutmayın )

kodun işlemeye başlaması için
.rehash yada .restart etmeyi unutmayın...

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

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

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

saywhat 22 Nisan 2012 14:35

Cevap: meal.tcl
 
Pekala dün verdiğim meal.tcl'de şöyle bir sorun vardı..

bir kez !meal komutuyla okutmaya başladı mı bir daha meal.txt içindeki satırları sonuna dek okuyordu yani durdurma imkanı yoktu.

yukarda verdiğim meal.tcl kodunu aşağıdakiyle değişirseniz artık !durmeal komutuyla okutmayı durdurabileceksiniz."denendi"

meal.tcl'nin yeni hali:

Kod:

# kanal komutları:                       
# !meal  :  kanala meal.txt'teki satırları okur.
# !meal nick|kanal : kanala yada nicke meal.txt'teki satırı okur.
# !durmeal : okutmayı durdurmak için ..
# NOT:  sadece oplar,halfop ve voice sahipleri     
# !meal nick|kanal komutlarından birini kullanabilir.
# bu komutla sunucudaki kanala yada belirlenen nickin
# özeline atacaktır. 
# bu komutun kötüye kullanılmasından şikayetçiyseniz
# aşağıdaki kodlarda oynama yaparak bu özelliği
# kapatın-değiştirin.
# kodu yüklemek için :
# kodun işleyeceği kanalı ve satırları
# okuma aralık süresini (dakika cinsinden)
# ayarlayın.botunuzun conf'una
# source scripts/meal.tcl                                 
# şeklinde kodu gösterin.
# bot/scripts/ dizini içine meal.txt dosyasını
# düzenleyip atmayı unutmayın..
# kodun işlemeye başlaması için
# .rehash yada .restart etmeyi unutmayın
#
# not: ilk verdiğim kodda !meal komutundan sonra
# işlem bir daha durduralamıyordu.
# meal.txt içindekileri sonuna dek okumadan durmuyordu.
# !durmeal komutu bu kodda eklendi denendi.
# bunla istendiğinde okuma işleminin durması sağlandı.
#############################################################
 
# kodun çalışmasını istediğiniz kanal
 set mealkanal "#kanalınız"
 
# satırları okuma süresini ayarlayın(dakika)
 set mealzaman "3"
 
# kanala post atmaya bu satırdan başlıyoruz
 set mealsatir 0
 
# okumayı durdurmak için kullanıcaz.
 setudef flag durmeal
 
# ayarlar bu kadar..kod başlıyor.
 
if { [info exists mealzaman] } { timer $mealzaman "timer:meal" }
 
set mealtxt "scripts/meal.txt"
 
bind pub - !meal oku:meal
 
proc oku:meal {nick host handle chan text} {
  global mealkanal mealtxt mealsatir
 
  catch {channel set $mealkanal -durmeal}
 
  if { [isop $nick $mealkanal] || [ishalfop $nick $mealkanal] || [isvoice $nick $mealkanal] } { 
    if { [lindex $text 0] != "" } {
        set satiroku [lindex $text 0]
    } else {
        set satiroku $mealkanal
    }
      set mealdosya [open $mealtxt r]
      set mealoku [split [read $mealdosya] \n]
      close $mealdosya
 
# durdurma işlemini kontrol ediyoruz.
      if {![channel get $mealkanal durmeal]} {
          putserv "PRIVMSG $satiroku :[lindex $mealoku $mealsatir] "
          set mealsatir [expr $mealsatir + 1]
      }
  } else {
      set mealdosya [open $mealtxt r]
      set mealoku [split [read $mealdosya] \n]
      close $mealdosya
 
      if {![channel get $mealkanal durmeal]} {
          putserv "PRIVMSG $nick :[lindex $mealoku $mealsatir] "
          set mealsatir [expr $mealsatir + 1]
      }
  }
 }
 
# bu kısım durdurma işlemi için
 bind pub - !durmeal durmeal
 proc durmeal {nick host handle chan text} {
    global mealkanal mealtxt mealsatir
    if { [isop $nick $mealkanal] || [ishalfop $nick $mealkanal] || [isvoice $nick $mealkanal] } { 
        catch {channel set $mealkanal +durmeal}
    }
    putserv "PRIVMSG $chan : $mealkanal kanalında meal okuma $nick tarafından durduruldu."
 }
 
proc timer:meal {} {
  global botnick mealkanal mealzaman mealtxt mealsatir
  if { [onchan $botnick $mealkanal] && ![channel get $mealkanal durmeal] } {
    set mealdosya [open $mealtxt r]
    set mealoku [split [read $mealdosya] \n]
    close $mealdosya
    putserv "PRIVMSG $mealkanal :[lindex $mealoku $mealsatir] "
    set mealsatir [expr $mealsatir + 1]
    timer $mealzaman "timer:meal"
  }
 }
#bu kadar ... hadi geçmiş olsun :d
putlog "meal.tcl kullanıma hazır... "
 
#
 #

böyle oldu umarım işinize yarar...

aspawa 25 Nisan 2012 00:32

Cevap: meal.tcl
 
paylaşım işin teşekürler yanlız türkçe karakter hatası veriyor

saywhat 25 Nisan 2012 00:57

Cevap: meal.tcl
 
burdaki . [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] işlemi yapıp bota yeni kurulum yaparsanız vermez..yukarda resimde görebileceğiniz gibi benim botta bu işlemi yaparak kurmuştum.denemelerde o nedenle yazı karakterlerinde bir bozulma olmuyor.

saywhat 25 Nisan 2012 00:57

Cevap: meal.tcl
 
Türkçesi vardı şurda.. [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

saywhat 25 Nisan 2012 01:30

Cevap: meal.tcl
 
yukardaki işlemden evvel bu scriptle birlikte kullanmayı deneyin bu scripti ayrıca scripts'lerin en üstüne ilk sıraya ekleyinz..source scripts/fix.tcl
diye belirterek .conf ekleyin bu script işe yaraması için tüm modüller yüklendikten sonra ilk yüklenecek script olmalı..tüm modüllerin yüklü olması ve bunun ilk yüklenecek script olması önemli...bu script için en az tcl 8.5 yüklü olmalı botun kurulu olduğu makinada..bu script botun bellek kullanımını biraz arttırabilir*...

yukardaki patch işleminden evvel bunu bir deneyin bu işe yaramaz ise ihtiyacı karşılamıyor ise yukardaki işilemi uygulayabilirsiniz.seçim sizindir..

Kod:

######
# Copyright Johannes Kuhn <#John @ quakenet>
# This fixes the utf-8 issue on an eggdrop without patch.
# Feel free to distribute and or use.
# No warranty.
#
 
# Background:
#
# The problem is that eggdrop sometimes treats things as utf-8 strings
# And sometimes as simple byte array.
# Almost each string is passed to the tcl interp
# Witch calls an eggdrop command and this calls again the eggdrop interp.
# When eggdrop passes a string to the interp, it calls Tcl_Eval.
# Tcl_Eval trats the input string as utf-8
# But when a eggdrop command is called, it only uses the lower 8 bit
# This leads to data loss.
#
#
# This script converts all data that should be passed to an eggdrop command
# to utf-8, so only the lowest 8 bit are used. When Tcl_Eval is called again
# it can convert the data back to utf.
 
 
package require Tcl 8.5
 
encoding system utf-8
# Ok, here is a problem:
# We need all eggdrop commands.
# The good thing is that all the eggdrop commands are in the global namespace.
# The difficulty is to disingush between eggdrop commands
# And Tcl commands.
# To find out if it is a tcl command I just create an other interp, look at the commands there
# and skip them
# To make sure that this works, source this script as first script.
# Otherwise there might be extra commands in the global namespace that we don't know.
proc initUtf8 {} {
  rename initUtf8 {}
  set i [interp create]
  set tcmds [interp eval $i {info commands}]
  interp delete $i
  set procs [info procs]
  foreach cmd [info commands] {
      if {[string index $cmd 0] eq "*" ||
        ($cmd ni $tcmds && $cmd ni $procs)
      } {
        # Eggdrop command.
        rename $cmd ${cmd}_orig
        interp alias {} $cmd {} fixutf8 ${cmd}_orig
      }
  }
}
initUtf8
proc fixutf8 args {
  set cmd {}
  foreach arg $args {
      lappend cmd [encoding convertto utf-8 $arg]
  }
  catch {{*}$cmd} res opt
  dict incr opt -level
  return -opt $opt $res
}

kod Johannes13'e ait..[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 'den alıntıdır..

aspawa 26 Nisan 2012 13:16

Cevap: meal.tcl
 
Alıntı:

saywhat Nickli Üyeden Alıntı (Mesaj 1041100914)
Türkçesi vardı şurda.. [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]


burdaki işlemi yaparak ş ı harflerini düzelttim ama gene hata veriyor
fix.tc için tcl 8.5 lazım oda bende yok denedim çalışmadı

[12:41] « +Meal » fatiha 1 Kur’an’ın içerdiÄŸi esaslar öz olarak Fâtiha’da vardır. Zira övgü ve yüceltilmeye

toXic 26 Nisan 2012 13:24

Cevap: meal.tcl
 
Kullandiğin mIRC'i değiştirdin mi? Türkçe karakter sorunu olabilir.

CLubber 26 Nisan 2012 14:00

Cevap: meal.tcl
 
TCL'nizin en son satırına;

PHP- Kodu:


proc characters 
{description} {
    
regsub -all "Ü" $description "Ü" description
    regsub 
-all "ÅŸ" $description "Ş" description
    regsub 
-all "ÄŸ" $description "G" description
    regsub 
-all "Ç" $description "Ç" description
    regsub 
-all "İ" $description "İ" description
    regsub 
-all "Ö" $description "Ö" description
    regsub 
-all "ü" $description "ü" description
    regsub 
-all "ÅŸ" $description "ş" description
    regsub 
-all "ÄŸ" $description "g" description
    regsub 
-all "ç" $description "ç" description
    regsub 
-all "ı" $description "ı" description
    regsub 
-all "ö" $description "ö" description
    regsub 
-all "{" $description "" description
    regsub 
-all "}" $description "" description
    
return $description


Bu kodu ekledikten sonra;

PHP- Kodu:

[lindex $mealoku $mealsatir

Buradaki satırları;

PHP- Kodu:

[characters [lindex $mealoku $mealsatir]] 

Olarak düzenleyip tekrar deneyin.

aspawa 26 Nisan 2012 15:25

Cevap: meal.tcl
 
Toplam 1 Eklenti bulunuyor.
Dediklerinizi aynen yaptım ama yine hata alıtorum dosya ektedir bi bakın isterseniz


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

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