Posted to tcl by mjanssen at Thu Oct 19 23:12:34 GMT 2006view pretty

package require http
package require sqlite3
set h1 [http::geturl http://tvrage.com/quickschedule.php]

set data [::http::data $h1]
http::cleanup $h1

sqlite3 db {}
db eval {CREATE TABLE shows(date text, time text, network text, name text, season text , episode text, url text, PRIMARY KEY 
(date,time,network,name))}



set lines [split $data \n]
foreach line $lines {
    set type {}	
    regexp {\[(.*)?\](.*)\[.*\]} $line -> type value
    switch $type {
	DAY {set current_day $value }
	TIME {set show_time $value ; set show_nr 0}
	SHOW {
		# 8.5 only
		lassign [split $value ^] network name season url
		lassign [split $season x] season episode
		db eval {INSERT INTO shows VALUES($current_day,$show_time,$network,$name,$season,$episode, $url)}}
	default {continue} 
    }
}

db eval {SELECT * from shows WHERE date="Wednesday, 25 Oct 2006" ORDER BY time } {
	puts "$time: \[$network\] ($season-$episode) $name <$url>" 
}

puts "---------------\nWhen is David Letterman on?"

# when is letterman on?
db eval {SELECT * from shows WHERE name like "%Letterman%" ORDER BY date,time } {
	puts "$date - $time:\t \[$network\] ($season-$episode) $name" 
}


db close