Posted to tcl by dkf at Thu May 06 10:38:44 GMT 2010view pretty

package require http
package require tdom

proc getItemTitles {url} {
    set t [http::geturl $url]
    set doc [dom parse [http::data $t]]
    http::cleanup $t

    set titles {}
    foreach node [$doc selectNodes /channel/item/title] {
	lappend titles [$node text]
    }

    $doc delete
    return $titles
}

array set currentTitles {}
proc fetchAndPrint {url} {
    global currentTitles
    set titles [getItemTitles $url]
    if {![info exist currentTitles($url)] || $currentTitles($url) ne $titles} {
	set currentTitles($url) $titles
	foreach t $titles {
	    puts "Got item: $t"
	}
    } else {
	puts "no change"; # debug...
    }
}

proc every {t script} {
    uplevel #0 $script
    after $t [info level 0]
}

# 60k milliseconds is a minute
every 60000 {fetchAndPrint http://rit.me.uk/livescore/cricrss.php}
# Run the event loop
vwait forever