Posted to tcl by mjanssen at Thu Oct 19 23:12:34 GMT 2006view raw
- 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