This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

quran script

Help for those learning Tcl or writing their own scripts.
Post Reply
User avatar
abah
Halfop
Posts: 75
Joined: Sun Dec 01, 2013 3:04 am
Location: Indonesia

quran script

Post by abah »

I want to get rid of the sign =% and! so initially it like this:

<me> quran 2 3 =
<bot> Group Hadith Qudsi Hadith
<bot> 1. From Abu Rurdah of his father, he said: Messenger of Allah. said: "When Allah gathers the creatures on the Day of Resurrection, Allah permits Muhammad to prostrate people

I want something like this:

<me> quran 2 3
<bot> Group Hadith Qudsi Hadith
<bot> 1. From Abu Rurdah of his father, he said: Messenger of Allah. said: "When Allah gathers the creatures on the Day of Resurrection, Allah permits Muhammad to prostrate people

This tcl script

Code: Select all

# Configuration settings:

set owner "abah" 
set country "Indonesia"
set state "Makassar"
set versi "20.10"
set update "09.08.2010"

# End configuration

set qudsi(qudsi_default) hq
set qudsi(qudsi_search) qudsi_name_search
set qudsi(qudsi_list) "hq"
set qudsi(version) 20.10
set qudsi(name) "Kumpulan Hadits-Hadits Qudsi"

set qudsi(qudsi_list) [string tolower $qudsi(qudsi_list)]

foreach qudsi_tcode $qudsi(qudsi_list) {
  set qudsi_files 0
  for {set qudsi_f_no 1} {$qudsi_f_no<=4} {incr qudsi_f_no} {
    if {![file exist $qudsi(root)/$qudsi_tcode-$qudsi_f_no]} {incr qudsi_files}
  }

 if {$qudsi_files} {
    eval "$qudsi(log) \"*** WARNING: $qudsi_files file(s) missing from $qudsi(root) directory. Hence disabling $qudsi_tcode option.\""
    set qudsi(valid,$qudsi_tcode) 0
    set qudsi(alias,$qudsi_tcode) "$qudsi_tcode"
  } {
    set qudsi(valid,$qudsi_tcode) 1
    if {[file exist $qudsi(root)/$qudsi_tcode-info]} {
      set qudsi(ban1,$qudsi_tcode) [RT_read_line $qudsi(root)/$qudsi_tcode-info 1]
      set qudsi(ban2,$qudsi_tcode) [RT_read_line $qudsi(root)/$qudsi_tcode-info 2]
      set qudsi(alias,$qudsi_tcode) [RT_lappend $qudsi_tcode [string tolower [RT_read_line $qudsi(root)/$qudsi_tcode-info 3]]]
    } {
      set qudsi(ban1,$qudsi_tcode) "The qudsi"
      set qudsi(ban2,$qudsi_tcode) "The End of Translation"
      set qudsi(alias,$qudsi_tcode) "$qudsi_tcode"
    }
  }
}

unset qudsi_files qudsi_tcode qudsi_f_no

set qudsi(cnt_file) "0 35 56 53 53"
set qudsi(qudsi_name) "{} Kiamat Allah Wali-Wali Nabi Pertemuan Keturunan Tabligh Kehinaan Al-Quran Ketakutan Hamba Rahim Firman Syurga Berbaiksangka Infaq Ikhlas Tauhid Kemurahan Kecintaan Shalat Akidah Manusia Neraka Mu`min Zikir Hamba Bencana Saleh Adam Penciptaan Penyimpanan Puasa Syurga-Neraka Kemurkaan Shalat Anugerah Syafa`at Kafir Makanan Bertanam Kekhawatiran Tercinta Al-Kautsar Telaga Penghisaban Syafa`at Tabligh"
set qudsi(qudsi_max) "0 1 6 1 2 7 1 2 9 1 1 1 3 3 1 5 4 3 11 7 4 3 12 2 1 2 2 4 6 6 3 1 1 11 5 6 7 1 8 3 2 1 9 1 1 4 7 11 5"
set qudsi(sajdah) ""
set qudsi(ruku_list) ""
set qudsi(total) [total_from_list $qudsi(qudsi_max)]
set qudsi(emph_wrds) ""
set qudsi(ban1,al) ""
set qudsi(ban2,al) ""
set qudsi(alias,ar) ""

proc qudsi_cs_irc { } {
  global qudsi
  set qudsi(c,1s) 00,10
  set qudsi(c,1e) 
  set qudsi(c,2s) 01,15
  set qudsi(c,2e) 
  set qudsi(c,hl) 08
  set qudsi(c,rs) 
  set qudsi(c,re) 
  set qudsi(c,bs) 
  set qudsi(c,be) 
  set qudsi(c,us) 
  set qudsi(c,ue) 
  set qudsi(c,Bs) 02
  set qudsi(c,Be) 
  set qudsi(c,Ls) 12
  set qudsi(c,Le) 
  set qudsi(c,Rs) 04
  set qudsi(c,Re) 
  set qudsi(c,Gs) 14
  set qudsi(c,Ge) 
  set qudsi(c,0s) 00
  set qudsi(c,0e) 
  set qudsi(limit_nomor) 7
  set qudsi(size_nomor) 600
  set qudsi(length_nomor) 380
}
	
proc qudsi_cs_yahoo { } {
  global qudsi  
  set qudsi(limit_nomor) 10
  set qudsi(size_nomor) 9999
  set qudsi(length_nomor) 400
}

proc qudsi_cs_html { } {
  global qudsi  
  set qudsi(limit_nomor) 20
  set qudsi(size_nomor) 9999
  set qudsi(length_nomor) 99999
}

proc qudsi_main {who qudsi_args} {
  global qudsi
  set qudsi_qudsi_requ ""
  set who [string tolower $who]
  
  if {[string match "html_*" $who]} { qudsi_cs_html }
	  
  if {![info exists qudsi(last,$who)]} { set qudsi(last,$who) 0 }
  if {![info exists qudsi(tran,$who)]} { set qudsi(tran,$who) $qudsi(qudsi_default) }

  foreach qudsi_arg_vrb [string tolower $qudsi_args] {lappend qudsi_arg $qudsi_arg_vrb}
  
  foreach qudsi_qudsi_check $qudsi_arg {
    foreach qudsi_tcode $qudsi(qudsi_list) {
      foreach qudsi_alias_in $qudsi(alias,$qudsi_tcode) {
        if {[string match $qudsi_alias_in $qudsi_qudsi_check]} {
          set qudsi_qudsi_requ [RT_lappend $qudsi_qudsi_requ $qudsi_tcode]
          set qudsi_arg [lreplace $qudsi_arg [lsearch $qudsi_arg $qudsi_alias_in] [lsearch $qudsi_arg $qudsi_alias_in]]
          set qudsi_qudsi_found 1
        }
      }
    }
  }

  if {![info exists qudsi_qudsi_found]} {
    set qudsi_qudsi_requ $qudsi(tran,$who)
  } 
  set qudsi_qudsi [lindex $qudsi_qudsi_requ 0]

  set qudsi_ret_val [switch -glob [lindex $qudsi_arg 0] {
    
    info {
      return [list "$qudsi(c,1s)$qudsi(name) berasal dari kata quds yang berarti menyucikan Allah. Hadis Qudsi ialah hadis yang oleh Nabi saw. disandarkan kepada Allah. Maksudnya Nabi meriwayatkannya bahwa itu adalah kalam Allah. Maka rasul menjadi perawi kalam Allah ini dari lafal Nabi sendiri. Bila seseorang meriwayatkan hadis qudsi maka dia meriwayatkannya dari Rasulullah SAW dengan disandarkan kepada Allah.$qudsi(c,1e)"]      
    }
	detail {
      lappend qudsi_reptxt "$qudsi(c,1s)Informasi mengenai $qudsi(name).$qudsi(c,1e)"
	  lappend qudsi_reptxt "$qudsi(c,2s)1. Author: Allah SWT dan Rasullulah SAW."
      lappend qudsi_reptxt "$qudsi(c,2s)2. Editing: Abah."
      lappend qudsi_reptxt "$qudsi(c,2s)3. Inspirated: Ummi dan Jundi."
      lappend qudsi_reptxt "$qudsi(c,2s)4. Sumber: $qudsi(name)."
	  lappend qudsi_reptxt "$qudsi(c,2s)5. Pengawasan: Kementrian Agama R.I sebagai perwakilan Pemerintah."
	  lappend qudsi_reptxt "$qudsi(c,2s)6. IT Team: PT. Telekomunikasi Indonesia (Persero) Tbk."
	  lappend qudsi_reptxt "$qudsi(c,1s)$qudsi(name) $qudsi(version).$qudsi(c,1e)"
      return $qudsi_reptxt
    }
    set {
      if {[info exist [lindex $qudsi_args 1]]} {
        if {[lindex $qudsi_args 2]==""} {
          return [list "$[lindex $qudsi_args 1] = [expr $[lindex $qudsi_args 1]]"]
        } {
          set qudsi_old_arg [expr $[lindex $qudsi_args 1]]
          set [lindex $qudsi_args 1] [lrange $qudsi_args 2 end]
          return [list "Setting [lindex $qudsi_args 1] from $qudsi_old_arg to [lrange $qudsi_args 2 end]"] 
        }
      } {
        return [list "Theres no variable like [lindex $qudsi_args 1]."]}
    }
    bantuan {
      set qudsi_reptxts [list "$qudsi(c,1s)$qudsi(name)$qudsi(c,1e)"]
      if {[lindex $qudsi_args 1] == "" } { set qudsi_help_topic help } { set qudsi_help_topic [lindex $qudsi_args 1] } 
      if {[file exist $qudsi(root)\qudsi_extra]} {
	set qudsi_reptxt [RT_read_topic $qudsi(root)\qudsi_extra $qudsi_help_topic*]
      } {return [list " File not found. "]}
      
      foreach qudsi_t $qudsi_reptxt {		
        lappend qudsi_reptxts "$qudsi(c,2s)[eval list $qudsi_t]$qudsi(c,2e)"		
      }
      return $qudsi_reptxts
    }
    context {
      set qudsi_scanarg [split $qudsi_arg :-.\ ]
      set qudsi_rukulook [index2serial [lindex $qudsi_scanarg 1] [lindex $qudsi_scanarg 2] $qudsi(qudsi_max)]
      set qudsi_rukufirst [lindex $qudsi(ruku_list) 0]

      foreach qudsi_ruku $qudsi(ruku_list) { 
        if { $qudsi_ruku >= $qudsi_rukulook } { 
          set qudsi_rukulast $qudsi_ruku
          break } {
          set qudsi_rukufirst $qudsi_ruku }
      }
      set qudsi_rukuout1 [serial2index [expr $qudsi_rukufirst+1] $qudsi(qudsi_max)]
      set qudsi_rukuout2 [serial2index $qudsi_rukulast $qudsi(qudsi_max)]
      set qudsi_arg "[lindex $qudsi_rukuout1 0]:[lindex $qudsi_rukuout1 1]-[lindex $qudsi_rukuout2 1] [lrange $qudsi_arg 3 end]"
      format 0
    }
    ruku {
      set qudsi_scanarg [split $qudsi_arg :-.\ ]
      set qudsi_rukulook [index2serial [lindex $qudsi_scanarg 1] [lindex $qudsi_scanarg 2] $qudsi(qudsi_max)]
      set qudsi_rukufirst [lindex $qudsi(ruku_list) 0]

      foreach qudsi_ruku $qudsi(ruku_list) { 
        if { $qudsi_ruku >= $qudsi_rukulook } { 
          set qudsi_rukulast $qudsi_ruku
          break } {
          set qudsi_rukufirst $qudsi_ruku }
      }
      set qudsi_rukuout1 [serial2index [expr $qudsi_rukufirst+1] $qudsi(qudsi_max)]
      set qudsi_rukuout2 [serial2index $qudsi_rukulast $qudsi(qudsi_max)]
      return [list "$qudsi(c,1s) Context for [lindex $qudsi_arg 1]:[lindex $qudsi_arg 2] is [lindex $qudsi_rukuout1 0]:[lindex $qudsi_rukuout1 1]-[lindex $qudsi_rukuout2 1] which is the [lsearch $qudsi(ruku_list) $qudsi_rukulast] of 561 Ruku/Bending. $qudsi(c,1e)" ]
    }
    cari {return [qudsi_search $who $qudsi_qudsi_requ [lrange $qudsi_arg 1 end]]}
	owner {return  [list "$qudsi(c,1s)$qudsi(c,Rs)Editing oleh abah dan ummi$qudsi(c,Rs)$qudsi(c,1e)"] }
	version {return [list "$qudsi(c,1s)$qudsi(c,Rs)$qudsi(name) version $qudsi(version)$qudsi(c,Rs)$qudsi(c,1e)"] }
    next  {expr [expr $qudsi(last,$who)+1>$qudsi(total)]?[format 1]:[expr $qudsi(last,$who)+1]}

    [a-z']* {
      set qudsi_vrbcnt 0
      set qudsi_sname ""

      foreach qudsi_wrdlist $qudsi_arg {
      if {[string match \[0-9\]* $qudsi_wrdlist]} {break} {set qudsi_sname "$qudsi_sname $qudsi_wrdlist";incr qudsi_vrbcnt} }
      
      set qudsi_sfile [open $qudsi(root)$qudsi(qudsi_search)]
      for {set qudsi_qudsi_num 1} {$qudsi_qudsi_num<=48} {incr qudsi_qudsi_num} {
        set qudsi_qudsi_list [string tolower [gets $qudsi_sfile]]
        if {[string match "*>$qudsi_sname >*" $qudsi_qudsi_list]} {
          set qudsi_arg "$qudsi_qudsi_num [lrange $qudsi_arg $qudsi_vrbcnt end]"
        }
      }
      close $qudsi_sfile
      format 0
    }
  default {format 0}
  }]

  if {$qudsi_ret_val} {set qudsi_arg "[serial2index $qudsi_ret_val $qudsi(qudsi_max)] [lrange $qudsi_arg 1 3]"}
  qudsi_irc $who $qudsi_qudsi_requ $qudsi_arg
}

proc qudsi_irc {who qudsi_qudsi_requ qudsi_arg} {
  global qudsi
  set qudsi_idx1 -1 ; set qudsi_idx2 0 ; set qudsi_idx3 0
  set qudsi_scanarg [split $qudsi_arg :-.\;\ ]
  scan [lrange $qudsi_scanarg 0 2] "%d %d %d" qudsi_idx1 qudsi_idx2 qudsi_idx3
  set qudsi_opt [lrange $qudsi_scanarg 2 5]
  set qudsi_max_idx2 [lindex $qudsi(qudsi_max) $qudsi_idx1]

  if {$qudsi_idx1==-1} { error " Ignoring wrong inputs $who $qudsi_arg "}

  if {![expr ($qudsi_idx1<=48) && ($qudsi_idx1>=1)]} {
    return [list "$qudsi(c,1s)$qudsi(name) hanya terdiri dari 48 Kitab 197 Nomor.$qudsi(c,1e)"]
  }

  if {![expr ($qudsi_idx2>=1) && ($qudsi_idx2<=$qudsi_max_idx2)]} {
    set qudsi_sd_text [RT_read_line $qudsi(root)/qudsi_list $qudsi_idx1]
    return [list "$qudsi(c,1s)$qudsi(name) Kitab [lindex $qudsi_sd_text 0] Nomor Urut Kitab [lindex $qudsi_sd_text 1] Jumlah Nomor [lindex $qudsi_sd_text 2] Nomor. Kitab [lindex $qudsi_sd_text 0] ini membahas mengenai [lrange $qudsi_sd_text 3 end].$qudsi(c,1e)"]
  }

  if {$qudsi_idx3>$qudsi_max_idx2} {set qudsi_idx3 $qudsi_max_idx2}
  if {$qudsi_idx3<$qudsi_idx2} {set qudsi_idx3 $qudsi_idx2}
  if {[expr $qudsi_idx3-$qudsi_idx2+1]>$qudsi(limit_nomor)} {set qudsi_idx3 [expr $qudsi_idx2+$qudsi(limit_nomor)-1]}

  set qudsi_size [expr $qudsi(length_nomor)]
  set qudsi_cond [expr [string match *\=* $qudsi_opt] || [string match *\%* $qudsi_opt]?1:0]

  set qudsi_caps [expr [string match *\!* $qudsi_opt]?1:0]
  set qudsi_idx_srl [index2serial $qudsi_idx1 $qudsi_idx2 $qudsi(qudsi_max)]
  set qudsi_file_no [lindex [serial2index $qudsi_idx_srl $qudsi(cnt_file)] 0]

 if {[llength $qudsi_qudsi_requ]>1} {
    set qudsi_line_no [lindex [serial2index $qudsi_idx_srl $qudsi(cnt_file)] 1]
    foreach qudsi_tcode $qudsi_qudsi_requ {
      if {!$qudsi(valid,$qudsi_tcode)} {continue}
      [expr $qudsi_cond?"append":"lappend"] qudsi_txt_out "$qudsi(c,rs)[string toupper $qudsi_tcode]$qudsi(c,re): [RT_read_line $qudsi(root)/$qudsi_tcode-$qudsi_file_no $qudsi_line_no][expr $qudsi_cond?\" \":\"\"]"
      set qudsi_idx2_last $qudsi_idx2
    }
    set qudsi_reptxt_bn1 "$qudsi(c,1s) $qudsi(ban1,al)Kitab: $qudsi_idx1. [lindex $qudsi(qudsi_name) $qudsi_idx1]. nomor:$qudsi_idx2 $qudsi(c,1e)" 
    set qudsi_reptxt_bn2 "$qudsi(c,1s) $qudsi(ban2,al)$qudsi(c,0s) $qudsi(c,1e)"
  } {
    set qudsi_tcode $qudsi_qudsi_requ
    if {!$qudsi(valid,$qudsi_qudsi_requ)} {return [list "This option is disabled! Files are missing."]}

    for {set qudsi_idx2_counter $qudsi_idx2} {$qudsi_idx2_counter<=$qudsi_idx3} {incr qudsi_idx2_counter} {
      set qudsi_idx2_serial [index2serial $qudsi_idx1 $qudsi_idx2_counter $qudsi(qudsi_max)]
      set qudsi_line_no [lindex [serial2index $qudsi_idx2_serial $qudsi(cnt_file)] 1]
      set qudsi_sajd_mark [lsearch $qudsi(sajdah) $qudsi_idx2_serial]
      set qudsi_ruku_mark [lsearch $qudsi(ruku_list) $qudsi_idx2_serial]
      set qudsi_marks "[expr $qudsi_ruku_mark>=1?\"®$qudsi_ruku_mark®\":\"\"][expr $qudsi_sajd_mark>=1?\"©$qudsi_sajd_mark©\":\"\"]"
      [expr $qudsi_cond?"append":"lappend"] qudsi_txt_out "$qudsi_idx2_counter.[expr $qudsi_cond?\"\":\" \"][RT_read_line $qudsi(root)/$qudsi_qudsi_requ-$qudsi_file_no $qudsi_line_no]$qudsi_marks[expr $qudsi_cond?\" \":\"\"]"
      set qudsi_idx2_last $qudsi_idx2_counter
      if {[string length $qudsi_txt_out]>$qudsi(size_nomor)} {break}
    }
      set qudsi_reptxt_bn1 "$qudsi(c,1s)$qudsi(name)$qudsi(c,1e)"
	  set qudsi_reptxt_bn2 "$qudsi(c,1s)Kitab: [lindex $qudsi(qudsi_name) $qudsi_idx1]. Nomor Urut Kitab: $qudsi_idx1.$qudsi(c,1e)"
  }

  if {$qudsi_caps} {set qudsi_txt_out [string toupper $qudsi_txt_out]}

  switch -glob $qudsi_opt {    
    default {
      lappend qudsi_reptxt $qudsi_reptxt_bn1 
      foreach qudsi_text_vrb $qudsi_txt_out {
        foreach qudsi_formated_text [RT_format $qudsi_text_vrb $qudsi_size] {
          lappend qudsi_reptxt "$qudsi(c,2s)$qudsi_formated_text$qudsi(c,2e)"
        }
      }
      lappend qudsi_reptxt $qudsi_reptxt_bn2
    }
  }

  set qudsi(last,$who) [index2serial $qudsi_idx1 $qudsi_idx2_last $qudsi(qudsi_max)]
  return [RT_emph $qudsi_reptxt $qudsi(emph_wrds) $qudsi(c,us) $qudsi(c,ue)]
}

proc qudsi_search {who qudsi_qudsi_requ qudsi_args} {
  global qudsi

  foreach qudsi_qudsi $qudsi_qudsi_requ {
    if {!$qudsi(valid,$qudsi_qudsi)} {
      append qudsi_reptxt [list "$qudsi(c,1s) [string toupper $qudsi_qudsi] is disabled! Files are missing. $qudsi(c,1e)"]
      set qudsi_qudsi_requ [lreplace $qudsi_qudsi_requ [lsearch $qudsi_qudsi_requ $qudsi_qudsi] [lsearch $qudsi_qudsi_requ $qudsi_qudsi]]
    }
  }

  set qudsi_search_start_time [format %.2f [clock clicks -milliseconds]]
  set qudsi_search_lists [split $qudsi_args &]
  set qudsi_rst_cnt 0
  set qudsi_result_serial ""
  set qudsi_search_list ""
  set qudsi_serlisttxt ""

  if {$qudsi_search_lists==""} {
    return [list "$qudsi(c,1s)Gunakan perintah: qudsi cari <kata kunci>$qudsi(c,1e)"]
  }

  foreach qudsi_sts $qudsi_search_lists {set qudsi_search_list [RT_lappend $qudsi_search_list "[string trim $qudsi_sts] "]}
  foreach qudsi_st $qudsi_search_list {append qudsi_serlisttxt "$qudsi(c,hl)$qudsi(c,us)[string trim $qudsi_st]$qudsi(c,ue) \& "}

  if {[llength $qudsi_qudsi_requ]>1} { set qudsi_banner "$qudsi(c,bs)[string toupper $qudsi_qudsi_requ]$qudsi(c,be) $qudsi(ban2,al)" } { set qudsi_banner $qudsi(ban2,$qudsi_qudsi_requ) }

  lappend qudsi_reptxt "$qudsi(c,1s)Hasil pencarian dari kata [string trimright $qudsi_serlisttxt "& "] $qudsi(c,1s) dalam $qudsi(name)"

  for {set qudsi_idx1 1} {$qudsi_idx1<=4} {incr qudsi_idx1} {
    set qudsi_result_list ""
    foreach qudsi_qudsi $qudsi_qudsi_requ {
      set qudsi_result_list "$qudsi_result_list [RT_search_line $qudsi(root)/$qudsi_qudsi-$qudsi_idx1 $qudsi_search_list]"
    }
      foreach qudsi_rst $qudsi_result_list {lappend qudsi_result_serial [index2serial $qudsi_idx1 $qudsi_rst $qudsi(cnt_file)]}
  }

  set qudsi_result_serial [lsort -integer -unique $qudsi_result_serial]
  set qudsi_rst_cnt [llength $qudsi_result_serial]
  set qudsi_search_ttime [expr ([format %.2f [clock clicks -milliseconds]]-$qudsi_search_start_time)/1000]
  set qudsi(ser,$who:rslt) $qudsi_result_serial
  set qudsi(ser,$who:tran) $qudsi_qudsi_requ
  set qudsi(ser,$who:word) $qudsi_search_list
  set qudsi(ser,$who:cnts) $qudsi_rst_cnt

  switch -glob $qudsi_rst_cnt {
    0 {	  
      lappend qudsi_reptxt "$qudsi(c,1s)Afwan yang antum cari tidak di temukan$qudsi(c,1e)"
	  lappend qudsi_reptxt "$qudsi(c,1s)Jumlah yang ditemukan: $qudsi_rst_cnt.$qudsi(c,1e)"
    }
    [1-3] {
      lappend qudsi_reptxt "[serial2result $qudsi_result_serial]."
      lappend qudsi_reptxt "$qudsi(c,1s)Jumlah yang ditemukan: $qudsi_rst_cnt.$qudsi(c,1e)"
    }
    [4-9] - [1-4]? {
      lappend qudsi_reptxt "[serial2result $qudsi_result_serial]."
      lappend qudsi_reptxt "$qudsi(c,1s)Jumlah yang ditemukan: $qudsi_rst_cnt.$qudsi(c,1e)"
    }  
    default {
      lappend qudsi_reptxt "[serial2result $qudsi_result_serial]."	  
	  lappend qudsi_reptxt "$qudsi(c,1s)Jumlah yang ditemukan: $qudsi_rst_cnt.$qudsi(c,1e)"
    }
  }
  return $qudsi_reptxt
}

proc serial2result { serial } {
  global qudsi
  set qudsi_idx1_last 0
  foreach qudsi_rst $serial {
    set qudsi_idx  [serial2index $qudsi_rst $qudsi(qudsi_max)]
    set qudsi_idx1 [lindex $qudsi_idx 0]
    set qudsi_idx2 [lindex $qudsi_idx 1]
    if {$qudsi_idx1_last == $qudsi_idx1} {
      append qudsi_result_temp ",$qudsi(c,Ls)$qudsi_idx2$qudsi(c,Le)"
    } {
      append qudsi_result_temp " $qudsi(c,Bs)$qudsi_idx1$qudsi(c,Be):$qudsi(c,Ls)$qudsi_idx2$qudsi(c,Le)"
    }
    set qudsi_idx1_last $qudsi_idx1
  }
  return $qudsi_result_temp
}

  proc qudsi_msg {nick uhost hand args} {
    global qudsi RT_Kit
    qudsi_cs_irc

    if {![info exist RT_Kit(buffer,$nick)]} { after 100 "RT_Queue_IRC $nick" }
    foreach qudsi_line [qudsi_main $nick [lindex $args 0]] {
      lappend RT_Kit(buffer,$nick) $qudsi_line 
    }
    return 1
  }

  proc qudsi_pub {nick uhost hand chan args} {
    global qudsi RT_Kit
    qudsi_cs_irc

    if {![info exist RT_Kit(buffer,$chan)]} { after 100 "RT_Queue_IRC $chan" }
    foreach qudsi_line [qudsi_main $chan [lindex $args 0]] {
      lappend RT_Kit(buffer,$chan) $qudsi_line 
    }
    return 1
  }

  bind msg - qudsi qudsi_msg; bind msg - !qudsi qudsi_msg; bind msg - .qudsi qudsi_msg
  bind pub - qudsi qudsi_pub; bind pub - !qudsi qudsi_pub; bind pub - .qudsi qudsi_pub

I think that this is what must be changed, but how do I do not know. this script

Code: Select all

  set qudsi_size [expr $qudsi(length_nomor)]
  set qudsi_cond [expr [string match *\=* $qudsi_opt] || [string match *\%* $qudsi_opt]?1:0]

  set qudsi_caps [expr [string match *\!* $qudsi_opt]?1:0]
  set qudsi_idx_srl [index2serial $qudsi_idx1 $qudsi_idx2 $qudsi(qudsi_max)]
  set qudsi_file_no [lindex [serial2index $qudsi_idx_srl $qudsi(cnt_file)] 0]
User avatar
caesar
Mint Rubber
Posts: 3778
Joined: Sun Oct 14, 2001 8:00 pm
Location: Mint Factory

Post by caesar »

The

Code: Select all

set qudsi_cond [expr [string match *\=* $qudsi_opt] || [string match *\%* $qudsi_opt]?1:0] 
Returns, or better said it's value will be equal with number 1 if text you say has an = or % in it and a 0 if it doesn't. If you want to always be 1 then simply replace that with:

Code: Select all

set qudsi_cond 1
And it doesn't matter if you text has = or % in it as the condition will always be accomplished.
Same goes with:

Code: Select all

set qudsi_caps [expr [string match *\!* $qudsi_opt]?1:0] 
where qudsi_caps value 1 if text has a ! in it. Again, if you want it to be 1 then simply replace it with:

Code: Select all

set qudsi_caps 1
Once the game is over, the king and the pawn go back in the same box.
User avatar
abah
Halfop
Posts: 75
Joined: Sun Dec 01, 2013 3:04 am
Location: Indonesia

Post by abah »

I have changed all that you gave to me but it turned out after I tried using the
quran 1 1
even his boot does not respond as initially

Code: Select all

  set qudsi_size [expr $qudsi(length_nomor)]
  set qudsi_cond 1

  set qudsi_caps 1
  set qudsi_idx_srl [index2serial $qudsi_idx1 $qudsi_idx2 $qudsi(qudsi_max)]
  set qudsi_file_no [lindex [serial2index $qudsi_idx_srl $qudsi(cnt_file)] 0]
complited code

Code: Select all

# Configuration settings:

set owner "abah" 
set country "Indonesia"
set state "Makassar"
set versi "20.10"
set update "09.08.2010"

# End configuration

set qudsi(qudsi_default) hq
set qudsi(qudsi_search) qudsi_name_search
set qudsi(qudsi_list) "hq"
set qudsi(version) 20.10
set qudsi(name) "Kumpulan Hadits-Hadits Qudsi"

set qudsi(qudsi_list) [string tolower $qudsi(qudsi_list)]

foreach qudsi_tcode $qudsi(qudsi_list) {
  set qudsi_files 0
  for {set qudsi_f_no 1} {$qudsi_f_no<=4} {incr qudsi_f_no} {
    if {![file exist $qudsi(root)/$qudsi_tcode-$qudsi_f_no]} {incr qudsi_files}
  }

 if {$qudsi_files} {
    eval "$qudsi(log) \"*** WARNING: $qudsi_files file(s) missing from $qudsi(root) directory. Hence disabling $qudsi_tcode option.\""
    set qudsi(valid,$qudsi_tcode) 0
    set qudsi(alias,$qudsi_tcode) "$qudsi_tcode"
  } {
    set qudsi(valid,$qudsi_tcode) 1
    if {[file exist $qudsi(root)/$qudsi_tcode-info]} {
      set qudsi(ban1,$qudsi_tcode) [RT_read_line $qudsi(root)/$qudsi_tcode-info 1]
      set qudsi(ban2,$qudsi_tcode) [RT_read_line $qudsi(root)/$qudsi_tcode-info 2]
      set qudsi(alias,$qudsi_tcode) [RT_lappend $qudsi_tcode [string tolower [RT_read_line $qudsi(root)/$qudsi_tcode-info 3]]]
    } {
      set qudsi(ban1,$qudsi_tcode) "The qudsi"
      set qudsi(ban2,$qudsi_tcode) "The End of Translation"
      set qudsi(alias,$qudsi_tcode) "$qudsi_tcode"
    }
  }
}

unset qudsi_files qudsi_tcode qudsi_f_no

set qudsi(cnt_file) "0 35 56 53 53"
set qudsi(qudsi_name) "{} Kiamat Allah Wali-Wali Nabi Pertemuan Keturunan Tabligh Kehinaan Al-Quran Ketakutan Hamba Rahim Firman Syurga Berbaiksangka Infaq Ikhlas Tauhid Kemurahan Kecintaan Shalat Akidah Manusia Neraka Mu`min Zikir Hamba Bencana Saleh Adam Penciptaan Penyimpanan Puasa Syurga-Neraka Kemurkaan Shalat Anugerah Syafa`at Kafir Makanan Bertanam Kekhawatiran Tercinta Al-Kautsar Telaga Penghisaban Syafa`at Tabligh"
set qudsi(qudsi_max) "0 1 6 1 2 7 1 2 9 1 1 1 3 3 1 5 4 3 11 7 4 3 12 2 1 2 2 4 6 6 3 1 1 11 5 6 7 1 8 3 2 1 9 1 1 4 7 11 5"
set qudsi(sajdah) ""
set qudsi(ruku_list) ""
set qudsi(total) [total_from_list $qudsi(qudsi_max)]
set qudsi(emph_wrds) ""
set qudsi(ban1,al) ""
set qudsi(ban2,al) ""
set qudsi(alias,ar) ""

proc qudsi_cs_irc { } {
  global qudsi
  set qudsi(c,1s) 00,10
  set qudsi(c,1e) 
  set qudsi(c,2s) 01,15
  set qudsi(c,2e) 
  set qudsi(c,hl) 08
  set qudsi(c,rs) 
  set qudsi(c,re) 
  set qudsi(c,bs) 
  set qudsi(c,be) 
  set qudsi(c,us) 
  set qudsi(c,ue) 
  set qudsi(c,Bs) 02
  set qudsi(c,Be) 
  set qudsi(c,Ls) 12
  set qudsi(c,Le) 
  set qudsi(c,Rs) 04
  set qudsi(c,Re) 
  set qudsi(c,Gs) 14
  set qudsi(c,Ge) 
  set qudsi(c,0s) 00
  set qudsi(c,0e) 
  set qudsi(limit_nomor) 7
  set qudsi(size_nomor) 600
  set qudsi(length_nomor) 380
}
	
proc qudsi_cs_yahoo { } {
  global qudsi  
  set qudsi(limit_nomor) 10
  set qudsi(size_nomor) 9999
  set qudsi(length_nomor) 400
}

proc qudsi_cs_html { } {
  global qudsi  
  set qudsi(limit_nomor) 20
  set qudsi(size_nomor) 9999
  set qudsi(length_nomor) 99999
}

proc qudsi_main {who qudsi_args} {
  global qudsi
  set qudsi_qudsi_requ ""
  set who [string tolower $who]
  
  if {[string match "html_*" $who]} { qudsi_cs_html }
	  
  if {![info exists qudsi(last,$who)]} { set qudsi(last,$who) 0 }
  if {![info exists qudsi(tran,$who)]} { set qudsi(tran,$who) $qudsi(qudsi_default) }

  foreach qudsi_arg_vrb [string tolower $qudsi_args] {lappend qudsi_arg $qudsi_arg_vrb}
  
  foreach qudsi_qudsi_check $qudsi_arg {
    foreach qudsi_tcode $qudsi(qudsi_list) {
      foreach qudsi_alias_in $qudsi(alias,$qudsi_tcode) {
        if {[string match $qudsi_alias_in $qudsi_qudsi_check]} {
          set qudsi_qudsi_requ [RT_lappend $qudsi_qudsi_requ $qudsi_tcode]
          set qudsi_arg [lreplace $qudsi_arg [lsearch $qudsi_arg $qudsi_alias_in] [lsearch $qudsi_arg $qudsi_alias_in]]
          set qudsi_qudsi_found 1
        }
      }
    }
  }

  if {![info exists qudsi_qudsi_found]} {
    set qudsi_qudsi_requ $qudsi(tran,$who)
  } 
  set qudsi_qudsi [lindex $qudsi_qudsi_requ 0]

  set qudsi_ret_val [switch -glob [lindex $qudsi_arg 0] {
    
    info {
      return [list "$qudsi(c,1s)$qudsi(name) berasal dari kata quds yang berarti menyucikan Allah. Hadis Qudsi ialah hadis yang oleh Nabi saw. disandarkan kepada Allah. Maksudnya Nabi meriwayatkannya bahwa itu adalah kalam Allah. Maka rasul menjadi perawi kalam Allah ini dari lafal Nabi sendiri. Bila seseorang meriwayatkan hadis qudsi maka dia meriwayatkannya dari Rasulullah SAW dengan disandarkan kepada Allah.$qudsi(c,1e)"]      
    }
	detail {
      lappend qudsi_reptxt "$qudsi(c,1s)Informasi mengenai $qudsi(name).$qudsi(c,1e)"
	  lappend qudsi_reptxt "$qudsi(c,2s)1. Author: Allah SWT dan Rasullulah SAW."
      lappend qudsi_reptxt "$qudsi(c,2s)2. Editing: Abah."
      lappend qudsi_reptxt "$qudsi(c,2s)3. Inspirated: Ummi dan Jundi."
      lappend qudsi_reptxt "$qudsi(c,2s)4. Sumber: $qudsi(name)."
	  lappend qudsi_reptxt "$qudsi(c,2s)5. Pengawasan: Kementrian Agama R.I sebagai perwakilan Pemerintah."
	  lappend qudsi_reptxt "$qudsi(c,2s)6. IT Team: PT. Telekomunikasi Indonesia (Persero) Tbk."
	  lappend qudsi_reptxt "$qudsi(c,1s)$qudsi(name) $qudsi(version).$qudsi(c,1e)"
      return $qudsi_reptxt
    }
    set {
      if {[info exist [lindex $qudsi_args 1]]} {
        if {[lindex $qudsi_args 2]==""} {
          return [list "$[lindex $qudsi_args 1] = [expr $[lindex $qudsi_args 1]]"]
        } {
          set qudsi_old_arg [expr $[lindex $qudsi_args 1]]
          set [lindex $qudsi_args 1] [lrange $qudsi_args 2 end]
          return [list "Setting [lindex $qudsi_args 1] from $qudsi_old_arg to [lrange $qudsi_args 2 end]"] 
        }
      } {
        return [list "Theres no variable like [lindex $qudsi_args 1]."]}
    }
    bantuan {
      set qudsi_reptxts [list "$qudsi(c,1s)$qudsi(name)$qudsi(c,1e)"]
      if {[lindex $qudsi_args 1] == "" } { set qudsi_help_topic help } { set qudsi_help_topic [lindex $qudsi_args 1] } 
      if {[file exist $qudsi(root)\qudsi_extra]} {
	set qudsi_reptxt [RT_read_topic $qudsi(root)\qudsi_extra $qudsi_help_topic*]
      } {return [list " File not found. "]}
      
      foreach qudsi_t $qudsi_reptxt {		
        lappend qudsi_reptxts "$qudsi(c,2s)[eval list $qudsi_t]$qudsi(c,2e)"		
      }
      return $qudsi_reptxts
    }
    context {
      set qudsi_scanarg [split $qudsi_arg :-.\ ]
      set qudsi_rukulook [index2serial [lindex $qudsi_scanarg 1] [lindex $qudsi_scanarg 2] $qudsi(qudsi_max)]
      set qudsi_rukufirst [lindex $qudsi(ruku_list) 0]

      foreach qudsi_ruku $qudsi(ruku_list) { 
        if { $qudsi_ruku >= $qudsi_rukulook } { 
          set qudsi_rukulast $qudsi_ruku
          break } {
          set qudsi_rukufirst $qudsi_ruku }
      }
      set qudsi_rukuout1 [serial2index [expr $qudsi_rukufirst+1] $qudsi(qudsi_max)]
      set qudsi_rukuout2 [serial2index $qudsi_rukulast $qudsi(qudsi_max)]
      set qudsi_arg "[lindex $qudsi_rukuout1 0]:[lindex $qudsi_rukuout1 1]-[lindex $qudsi_rukuout2 1] [lrange $qudsi_arg 3 end]"
      format 0
    }
    ruku {
      set qudsi_scanarg [split $qudsi_arg :-.\ ]
      set qudsi_rukulook [index2serial [lindex $qudsi_scanarg 1] [lindex $qudsi_scanarg 2] $qudsi(qudsi_max)]
      set qudsi_rukufirst [lindex $qudsi(ruku_list) 0]

      foreach qudsi_ruku $qudsi(ruku_list) { 
        if { $qudsi_ruku >= $qudsi_rukulook } { 
          set qudsi_rukulast $qudsi_ruku
          break } {
          set qudsi_rukufirst $qudsi_ruku }
      }
      set qudsi_rukuout1 [serial2index [expr $qudsi_rukufirst+1] $qudsi(qudsi_max)]
      set qudsi_rukuout2 [serial2index $qudsi_rukulast $qudsi(qudsi_max)]
      return [list "$qudsi(c,1s) Context for [lindex $qudsi_arg 1]:[lindex $qudsi_arg 2] is [lindex $qudsi_rukuout1 0]:[lindex $qudsi_rukuout1 1]-[lindex $qudsi_rukuout2 1] which is the [lsearch $qudsi(ruku_list) $qudsi_rukulast] of 561 Ruku/Bending. $qudsi(c,1e)" ]
    }
    cari {return [qudsi_search $who $qudsi_qudsi_requ [lrange $qudsi_arg 1 end]]}
	owner {return  [list "$qudsi(c,1s)$qudsi(c,Rs)Editing oleh abah dan ummi$qudsi(c,Rs)$qudsi(c,1e)"] }
	version {return [list "$qudsi(c,1s)$qudsi(c,Rs)$qudsi(name) version $qudsi(version)$qudsi(c,Rs)$qudsi(c,1e)"] }
    next  {expr [expr $qudsi(last,$who)+1>$qudsi(total)]?[format 1]:[expr $qudsi(last,$who)+1]}

    [a-z']* {
      set qudsi_vrbcnt 0
      set qudsi_sname ""

      foreach qudsi_wrdlist $qudsi_arg {
      if {[string match \[0-9\]* $qudsi_wrdlist]} {break} {set qudsi_sname "$qudsi_sname $qudsi_wrdlist";incr qudsi_vrbcnt} }
      
      set qudsi_sfile [open $qudsi(root)$qudsi(qudsi_search)]
      for {set qudsi_qudsi_num 1} {$qudsi_qudsi_num<=48} {incr qudsi_qudsi_num} {
        set qudsi_qudsi_list [string tolower [gets $qudsi_sfile]]
        if {[string match "*>$qudsi_sname >*" $qudsi_qudsi_list]} {
          set qudsi_arg "$qudsi_qudsi_num [lrange $qudsi_arg $qudsi_vrbcnt end]"
        }
      }
      close $qudsi_sfile
      format 0
    }
  default {format 0}
  }]

  if {$qudsi_ret_val} {set qudsi_arg "[serial2index $qudsi_ret_val $qudsi(qudsi_max)] [lrange $qudsi_arg 1 3]"}
  qudsi_irc $who $qudsi_qudsi_requ $qudsi_arg
}

proc qudsi_irc {who qudsi_qudsi_requ qudsi_arg} {
  global qudsi
  set qudsi_idx1 -1 ; set qudsi_idx2 0 ; set qudsi_idx3 0
  set qudsi_scanarg [split $qudsi_arg :-.\;\ ]
  scan [lrange $qudsi_scanarg 0 2] "%d %d %d" qudsi_idx1 qudsi_idx2 qudsi_idx3
  set qudsi_opt [lrange $qudsi_scanarg 2 5]
  set qudsi_max_idx2 [lindex $qudsi(qudsi_max) $qudsi_idx1]

  if {$qudsi_idx1==-1} { error " Ignoring wrong inputs $who $qudsi_arg "}

  if {![expr ($qudsi_idx1<=48) && ($qudsi_idx1>=1)]} {
    return [list "$qudsi(c,1s)$qudsi(name) hanya terdiri dari 48 Kitab 197 Nomor.$qudsi(c,1e)"]
  }

  if {![expr ($qudsi_idx2>=1) && ($qudsi_idx2<=$qudsi_max_idx2)]} {
    set qudsi_sd_text [RT_read_line $qudsi(root)/qudsi_list $qudsi_idx1]
    return [list "$qudsi(c,1s)$qudsi(name) Kitab [lindex $qudsi_sd_text 0] Nomor Urut Kitab [lindex $qudsi_sd_text 1] Jumlah Nomor [lindex $qudsi_sd_text 2] Nomor. Kitab [lindex $qudsi_sd_text 0] ini membahas mengenai [lrange $qudsi_sd_text 3 end].$qudsi(c,1e)"]
  }

  if {$qudsi_idx3>$qudsi_max_idx2} {set qudsi_idx3 $qudsi_max_idx2}
  if {$qudsi_idx3<$qudsi_idx2} {set qudsi_idx3 $qudsi_idx2}
  if {[expr $qudsi_idx3-$qudsi_idx2+1]>$qudsi(limit_nomor)} {set qudsi_idx3 [expr $qudsi_idx2+$qudsi(limit_nomor)-1]}

  set qudsi_size [expr $qudsi(length_nomor)]
  set qudsi_cond 1

  set qudsi_caps 1
  set qudsi_idx_srl [index2serial $qudsi_idx1 $qudsi_idx2 $qudsi(qudsi_max)]
  set qudsi_file_no [lindex [serial2index $qudsi_idx_srl $qudsi(cnt_file)] 0]

 if {[llength $qudsi_qudsi_requ]>1} {
    set qudsi_line_no [lindex [serial2index $qudsi_idx_srl $qudsi(cnt_file)] 1]
    foreach qudsi_tcode $qudsi_qudsi_requ {
      if {!$qudsi(valid,$qudsi_tcode)} {continue}
      [expr $qudsi_cond?"append":"lappend"] qudsi_txt_out "$qudsi(c,rs)[string toupper $qudsi_tcode]$qudsi(c,re): [RT_read_line $qudsi(root)/$qudsi_tcode-$qudsi_file_no $qudsi_line_no][expr $qudsi_cond?\" \":\"\"]"
      set qudsi_idx2_last $qudsi_idx2
    }
    set qudsi_reptxt_bn1 "$qudsi(c,1s) $qudsi(ban1,al)Kitab: $qudsi_idx1. [lindex $qudsi(qudsi_name) $qudsi_idx1]. nomor:$qudsi_idx2 $qudsi(c,1e)" 
    set qudsi_reptxt_bn2 "$qudsi(c,1s) $qudsi(ban2,al)$qudsi(c,0s) $qudsi(c,1e)"
  } {
    set qudsi_tcode $qudsi_qudsi_requ
    if {!$qudsi(valid,$qudsi_qudsi_requ)} {return [list "This option is disabled! Files are missing."]}

    for {set qudsi_idx2_counter $qudsi_idx2} {$qudsi_idx2_counter<=$qudsi_idx3} {incr qudsi_idx2_counter} {
      set qudsi_idx2_serial [index2serial $qudsi_idx1 $qudsi_idx2_counter $qudsi(qudsi_max)]
      set qudsi_line_no [lindex [serial2index $qudsi_idx2_serial $qudsi(cnt_file)] 1]
      set qudsi_sajd_mark [lsearch $qudsi(sajdah) $qudsi_idx2_serial]
      set qudsi_ruku_mark [lsearch $qudsi(ruku_list) $qudsi_idx2_serial]
      set qudsi_marks "[expr $qudsi_ruku_mark>=1?\"®$qudsi_ruku_mark®\":\"\"][expr $qudsi_sajd_mark>=1?\"©$qudsi_sajd_mark©\":\"\"]"
      [expr $qudsi_cond?"append":"lappend"] qudsi_txt_out "$qudsi_idx2_counter.[expr $qudsi_cond?\"\":\" \"][RT_read_line $qudsi(root)/$qudsi_qudsi_requ-$qudsi_file_no $qudsi_line_no]$qudsi_marks[expr $qudsi_cond?\" \":\"\"]"
      set qudsi_idx2_last $qudsi_idx2_counter
      if {[string length $qudsi_txt_out]>$qudsi(size_nomor)} {break}
    }
      set qudsi_reptxt_bn1 "$qudsi(c,1s)$qudsi(name)$qudsi(c,1e)"
	  set qudsi_reptxt_bn2 "$qudsi(c,1s)Kitab: [lindex $qudsi(qudsi_name) $qudsi_idx1]. Nomor Urut Kitab: $qudsi_idx1.$qudsi(c,1e)"
  }

  if {$qudsi_caps} {set qudsi_txt_out [string toupper $qudsi_txt_out]}

  switch -glob $qudsi_opt {    
    default {
      lappend qudsi_reptxt $qudsi_reptxt_bn1 
      foreach qudsi_text_vrb $qudsi_txt_out {
        foreach qudsi_formated_text [RT_format $qudsi_text_vrb $qudsi_size] {
          lappend qudsi_reptxt "$qudsi(c,2s)$qudsi_formated_text$qudsi(c,2e)"
        }
      }
      lappend qudsi_reptxt $qudsi_reptxt_bn2
    }
  }

  set qudsi(last,$who) [index2serial $qudsi_idx1 $qudsi_idx2_last $qudsi(qudsi_max)]
  return [RT_emph $qudsi_reptxt $qudsi(emph_wrds) $qudsi(c,us) $qudsi(c,ue)]
}

proc qudsi_search {who qudsi_qudsi_requ qudsi_args} {
  global qudsi

  foreach qudsi_qudsi $qudsi_qudsi_requ {
    if {!$qudsi(valid,$qudsi_qudsi)} {
      append qudsi_reptxt [list "$qudsi(c,1s) [string toupper $qudsi_qudsi] is disabled! Files are missing. $qudsi(c,1e)"]
      set qudsi_qudsi_requ [lreplace $qudsi_qudsi_requ [lsearch $qudsi_qudsi_requ $qudsi_qudsi] [lsearch $qudsi_qudsi_requ $qudsi_qudsi]]
    }
  }

  set qudsi_search_start_time [format %.2f [clock clicks -milliseconds]]
  set qudsi_search_lists [split $qudsi_args &]
  set qudsi_rst_cnt 0
  set qudsi_result_serial ""
  set qudsi_search_list ""
  set qudsi_serlisttxt ""

  if {$qudsi_search_lists==""} {
    return [list "$qudsi(c,1s)Gunakan perintah: qudsi cari <kata kunci>$qudsi(c,1e)"]
  }

  foreach qudsi_sts $qudsi_search_lists {set qudsi_search_list [RT_lappend $qudsi_search_list "[string trim $qudsi_sts] "]}
  foreach qudsi_st $qudsi_search_list {append qudsi_serlisttxt "$qudsi(c,hl)$qudsi(c,us)[string trim $qudsi_st]$qudsi(c,ue) \& "}

  if {[llength $qudsi_qudsi_requ]>1} { set qudsi_banner "$qudsi(c,bs)[string toupper $qudsi_qudsi_requ]$qudsi(c,be) $qudsi(ban2,al)" } { set qudsi_banner $qudsi(ban2,$qudsi_qudsi_requ) }

  lappend qudsi_reptxt "$qudsi(c,1s)Hasil pencarian dari kata [string trimright $qudsi_serlisttxt "& "] $qudsi(c,1s) dalam $qudsi(name)"

  for {set qudsi_idx1 1} {$qudsi_idx1<=4} {incr qudsi_idx1} {
    set qudsi_result_list ""
    foreach qudsi_qudsi $qudsi_qudsi_requ {
      set qudsi_result_list "$qudsi_result_list [RT_search_line $qudsi(root)/$qudsi_qudsi-$qudsi_idx1 $qudsi_search_list]"
    }
      foreach qudsi_rst $qudsi_result_list {lappend qudsi_result_serial [index2serial $qudsi_idx1 $qudsi_rst $qudsi(cnt_file)]}
  }

  set qudsi_result_serial [lsort -integer -unique $qudsi_result_serial]
  set qudsi_rst_cnt [llength $qudsi_result_serial]
  set qudsi_search_ttime [expr ([format %.2f [clock clicks -milliseconds]]-$qudsi_search_start_time)/1000]
  set qudsi(ser,$who:rslt) $qudsi_result_serial
  set qudsi(ser,$who:tran) $qudsi_qudsi_requ
  set qudsi(ser,$who:word) $qudsi_search_list
  set qudsi(ser,$who:cnts) $qudsi_rst_cnt

  switch -glob $qudsi_rst_cnt {
    0 {	  
      lappend qudsi_reptxt "$qudsi(c,1s)Afwan yang antum cari tidak di temukan$qudsi(c,1e)"
	  lappend qudsi_reptxt "$qudsi(c,1s)Jumlah yang ditemukan: $qudsi_rst_cnt.$qudsi(c,1e)"
    }
    [1-3] {
      lappend qudsi_reptxt "[serial2result $qudsi_result_serial]."
      lappend qudsi_reptxt "$qudsi(c,1s)Jumlah yang ditemukan: $qudsi_rst_cnt.$qudsi(c,1e)"
    }
    [4-9] - [1-4]? {
      lappend qudsi_reptxt "[serial2result $qudsi_result_serial]."
      lappend qudsi_reptxt "$qudsi(c,1s)Jumlah yang ditemukan: $qudsi_rst_cnt.$qudsi(c,1e)"
    }  
    default {
      lappend qudsi_reptxt "[serial2result $qudsi_result_serial]."	  
	  lappend qudsi_reptxt "$qudsi(c,1s)Jumlah yang ditemukan: $qudsi_rst_cnt.$qudsi(c,1e)"
    }
  }
  return $qudsi_reptxt
}

proc serial2result { serial } {
  global qudsi
  set qudsi_idx1_last 0
  foreach qudsi_rst $serial {
    set qudsi_idx  [serial2index $qudsi_rst $qudsi(qudsi_max)]
    set qudsi_idx1 [lindex $qudsi_idx 0]
    set qudsi_idx2 [lindex $qudsi_idx 1]
    if {$qudsi_idx1_last == $qudsi_idx1} {
      append qudsi_result_temp ",$qudsi(c,Ls)$qudsi_idx2$qudsi(c,Le)"
    } {
      append qudsi_result_temp " $qudsi(c,Bs)$qudsi_idx1$qudsi(c,Be):$qudsi(c,Ls)$qudsi_idx2$qudsi(c,Le)"
    }
    set qudsi_idx1_last $qudsi_idx1
  }
  return $qudsi_result_temp
}

  proc qudsi_msg {nick uhost hand args} {
    global qudsi RT_Kit
    qudsi_cs_irc

    if {![info exist RT_Kit(buffer,$nick)]} { after 100 "RT_Queue_IRC $nick" }
    foreach qudsi_line [qudsi_main $nick [lindex $args 0]] {
      lappend RT_Kit(buffer,$nick) $qudsi_line 
    }
    return 1
  }

  proc qudsi_pub {nick uhost hand chan args} {
    global qudsi RT_Kit
    qudsi_cs_irc

    if {![info exist RT_Kit(buffer,$chan)]} { after 100 "RT_Queue_IRC $chan" }
    foreach qudsi_line [qudsi_main $chan [lindex $args 0]] {
      lappend RT_Kit(buffer,$chan) $qudsi_line 
    }
    return 1
  }

  bind msg - qudsi qudsi_msg; bind msg - !qudsi qudsi_msg; bind msg - .qudsi qudsi_msg
  bind pub - qudsi qudsi_pub; bind pub - !qudsi qudsi_pub; bind pub - .qudsi qudsi_pub
Post Reply