TVRage

By zenx on Nov 03, 2010

Quickly made TVRage script.

on *:text:!tv *:#: {
  set %tvr.search $replace($2-,$chr(32),_)
  set %sockn tvr.s. $+ $rand(1,345678)
  sockopen %sockn services.tvrage.com 80
  set %tvr.chan $chan
}

on *:sockopen:tvr.s.*: {
  sockwrite -nt $sockname GET /feeds/search.php?show= $+ %tvr.search HTTP/1.1
  sockwrite -nt $sockname Host: services.tvrage.com
  sockwrite -nt $sockname $crlf
}

on *:sockread:tvr.s.*: {
  var %tvr.sr
  sockread %tvr.sr
  if (*<link>* iswm %tvr.sr) {
    tokenize 32 %tvr.sr
    readtvrage $remove(%tvr.sr,<link>,</link>)
    echo -a $remove(%tvr.sr,<link>,</link>)
    sockclose $sockname
  }
}

alias readtvrage {
  set %tvrage.show $gettok($1,-1,47)
  set %socknx tvrage.s. $+ $rand(1,38)
  sockopen %socknx services.tvrage.com 80
}

on *:sockopen:tvrage.s.*: {
  set %tvr.get /tools/quickinfo.php?show= $+ %tvrage.show
  sockwrite -n $sockname GET %tvr.get HTTP/1.1
  sockwrite -n $sockname Host: services.tvrage.com
  sockwrite -n $sockname $crlf
}

on *:sockread:tvrage.s.*: {
  var %tvrage.sr
  sockread %tvrage.sr
  if (*@* iswm %tvrage.sr) {
    tokenize 32 %tvrage.sr
    ; msg #test %tvrage.sr
    set %tvrage.sr $replace(%tvrage.sr,^,$chr(32))
    if (*Show*Name@* iswm %tvrage.sr) { set %tvr.showname $gettok(%tvrage.sr,-1,64) }
    if (*Latest*Episode* iswm %tvrage.sr) { set %tvr.lastep $gettok(%tvrage.sr,-1,64) }
    if (*Next*Episode* iswm %tvrage.sr) { set %tvr.nextep $gettok(%tvrage.sr,-1,64) }
    if (*Genres* iswm %tvrage.sr) { set %tvr.genres $replace($gettok(%tvrage.sr,-1,64),|,$chr(44)$chr(32)) }
    if (*Airtime* iswm %tvrage.sr) { set %tvr.airtime $gettok(%tvrage.sr,-1,64) }
    if (*Runtime* iswm %tvrage.sr) { set %tvr.runtime $gettok(%tvrage.sr,-1,64) }

; You need to change the time. Mine was -3600 which is -1hour.
    if (*GMT+* iswm %tvrage.sr) { t2t eptime $calc($gettok(%tvrage.sr,-1,64) - $gmt - 3600) }
    .timer 1 3 sockclose $sockname

  }
}

on *:sockclose:tvrage.s.*: {
  msg %tvr.chan 14[ %tvr.showname 7::14 %tvr.genres ] Last: %tvr.lastep - Next: %tvr.nextep ( %ep.time 7 $+ $chr(35) Airtime: %tvr.airtime 7 $+ $chr(35) Runtime: %tvr.runtime mins )
  unset %tvr.* %ep.time
}

alias t2t {
  set %t2time $2
  unset %years %weeks %days %hours %minutes %seconds %y %w %d %h %m %s
  set %years $floor($calc(%t2time / 31449600))
  if (%years >= 1) { set %y %years years | if (%years == 1) { set %y %years year } }
  set %weeks $floor($calc(%t2time % 31449600 / 604800)) 
  if (%weeks >= 1) { set %w %weeks weeks | if (%weeks == 1) { set %w %weeks week } }
  set %days $floor($calc(%t2time % 604800 / 86400))
  if (%days >= 1) { set %d %days days | if (%days == 1) { set %d %days day } }
  set %hours $floor($calc(%t2time % 86400 / 3600))
  if (%hours >= 1) { set %h %hours hours | if (%hours == 1) { set %h %hours hour } }
  set %minutes $floor($calc(%t2time % 3600 / 60))
  if (%minutes >= 1) { set %m %minutes minutes | if (%minutes == 1) { set %m %minutes minute } }
  set %seconds $calc(%t2time % 60)
  if (%seconds >= 1) { set %s %seconds seconds | if (%seconds == 1) { set %s %seconds second } }
  if ($1 == eptime) { set %ep.time %y %w %d %h %m %s }

}

Comments

Sign in to comment.
ReQueST   -  Nov 17, 2010

Nice script works fine. Could have used a small addition, the network were the tv show airs. 8/10

 Respond  
napa182   -  Nov 04, 2010

You should heed Jethro_'s advice about using /sockmark and the $sock($sockname).mark try not to use global vars where you can. also maybe a flood pro as well color strip.
now that you "Quickly made" it you can take some time and refine it. ;x
nice work keep at it... 4/10

 Respond  
Jethro   -  Nov 03, 2010

You should take advantage of the /sockmark and the $sock($sockname).mark identifier in place of numerous variables being set.

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.