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.
Support & discussion of released scripts, and announcements of new releases.
GaveUp
Op
Posts: 139 Joined: Thu Jan 19, 2006 3:56 am
Post
by GaveUp » Thu Jan 19, 2006 4:01 am
See
https://github.com/GaveUp/tvrageegg for the latest version of this script. The code below is left only for legacy purposes.
Code: Select all
####################
# tvrage.tcl #
# v0.1 19Jan06 #
# Coded By: GaveUp #
####################
###################
# DESCRIPTION #
#################################################################################
# This script pulls today's or tomorrow's schedule of new shows from tvrage.com #
#################################################################################
####################
# Revision History #
##########################
# 0.1 -- Initial Release #
##########################
########
# TODO #
#################################################
# *Move hardcoded settings to variables. #
# *Add support for changing timezones. #
# *Add support for upto 5 days into the future. #
#################################################
bind pub - !today pub:tvrage.com.today
bind pub - !tomorrow pub:tvrage.com.tomorrow
package require http
setudef flag tv
proc pub:tvrage.com.today {nick uhost hand chan text} {
parse:tvrage.com $nick $uhost $hand $chan $text "0"
}
proc pub:tvrage.com.tomorrow {nick uhost hand chan text} {
parse:tvrage.com $nick $uhost $hand $chan $text "1"
}
proc parse:tvrage.com {nick uhost hand chan text when} {
if ![channel get $chan tv] return
set token [http::geturl http://www.tvrage.com/quickschedule.php]
set data [http::data $token]
http::cleanup $token
set date ""
set systemTime [clock seconds]
set systemTime [expr $systemTime + 3600]
set currentTime ""
set parsing 0
set currentOutput ""
set gotTime 0
set neededDate ""
if {$when == 0} {
set neededDate [clock format $systemTime -format "%A, %d %b %Y"]
} elseif {$when == 1} {
set systemTime [expr "$systemTime + 86400"]
set neededDate [clock format $systemTime -format "%A, %d %b %Y"]
}
foreach line [split $data \n] {
if {[regexp {^\[DAY\]([\w\, ]+)\[\/DAY\]$} $line -> date]} {
#putlog "THIS IS THE [censored] DATE: $date"
if {$parsing == 1} {
break;
}
if {$date == $neededDate} {
putserv "PRIVMSG $chan :\00303New TV Shows for $date ***All Times in EST/EDT***\00315"
set parsing 1
}
}
if {$parsing} {
if {[regexp {^\[TIME\]([\w\: ]+)\[\/TIME\]$} $line -> currentTime]} {
if {$gotTime} {
set currentOutput [string trim $currentOutput <>]
putserv "PRIVMSG $chan :$currentOutput"
}
set currentOutput "\002$currentTime:\002 "
set gotTime 1
}
if {[regexp {^\[SHOW\]([ \w]+)\^([\w \']+)\^([\dx]+)\^([\w\\\/\:\.]+)\[\/SHOW\]$} $line -> network title epnum url]} {
set currentOutput [concat $currentOutput "\00304$network\00315 - \00314$title $epnum\00315 <>"]
}
}
}
}
putlog "TVRage.com Primetime Schedule v0.1"
Last edited by
GaveUp on Sun Feb 28, 2016 4:29 pm, edited 20 times in total.
Taz
Voice
Posts: 9 Joined: Sun Oct 23, 2005 10:18 pm
Post
by Taz » Mon Jan 23, 2006 3:56 am
Nicely done. I always like to see this theme of script being worked on and shared with us. Thank you. I look forward to seeing what enhancements you make to this script.
GaveUp
Op
Posts: 139 Joined: Thu Jan 19, 2006 3:56 am
Post
by GaveUp » Mon Jan 23, 2006 5:48 am
Here's v0.2
Code: Select all
####################
# tvrage.tcl #
# v0.2 23Jan06 #
# Coded By: GaveUp #
####################
###################
# DESCRIPTION #
#################################################################################
# This script pulls today's or tomorrow's schedule of new shows from tvrage.com #
#################################################################################
####################
# Revision History #
#####################################################################
# 0.2 -- +!showinfo trigger for detailed show info and next/last ep #
# +!schedule for 7 day schedule #
# *fixed errors in various regex #
# 0.1 -- Initial Release #
# #
# + added - removed * fixed/changed #
#####################################################################
########
# TODO #
#################################################
# *Move hardcoded settings to variables. #
# *Add support for changing timezones. #
#################################################
bind pub - !today pub:tvrage.com.today
bind pub - !tomorrow pub:tvrage.com.tomorrow
bind pub - !showinfo pub:tvrage.com.showinfo
bind pub - !schedule pub:tvrage.com.schedule
package require http
setudef flag tv
proc pub:tvrage.com.schedule {nick uhost hand chan text} {
set seconds [clock seconds]
set days(sun) 0
set days(mon) 1
set days(tue) 2
set days(wed) 3
set days(thu) 4
set days(fri) 5
set days(sat) 6
if ![info exist days([string tolower $text])] return
set currDay [clock format $seconds -format "%w"]
if {$currDay > $days([string tolower $text])} {
parse:tvrage.com $nick $uhost $hand $chan $text [expr (7 - $currDay) + $days([string tolower $text])]
} else {
parse:tvrage.com $nick $uhost $hand $chan $text [expr $days([string tolower $text]) - $currDay]
}
}
proc pub:tvrage.com.today {nick uhost hand chan text} {
parse:tvrage.com $nick $uhost $hand $chan $text "0"
}
proc pub:tvrage.com.tomorrow {nick uhost hand chan text} {
parse:tvrage.com $nick $uhost $hand $chan $text "1"
}
proc pub:tvrage.com.showinfo {nick uhost hand chan text} {
if ![channel get $chan tv] return
set token [http::geturl "http://www.tvrage.com/quickinfo.php?show=$text"]
set data [http::data $token]
http::cleanup $token
set show(title) ""
foreach line [split $data \n] {
if {[regexp {^No Show Results Were Found For \".*\"$} $line]} {
putserv "PRIVMSG $chan :\00303$line\00315"
return
}
if {[regexp {^Show Name@(.*)$} $line -> match]} { set show(title) $match }
if {[regexp {^Show URL@(.*)$} $line -> match]} { set show(url) $match }
if {[regexp {^Premiered@(.*)$} $line -> match]} { set show(premiered) $match }
if {[regexp {^Latest Episode@(\d+)x(\d+)\^([\w\'\.\, ]+)\^([\w\/]+)$} $line -> season episode eptitle epDate]} {
set show(latest) [join [list "\00303Latest Episode ::\00315 \00304$season" "x$episode - $eptitle ($epDate)\00315"] ""]
}
if {[regexp {^Next Episode@(\d+)x(\d+)\^([\w\'\.\, ]+)\^([\w\/]+)$} $line -> season episode eptitle epDate]} {
set show(next) [join [list "\00303Next Episode ::\00315 \00304$season" "x$episode - $eptitle ($epDate)\00315"] ""]
}
if {[regexp {^Country@(.*)$} $line -> match]} { set show(country) $match }
if {[regexp {^Status@(.*)$} $line -> match]} { set show(status) $match }
if {[regexp {^Classification@(.*)$} $line -> match]} { set show(class) $match }
}
if ![info exist show(next)] { set show(next) "\00303Next Episode ::\00315 \00304N/A\00315" }
putserv "PRIVMSG $chan :\00303Title ::\00315 \00304$show(title)\00315 \00308<>\00315 \00303URL ::\00315 \00304$show(url)\00315 \00308<>\00315 \00303Premiered ::\00315 \00304$show(premiered)\00315 \00308<>\00315 $show(latest) \00308<>\00315 $show(next) \00308<>\00315 \00303Country ::\00315 \00304$show(country)\00315 \00308<>\00315 \00303Status ::\00315 \00304$show(status)\00315"
}
proc parse:tvrage.com {nick uhost hand chan text when} {
if ![channel get $chan tv] return
set token [http::geturl http://www.tvrage.com/quickschedule.php]
set data [http::data $token]
http::cleanup $token
set date ""
set systemTime [clock seconds]
set systemTime [expr $systemTime + 3600]
set currentTime ""
set parsing 0
set currentOutput ""
set gotTime 0
set neededDate ""
set systemTime [expr "$systemTime + ($when * 86400)"]
set neededDate [clock format $systemTime -format "%A, %d %b %Y"]
foreach line [split $data \n] {
if {[regexp {^\[DAY\]([\w\, ]+)\[\/DAY\]$} $line -> date]} {
if {$parsing == 1} {
break;
}
if {$date == $neededDate} {
putserv "PRIVMSG $chan :\00303New TV Shows for $date ***All Times in EST/EDT***\00315"
set parsing 1
}
}
if {$parsing} {
if {[regexp {^\[TIME\]([\w\: ]+)\[\/TIME\]$} $line -> currentTime]} {
if {$gotTime} {
set currentOutput [string trim $currentOutput <>]
putserv "PRIVMSG $chan :$currentOutput"
}
set currentOutput "\002$currentTime:\002 "
set gotTime 1
}
if {[regexp {^\[SHOW\]([ \w]+)\^([\w \'\:\&\!]+)\^([\dx]+)\^([\w\\\/\:\.\-]+)\[\/SHOW\]$} $line -> network title epnum url]} {
set currentOutput [concat $currentOutput "\00304$network\00315 - \00314$title $epnum\00315 <>"]
}
}
}
}
putlog "TVRage.com Primetime Schedule v0.2"
Tammik
Voice
Posts: 10 Joined: Mon Jan 23, 2006 9:41 am
Post
by Tammik » Mon Jan 23, 2006 9:43 am
the script will not work ? i have loded it in to my eggdrop bot ... but when i do !today in chanel noting happens..
GaveUp
Op
Posts: 139 Joined: Thu Jan 19, 2006 3:56 am
Post
by GaveUp » Mon Jan 23, 2006 12:21 pm
DCC or Telnet in and see if an messages pop up there that could indicate a problem.
Taz
Voice
Posts: 9 Joined: Sun Oct 23, 2005 10:18 pm
Post
by Taz » Mon Jan 23, 2006 9:31 pm
Absolutely well done. Nice work. Works well here, running on eggy 1.6.17+SSL
Tammik
Voice
Posts: 10 Joined: Mon Jan 23, 2006 9:41 am
Post
by Tammik » Tue Jan 24, 2006 1:15 am
just for got to do a thing the script is working now..
mybe you can make the script look a bit like this ?
and on
!today
mybe removed tv company.. and just print out
!today
TV Shedule for 2006-01-24
06:00 pm: My Own 01x14
07:30 pm: The Adventures of Jimmy Neutron: Boy Genius 03x11
08:00 pm: NCIS 03x14 | American Idol 05x03 | According to Jim 05x13 | Fear Factor 06x07 | Gilmore Girls 06x13 | NOVA 33x04
!showinfo lost
Lost -
http://www.tvrage.com/Lost
Latest Episode: 02x11 - The Hunting Party (18/Jan/2006)
Next Episode: N/A
just some ideas for your next verion
prim3
Voice
Posts: 8 Joined: Fri Nov 18, 2005 10:02 pm
Post
by prim3 » Tue Jan 24, 2006 6:54 pm
hm.. im getting an error on lookup:
Tcl error [pub:tvrage.com.today]: unknown channel command: should be one of: add, set, info, remove
any idea's?
GaveUp
Op
Posts: 139 Joined: Thu Jan 19, 2006 3:56 am
Post
by GaveUp » Tue Jan 24, 2006 7:58 pm
What did you do to trigger the error?
demond
Revered One
Posts: 3073 Joined: Sat Jun 12, 2004 9:58 am
Location: San Francisco, CA
Contact:
Post
by demond » Wed Jan 25, 2006 12:01 am
prim3 wrote: hm.. im getting an error on lookup:
Tcl error [pub:tvrage.com.today]: unknown channel command: should be one of: add, set, info, remove
any idea's?
upgrade eggdrop
(not that the latest version isn't ancient already, but still)
connection, sharing, dcc problems? click
<here>
before asking for scripting help, read
<this>
use
prim3
Voice
Posts: 8 Joined: Fri Nov 18, 2005 10:02 pm
Post
by prim3 » Wed Jan 25, 2006 2:25 am
well im useing eggdrop1.6.2_linux2.2_static_glibc_x86_tcl8.3.tar.. that should be the latest version right....
demond
Revered One
Posts: 3073 Joined: Sat Jun 12, 2004 9:58 am
Location: San Francisco, CA
Contact:
Post
by demond » Wed Jan 25, 2006 2:46 am
lol, no
connection, sharing, dcc problems? click
<here>
before asking for scripting help, read
<this>
use
Alchera
Revered One
Posts: 3344 Joined: Mon Aug 11, 2003 12:42 pm
Location: Ballarat Victoria, Australia
Contact:
Post
by Alchera » Wed Jan 25, 2006 3:34 am
Latest version is 1.6.17 and can be downloaded from
Eggheads.org .
Add [SOLVED] to the thread title if your issue has been.
Search |
FAQ |
RTM
prim3
Voice
Posts: 8 Joined: Fri Nov 18, 2005 10:02 pm
Post
by prim3 » Thu Jan 26, 2006 3:56 am
is it posible to change display time to GMT+01:00?
GaveUp
Op
Posts: 139 Joined: Thu Jan 19, 2006 3:56 am
Post
by GaveUp » Wed Feb 01, 2006 2:21 am
Just a couple bugfixes for in this update.
Code: Select all
####################
# tvrage.tcl #
# v0.2 23Jan06 #
# Coded By: GaveUp #
####################
###################
# DESCRIPTION #
#################################################################################
# This script pulls today's or tomorrow's schedule of new shows from tvrage.com #
#################################################################################
####################
# Revision History #
#####################################################################
# 0.3 -- *fixed last time of 7th day now displayed #
# *tweaked regex to catch some programs it was missing #
# 0.2 -- +!showinfo trigger for detailed show info and next/last ep #
# +!schedule for 7 day schedule #
# *fixed errors in various regex #
# 0.1 -- Initial Release #
# #
# + added - removed * fixed/changed #
#####################################################################
########
# TODO #
#################################################
# *Move hardcoded settings to variables. #
# *Add support for changing timezones. #
#################################################
### Begin Config ###
set tvrage(scheduleurl) "http://www.tvrage.com/quickschedule.php"
set tvrage(showinfourl) "http://www.tvrage.com/quickinfo.php"
set tvrage(scheduleTitle) "\00303New TV Shows for %%date%% ***All Times in EST/EDT***\00315"
set tvrage(c1) ""
set tvrage(c2) ""
set tvrage(c3) ""
set tvrage(c4) ""
### End Config ###
bind pub - !today pub:tvrage.com.today
bind pub - !tomorrow pub:tvrage.com.tomorrow
bind pub - !showinfo pub:tvrage.com.showinfo
bind pub - !schedule pub:tvrage.com.schedule
package require http
package require ncgi
setudef flag tv
proc pub:tvrage.com.schedule {nick uhost hand chan text} {
set seconds [clock seconds]
set days(sun) 0
set days(mon) 1
set days(tue) 2
set days(wed) 3
set days(thu) 4
set days(fri) 5
set days(sat) 6
if ![info exist days([string tolower $text])] return
set currDay [clock format $seconds -format "%w"]
if {$currDay > $days([string tolower $text])} {
parse:tvrage.com $nick $uhost $hand $chan $text [expr (7 - $currDay) + $days([string tolower $text])]
} else {
parse:tvrage.com $nick $uhost $hand $chan $text [expr $days([string tolower $text]) - $currDay]
}
}
proc pub:tvrage.com.today {nick uhost hand chan text} {
parse:tvrage.com $nick $uhost $hand $chan $text "0"
}
proc pub:tvrage.com.tomorrow {nick uhost hand chan text} {
parse:tvrage.com $nick $uhost $hand $chan $text "1"
}
proc pub:tvrage.com.showinfo {nick uhost hand chan text} {
if ![channel get $chan tv] return
set token [http::geturl [join [list "http://www.tvrage.com/quickinfo.php?show=" [ncgi::encode [string trimleft $text]]] ""]]
set data [http::data $token]
http::cleanup $token
set show(title) ""
foreach line [split $data \n] {
if {[regexp {^No Show Results Were Found For \".*\"$} $line]} {
putserv "PRIVMSG $chan :\00303$line\00315"
return
}
if {[regexp {^Show Name@(.*)$} $line -> match]} { set show(title) $match }
if {[regexp {^Show URL@(.*)$} $line -> match]} { set show(url) $match }
if {[regexp {^Premiered@(.*)$} $line -> match]} { set show(premiered) $match }
if {[regexp {^Latest Episode@(\d+)x(\d+)\^([\w\'\.\, \#\&\@\:]+)\^([\w\/]+)$} $line -> season episode eptitle epDate]} {
set show(latest) [join [list "\00303Latest Episode ::\00315 \00304$season" "x$episode - $eptitle ($epDate)\00315"] ""]
}
if {[regexp {^Next Episode@(\d+)x(\d+)\^([\w\'\.\, \#\@\&\:]+)\^([\w\/]+)$} $line -> season episode eptitle epDate]} {
set show(next) [join [list "\00303Next Episode ::\00315 \00304$season" "x$episode - $eptitle ($epDate)\00315"] ""]
}
if {[regexp {^Country@(.*)$} $line -> match]} { set show(country) $match }
if {[regexp {^Status@(.*)$} $line -> match]} { set show(status) $match }
if {[regexp {^Classification@(.*)$} $line -> match]} { set show(class) $match }
}
if ![info exist show(next)] { set show(next) "\00303Next Episode ::\00315 \00304N/A\00315" }
putserv "PRIVMSG $chan :\00303Title ::\00315 \00304$show(title)\00315 \00308<>\00315 \00303URL ::\00315 \00304$show(url)\00315 \00308<>\00315 \00303Premiered ::\00315 \00304$show(premiered)\00315 \00308<>\00315 $show(latest) \00308<>\00315 $show(next) \00308<>\00315 \00303Country ::\00315 \00304$show(country)\00315 \00308<>\00315 \00303Status ::\00315 \00304$show(status)\00315"
}
proc parse:tvrage.com {nick uhost hand chan text when} {
if ![channel get $chan tv] return
set token [http::geturl http://www.tvrage.com/quickschedule.php]
set data [http::data $token]
http::cleanup $token
set date ""
set systemTime [clock seconds]
set systemTime [expr $systemTime + 3600]
set currentTime ""
set parsing 0
set currentOutput ""
set gotTime 0
set neededDate ""
set neof 1
set systemTime [expr "$systemTime + ($when * 86400)"]
set neededDate [clock format $systemTime -format "%A, %d %b %Y"]
foreach line [split $data \n] {
if {[regexp {^\[DAY\]([\w\, ]+)\[\/DAY\]$} $line -> date]} {
if {$parsing == 1} {
break;
}
if {$date == $neededDate} {
putserv "PRIVMSG $chan :\00303New TV Shows for $date ***All Times in EST/EDT***\00315"
set parsing 1
}
}
if {$parsing} {
if {[regexp {^\[TIME\]([\w\: ]+)\[\/TIME\]$} $line -> currentTime]} {
if {$gotTime} {
set currentOutput [string trim $currentOutput <>]
putserv "PRIVMSG $chan :$currentOutput"
set currentOutput ""
}
set currentOutput "\002$currentTime:\002 "
set gotTime 1
}
if {[regexp {^\[SHOW\]([ \w\&\!]+)\^([\#\w \'\:\&\!\/]+)\^([\dx]+)\^([\w\\\/\:\.\-]+)\[\/SHOW\]$} $line -> network title epnum url]} {
set currentOutput [concat $currentOutput "\00304$network\00315 - \00314$title $epnum\00315 <>"]
}
}
}
if {$currentOutput != ""} {
set currentOutput [string trim $currentOutput <>]
putserv "PRIVMSG $chan :$currentOutput"
}
}
putlog "TVRage.com Primetime Schedule v0.3"