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.

Problem with background colors

Help for those learning Tcl or writing their own scripts.
Post Reply
x
x0x
Op
Posts: 140
Joined: Tue Feb 10, 2009 6:42 am

Problem with background colors

Post by x0x »

I have a problem with background colors.

Code: Select all

putquick "PRIVMSG $chan :\00304,00YouTube\003 $result($res,title) http://youtu.be/$res"
This works. Red letters on a white background.

Code: Select all

putquick "PRIVMSG $chan :\00300,04YouTube\003 $result($res,title) http://youtu.be/$res"
This works partially. White letters on a red background. The closing \003 does not work however, the rest of the line contains the same coloring layout as well.

How can I solve this?

Whole script:

Code: Select all

package require http
bind pub - !youtube pub:youtube
proc pub:youtube {nick host hand chan args} {
        set args [lindex $args 0]
        if {$args == ""} {
                putquick "PRIVMSG $chan :Use: !youtube <keyword>"
                return
        }
        set search [http::formatQuery v 2 alt jsonc q $args orderby viewCount max-results 3 prettyprint true]
        set token [http::config -useragent "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11" -accept "*/*"]
        set token [http::geturl "http://gdata.youtube.com/feeds/api/videos?$search"]
        set data [::http::data $token]
        http::cleanup $token

##     set totalitems [lindex [regexp -all -nocase -inline {\"totalItems\"\: ([0-9]+)} $data] 1]
##     putquick "PRIVMSG $chan :YouTube found $totalitems results for \002$args\002"
        set lines [split $data "\n"]
        set results ""
        foreach line $lines {
                if {[regexp -all -nocase -inline {\"id\"\: \"(.*)\"} $line] != ""} {
                        set id [lindex [regexp -all -nocase -inline {\"id\"\: \"(.*)\"} $line] 1]
                        lappend results $id
                }
                if {[regexp -all -nocase -inline {\"title\"\: \"(.*)\"} $line] != ""} {
                        set result($id,title) [yturldehex [lindex [regexp -all -nocase -inline {\"title\"\: \"(.*)\"} $line] 1]]
                }
                if {[regexp -all -nocase -inline {\"duration\"\: ([0-9]+)} $line] != ""} {
                        set result($id,duration) [lindex [regexp -all -nocase -inline {\"duration\"\: ([0-9]+)} $line] 1]
                }
                if {[regexp -all -nocase -inline {\"viewCount\"\: ([0-9]+)} $line] != ""} {
                        set result($id,viewCount) [lindex [regexp -all -nocase -inline {\"viewCount\"\: ([0-9]+)} $line] 1]
                }
        }
        foreach res $results {
##              putquick "PRIVMSG $chan :\[\002YT\002\] $result($res,title) | [shortduration $result($res,duration)] | $result($res,viewCount) views | http://youtu.be/$res"
                putquick "PRIVMSG $chan :\002YouTube\002 $result($res,title) http://youtu.be/$res"
        }
}

proc yturldehex {string} {
        regsub -all {[\[\]]} $string "" string
        set string [subst [regsub -nocase -all {\&#([0-9]{2,4});} $string {[format %c \1]}]]
        return [string map {" \"} $string]
}

proc shortduration {seconds} {
        set hours [expr int(floor($seconds/3600))]
        set minutes [expr int(floor(($seconds%3600)/60))]
        set seconds [expr $seconds - ($hours*3600) - ($minutes*60)]
        if {$hours<10} { set hours "0$hours" }
        if {$minutes<10} { set minutes "0$minutes" }
        if {$seconds < 10} { set seconds "0$seconds" }
        return "$hours:$minutes:$seconds"
}
w
willyw
Revered One
Posts: 1209
Joined: Thu Jan 15, 2009 12:55 am

Re: Problem with background colors

Post by willyw »

Are you sure?

I copy-n-pasted your line of code, to the partyline of a bot.
Made a couple minor edits, and used:

Code: Select all

.tcl putquick "PRIVMSG #eggdrop :\00300,04YouTube\003 firstvar http://youtu.be/secondvar"
and it seems to work fine. The word "YouTube" appears as white text on a red background. The rest of the line of text is plain old black on white.

Try it and see what happens.
x
x0x
Op
Posts: 140
Joined: Tue Feb 10, 2009 6:42 am

Post by x0x »

I am so sorry, looks like it's a bug with my IRC client; Textual.

All other clients work fine...
w
willyw
Revered One
Posts: 1209
Joined: Thu Jan 15, 2009 12:55 am

Post by willyw »

x0x wrote:I am so sorry, looks like it's a bug with my IRC client; Textual.

All other clients work fine...
Ah!
That possibility didn't even cross my mind.

Well, I'm glad you got to the bottom of it.

:)
Post Reply