proc tv:connect_callback { http } {
        set html [ egghttp:data $http ]
        egghttp:cleanup $http
        foreach line [ split $html "\n" ] {
                if { [ regexp -- {^<tr><td class\=tv align\=left>.*$} $line this_line ] } { break }
        }
        regsub -all -- {<br>} $this_line "\n" this_line
        foreach line [ split $this_line "\n" ] {
                if { [ regexp -- {h: <b>(\d+\:\d+)</b>\s*-\s*(.*)\s<b>(.*)</b>$} $line all ora tipo trasm ] } {
                        regsub -- {\.} $ora {:} ora
                        set tipo [ lindex $tipo 0 ]
                        set tipo [ string tolower $tipo ]
                        regsub -nocase -- {<a href\=javascript.*class\=cellatv>} $trasm {} trasm
                        regsub -nocase -- {</a>} $trasm {} trasm
                        regsub -all -- {(\d+)\.(\d+)} $trasm {\1:\2} trasm
                        regsub -nocase -- {<a class\=.*>} $trasm {} trasm
                        regsub -all -- {a~R$} $trasm {à} trasm
                        regsub -all -- {e~R$} $trasm {è} trasm
                        regsub -all -- {i~R$} $trasm {i} trasm
                        regsub -all -- {o~R$} $trasm {ò} trasm
                        regsub -all -- {u~R$} $trasm {ù} trasm
                        regsub -all -- {a~R } $trasm {à } trasm
                        regsub -all -- {e~R } $trasm {è } trasm
                        regsub -all -- {i~R } $trasm {ì } trasm
                        regsub -all -- {o~R } $trasm {ò } trasm
                        regsub -all -- {u~R } $trasm {ù } trasm
                        regsub -all -- {~R} $trasm {'} trasm
                        putlog "::DEBUG:: $ora $tipo $trasm $canale"
                        switch -- $canale {
                                10 { set canale "Rai1" }
                                21 { set canale "Rai2" }
                                23 { set canale "Rai3" }
                                1 { set canale "Can5" }
                                3 { set canale "Ita1" }
                                7 { set canale "Rete4" }
                                2 { set canale "La7" }
                                36 { set canale "MTV" }
                                106 { set canale "ReteA" }
                        }
                        puts $tv_file "$canale $ora $tipo $trasm"
                }
        }      
}

proc tv:fetch {} {
        set tv_file [ open tv.db w ]
        foreach canale { "10" "21" "23" "1" "3" "7" "2" "36" "106" } {
                set url "http://tv.lospettacolo.it/palinsesti.asp?comando=canale&dato=$canale"
                putlog "::DEBUG:: $canale"
                set http [ egghttp:geturl $url tv:connect_callback ]
        }
}