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.

help regarding a code tcl.

Help for those learning Tcl or writing their own scripts.
Post Reply
S
Smartiees
Voice
Posts: 10
Joined: Sat Dec 15, 2007 2:15 pm

help regarding a code tcl.

Post by Smartiees »

Code: Select all

## ad.tcl v1.0 by strikelight  ([sL]@EfNet)
#
# -----------------------------------------
# web  : http://www.TCLScript.com
# EFNet: #Scripting
# -----------------------------------------
# Description:
#
# Small script used to advertise urls in a channel
# such as shell companies at a defined time interval.
#
# Default usage:
#
# Add:
# /msg <bot> !ad <url> <description>
#
# Remove:
# /msg <bot> !delad <url>
#
##

## ---  START EDITTING HERE --- ##

# time in seconds to display an ad to channels #

set adtime 120


# channels to advertise in #

set adchans "#gilgit"


# flag of user required to add an advertisement via msg #

set adflag m


# message trigger used to add an advertisement #
# (format /msg bot <command> <url> <ad description>)

set admsgcmd "!ad"

# message trigger used to delete an advertisement #
# (format /msg bot <command> <url>)

set deladmsgcmd "!delad"


## ---  STOP EDITTING HERE --- ##

set adidx 0
proc loadads {} {
  global adlist
  set adlist ""
  if {![file exists "ad.txt"]} {return 0}
  set infile [open "ad.txt" r]
  while {![eof $infile]} {
    gets $infile dataline
    if {$dataline != ""} {lappend adlist $dataline}
  }
  close $infile
  return 1
}

proc saveads {} {
  global adlist
  set outfile [open "ad.txt" w]
  foreach ad $adlist {if {$ad != ""} {puts $outfile "$ad"}}
  close $outfile
  return 1
}

proc addisplay {} {
  global adchans adlist adidx adtime
  utimer $adtime "addisplay"
  if {$adlist == ""} {return 0}
  foreach chan $adchans {
    puthelp "PRIVMSG $chan :\002\037[split [lindex [lindex $adlist $adidx] 0]]\037\002"
    puthelp "PRIVMSG $chan :10[split [lrange [lindex $adlist $adidx] 1 end]]"
  }
  set adidx [expr $adidx + 1]
  if {$adidx >= [llength $adlist]} {set adidx 0}
  return 1
}

proc utimerexists {timer_proc} {
  foreach j [utimers] {if {[string compare [lindex $j 1] $timer_proc] == 0} {return [lindex $j 2]}}
  return
}

bind msg $adflag $admsgcmd addad
proc addad {unick user handle argz} {
  global adlist botnick admsgcmd
  set url [split [lindex $argz 0]]
  set addesc [split [lrange $argz 1 end]]
  if {($url == "") || ($addesc == "")} {
    puthelp "PRIVMSG $unick :Invalid. Format: /msg $botnick $admsgcmd <url> <ad description>"
    return 0
  }
  foreach turl $adlist {
    set aurl [string tolower [lindex $turl 0]]
    if {$aurl == [string tolower $url]} {
      puthelp "PRIVMSG $unick :Error. Site is already added."
      return 0
    }
  }
  lappend adlist "$url $addesc"
  saveads
  puthelp "PRIVMSG $unick :Added: $url - $addesc"
  return 1
}

bind msg $adflag $deladmsgcmd delad
proc delad {unick user handle argz} {
  global adlist botnick admsgcmd
  set url [split [lindex $argz 0]]
  if {$url == ""} {
    puthelp "PRIVMSG $unick :Invalid. Format: /msg $botnick $deladmsgcmd <url>"
    return 0
  }
  set newadlist ""
  foreach turl $adlist {
    set aurl [string tolower [lindex $turl 0]]
    if {$aurl != [string tolower $url]} {
     lappend newadlist $turl
    }
  }
  set adlist $newadlist
  saveads
  puthelp "PRIVMSG $unick :Deleted: $url"
  return 1
}

loadads
if {[utimerexists "addisplay"] == ""} {utimer $adtime "addisplay"}

putlog "ad.tcl v1.0 by strikelight now loaded"

I am using this above tcl for some matter

this tcl show msgs which in in added into ad.txt line by line after some minute the problem is this if some txt length is more then then its cut off the txt sentence and show shortly

i want its when it show msg if some txt lenght is big then its convert into two msgs automaticly and show completely lenght.

like i show you here example:

right now tcl show like this short msg:

Code: Select all

(23:07:25) <Deen>  255. Allah - there is no deity except Him, the Ever-Living, the Sustainer of [all] existence. Neither drowsiness overtakes Him nor sleep. To Him belongs whatever is in the heavens and whatever is on the earth. Who is it that can intercede with Him except by His permission? He knows what is [presently] before them and what will be after them, and they encompass not a thing of 
I want to say what i put in this tcl in code then this tcl show complete msg into two msgs like this i show you here example:

Code: Select all

(23:07:25) <Deen>  255. Allah - there is no deity except Him, the Ever-Living, the Sustainer of [all] existence. Neither drowsiness overtakes Him nor sleep. To Him belongs whatever is in the heavens and whatever is on the earth. Who is it that can intercede with Him except by His permission? He knows what is [presently] before them and what will be after them, and they encompass not a thing of 
(23:07:25) <Deen>  His knowledge except for what He wills. His Kursi extends over the heavens and the earth, and their preservation tires Him not. And He is the Most High, the Most Great. 
like this how it will make it???? please help me out and tell me what should i put in this tcl then it will show complete message into two or three msgs.
S
Smartiees
Voice
Posts: 10
Joined: Sat Dec 15, 2007 2:15 pm

Post by Smartiees »

where is all gone? why not helping out??? my problem?
Post Reply