All pastes #405303 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-03-21 17:32 UTC
rendered paste body
set ns "tvtome"
namespace eval $ns {
 unset ::ns

 variable language "english"

 bind pub - !tv [namespace current]::pubshowinfo
 bind msg - !tv [namespace current]::privshowinfo

 proc pubshowinfo {n u h c t} {
   showinfo $t $c
 }

 proc privshowinfo {n u h t} {
   showinfo $t $n
 }

 proc showinfo {t where} {
   variable language
   if {![string length $t]} {
     putserv "PRIVMSG $where :Usage: !tv <show>"
     return 0
   }
   variable search [join [lrange [split $t] 0 e] {+}]
   variable url "http://episodeworld.com/botsearch/$search/$language"
   variable sock [egghttp:geturl $url [list parseinfo $where $url]]
 }

 proc parseinfo {target url sock} {
   variable data [egghttp:data $sock]
   egghttp:cleanup $sock
   if {![string length $data]} {
     putserv "PRIVMSG $target :Error: show not found!"
     return 0
   }
   variable i 0
   foreach line [split $data \n] {
     incr i
     if { $i == 1 } {
        putserv "PRIVMSG $target :Show: [string trim $line <br>]"
      } elseif { $i < 4 } {
        putserv "PRIVMSG $target :[string trim $line <br>]"
      }
   }
 }
}