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"
}