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

  1. package require http
  2. package require sqlite3
  3. set h1 [http::geturl http://tvrage.com/quickschedule.php]
  4.  
  5. set data [::http::data $h1]
  6. http::cleanup $h1
  7.  
  8. sqlite3 db {}
  9. db eval {CREATE TABLE shows(date text, time text, network text, name text, season text , episode text, url text, PRIMARY KEY
  10. (date,time,network,name))}
  11.  
  12.  
  13.  
  14. set lines [split $data \n]
  15. foreach line $lines {
  16. set type {}
  17. regexp {\[(.*)?\](.*)\[.*\]} $line -> type value
  18. switch $type {
  19. DAY {set current_day $value }
  20. TIME {set show_time $value ; set show_nr 0}
  21. SHOW {
  22. # 8.5 only
  23. lassign [split $value ^] network name season url
  24. lassign [split $season x] season episode
  25. db eval {INSERT INTO shows VALUES($current_day,$show_time,$network,$name,$season,$episode, $url)}}
  26. default {continue}
  27. }
  28. }
  29.  
  30. db eval {SELECT * from shows WHERE date="Wednesday, 25 Oct 2006" ORDER BY time } {
  31. puts "$time: \[$network\] ($season-$episode) $name <$url>"
  32. }
  33.  
  34. puts "---------------\nWhen is David Letterman on?"
  35.  
  36. # when is letterman on?
  37. db eval {SELECT * from shows WHERE name like "%Letterman%" ORDER BY date,time } {
  38. puts "$date - $time:\t \[$network\] ($season-$episode) $name"
  39. }
  40.  
  41.  
  42. db close