Code: Select all
putquick "PRIVMSG $chan :\00304,00YouTube\003 $result($res,title) http://youtu.be/$res"Code: Select all
putquick "PRIVMSG $chan :\00300,04YouTube\003 $result($res,title) http://youtu.be/$res"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"
}