proc GetHTML { args } {
set query $args;
set cyagent "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)";
set cyagent {Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4}
set cyagent {Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; de) Opera 8.50}
set cyadent {Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; {B960AAFD-E99C-6618-5643-A2686FE2473F}; .NET CLR 1.1.4322)}
#set cyagent "CyNews/${RDF::Ver} (compatible; Linux)";
#set cyagent "Mozilla/4.0"
putcmdlog "get $args"
set token [http::config -useragent $cyagent];
catch { set token [http::geturl $query -timeout 15000] } error;
if {$error!=$token} { return "-1 Error"; }
puts stderr ""; upvar #0 $token state;
set size [array size state]; set getstate [array get state];
if {[string tolower [lindex $state(http) 2]] != "ok"} { return "-1 $state(http)"; }
set htmldata [http::data $token];
http::cleanup $token
regsub -all {\[} $htmldata {(} htmldata
regsub -all {\]} $htmldata {)} htmldata
regsub -all {ä} $htmldata {ae} htmldata
regsub -all {ö} $htmldata {oe} htmldata
regsub -all {ü} $htmldata {ue} htmldata
regsub -all {Ä} $htmldata {Ae} htmldata
regsub -all {Ö} $htmldata {Oe} htmldata
regsub -all {Ü} $htmldata {Ue} htmldata
regsub -all {"} $htmldata {\'} htmldata
regsub -all {&} $htmldata {\&} htmldata
regsub -all { } $htmldata { } htmldata
set htmldata [string map "{sport1.de} {;) #news.de (:} {sport.de} {;) #news.de (:} {ä} {ä} {Ä} {Ä} {ä} {ä} {Ä} {Ä} {ö} {ö} {Ö} {Ö} {ö} {ö} {Ö} {Ö} {ü} {ü} {Ü} {Ü} {ü} {ü} {Ü} {Ü} {ß} {ß} {"} {\'} {&} {&} {€} {\200}" $htmldata]
return $htmldata
}
if ![info exist ::llti] {set ::llti 0; }
if ![info exist ::llt] {putcmdlog "init llt"; set ::llt "";}
if ![info exist ::f1power] {set ::f1power 1}
if ![info exist ::nnr] {set ::nnr 1}
if ![info exist ::lnnr] {set ::lnnr 1}
if ![info exist ::lnt] {set ::lnt [unixtime]}
if ![info exist ::lnnorm] {set ::lnnorm 1}
set tick 0;
proc F1search args {
#return
if {[info exi ::lnnorm] && $::lnnorm} {
if {[clock form [clock sec] -form %u]<5} {
#putcmdlog "dont scan on [clock form [clock sec] -form %a]"
return
}
}
#putcmdlog "search for a news tickID"
# besser: http://sport.rtl.de/formel1/ticker/ticker2.php
set site [GetHTML http://sport.rtl.de/formel1/ticker/ticker2.php]
set ::lastsrc $site
#7000 && $::f1power} {f1off $::botnick [lindex [split $::botname !] 1] $::username #cybex.test ""} {
if {[expr [unixtime]-$::lnt]>7200} {f1off $::botnick [lindex [split $::botname !] 1] $::username #cybex.test ""}
set m [string trimleft [lindex $args 0] 0]; if {$m==""} {set m 0}
if {$args<1} {
putcmdlog "waiting, last news [duration [expr [unixtime]-$::lnt]] ago ($args)"
}
}
if {!$::f1power} {putcmdlog "power off"; return}
set site [GetHTML http://sport.rtl.de/formel1/ticker/t_${::nnr}.html]; set f 0
foreach line [split $site \n] {
#putcmdlog $::nnr:$line
if {[string match *class=\"tt1\"* $line]} { ; # "
set reg1 ""; set reg2 "";
if {$f==0 && [regexp {.*(.*).*} $line temp reg1]} {}
if {$f==1 && [regexp {.*="top">(.*)1355 && [clock format [clock sec] -format %H%M]<1700) \
|| ([clock format [clock sec] -format %u]==6 && [clock format [clock sec] -format %H%M]>1255 && [clock format [clock sec] -format %H%M]<1500)} {
#putmsg #burnmaster "F1 Ticker: $reg2"
#lappend c #burnmaster
} {
#putcmdlog "([clock format [clock sec] -format %u]==7 && [clock format [clock sec] -format %H%M]>1355 && [clock format [clock sec] -format %H%M]<1700) || ([clock format [clock sec] -format %u]==6 && [clock format [clock sec] -format %H%M]>1255 && [clock format [clock sec] -format %H%M]<1500) == [expr {([clock format [clock sec] -format %u]==7 && [clock format [clock sec] -format %H%M]>1355 && [clock format [clock sec] -format %H%M]<1700) || ([clock format [clock sec] -format %u]==6 && [clock format [clock sec] -format %H%M]>1255 && [clock format [clock sec] -format %H%M]<1500)}]"
}
putmsg [join $c ","] "F1 Ticker: $reg2 ($reg1)"
#LinkChan::sendlink "F1" [lindex [split $::botname "!"] 1] ${::botnet-nick} #grandprixlegends pubm "Ticker: $reg2"
set ::llti $reg1; set ::llt $reg2
putcmdlog "set llt to $::llt"
set ::lnt [unixtime]
} {
putcmdlog "the same: $reg2"
}
if {$args<12} {
if {![string is integer $args]} {set args 0}
incr args
if {[expr [unixtime]-$::lnt]<300} {
utimer 5 [list F1time $args]
}
}
return
}
}
}
}
proc F1platz args {
if {!$::f1power} {return}
if {[expr [unixtime]-$::lnt]>700} return
set site [GetHTML http://sport.rtl.de/formel1/ticker/i2_${::nnr}.html]
set pos 0
putcmdlog "get http://www.rtl.de/sport/ticker/formel1/i2_${::nnr}.html"
set delay 2;
foreach line [split $site \n] {
incr delay 3
if [regexp {.*(.*).*(.*).*(.*).*(.*).*(.*).*} $line temp reg1 reg2 reg3 reg4 reg5] {
set reg1 [format %-3s [string trim [string map [list "" "" ""] $reg1]]]
set reg2 [format %-20s [string trim [string map [list "" "" ""] $reg2]]]
set reg3 [format %-13s [string trim [string map [list "" "" ""] $reg3]]]
set reg4 [format %-10s [string trim [string map [list "" "" ""] $reg4]]]
set c [list]
#utimer $delay [list putmsg #grandprixlegends "$reg1 / $reg2 / $reg3 / $reg4"]
#utimer [expr $delay+2] [list putmsg #news.de "$reg1 / $reg2 / $reg3 / $reg4"]
#lappend c #grandprixlegends
#lappend c #news.de
#lappend c #formel1
if {0 && ([clock format [clock sec] -format %u]==7 && [clock format [clock sec] -format %H%M]>1355 && [clock format [clock sec] -format %H%M]<1700) \
|| ([clock format [clock sec] -format %u]==6 && [clock format [clock sec] -format %H%M]>1255 && [clock format [clock sec] -format %H%M]<1500)} {
if {[string is digit [string trim $reg1]] && [string trim $reg1]<6} {
#utimer [expr $delay+3] [list putmsg #burnmaster "$reg1 / $reg2 / $reg3 / $reg4"]
#lappend c #burnmaster
} {
putcmdlog "1: [string is digit $reg1] && $reg1<6 == [expr {[string is digit $reg1] && $reg1<6}] // -$reg1-"
}
}
utimer $delay [list putmsg [join $c ","] "$reg1 / $reg2 / $reg3 / $reg4"]
putcmdlog "1: $reg1 / $reg2 / $reg3 / $reg4"
} elseif [regexp {.*(.*).*\">(.*).*\">(.*).*\">(.*).*\">(.*).*} $line temp reg1 reg2 reg3 reg4] {
set reg1 [format %-3s [string trim [string map [list "" "" ""] $reg1]]]
set reg2 [format %-20s [string trim [string map [list "" "" ""] $reg2]]]
set reg3 [format %-13s [string trim [string map [list "" "" ""] $reg3]]]
set reg4 [format %-10s [string trim [string map [list "" "" ""] $reg4]]]
set c [list]
#utimer $delay [list putmsg #grandprixlegends "$reg1 / $reg2 / $reg3 / $reg4"]
#utimer [expr $delay+2] [list putmsg #news.de "$reg1 / $reg2 / $reg3 / $reg4"]
#lappend c #grandprixlegends
#lappend c #news.de
#lappend c #formel1
if {0 && ([clock format [clock sec] -format %u]==7 && [clock format [clock sec] -format %H%M]>1355 && [clock format [clock sec] -format %H%M]<1700) \
|| ([clock format [clock sec] -format %u]==6 && [clock format [clock sec] -format %H%M]>1255 && [clock format [clock sec] -format %H%M]<1500)} {
if {[string is digit [string trim $reg1]] && [string trim $reg1]<6} {
#utimer [expr $delay+3] [list putmsg #burnmaster "$reg1 / $reg2 / $reg3 / $reg4"]
#lappend c #burnmaster
} {
putcmdlog "1: [string is digit $reg1] && $reg1<6 == [expr {[string is digit $reg1] && $reg1<6}] // -$reg1-"
}
}
utimer $delay [list putmsg [join $c ","] "$reg1 / $reg2 / $reg3 / $reg4"]
putcmdlog "2: $reg1 / $reg2 / $reg3 / $reg4"
}
}
}
proc F1c args {
if {!$::f1power} {return}
if {[expr [unixtime]-$::lnt]>700} return
set site [GetHTML http://sport.rtl.de/formel1/ticker/i2_${::nnr}.html]
set pos 0
putcmdlog "get http://www.rtl.de/sport/ticker/formel1/i2_${::nnr}.html"
set delay 2;
foreach line [split $site \n] {
incr delay 3
if [regexp {.*(.*).*(.*).*(.*).*(.*).*(.*).*} $line temp reg1 reg2 reg3 reg4 reg5] {
set reg1 [format %-3s [string trim [string map [list "" "" ""] $reg1]]]
set reg2 [format %-20s [string trim [string map [list "" "" ""] $reg2]]]
set reg3 [format %-13s [string trim [string map [list "" "" ""] $reg3]]]
set reg4 [format %-10s [string trim [string map [list "" "" ""] $reg4]]]
set c [list]
#utimer $delay [list putmsg #grandprixlegends "$reg1 / $reg2 / $reg3 / $reg4"]
#utimer [expr $delay+2] [list putmsg #news.de "$reg1 / $reg2 / $reg3 / $reg4"]
lappend c #cybex.test
#lappend c #grandprixlegends
#lappend c #news.de
#lappend c #formel1
if {0 && ([clock format [clock sec] -format %u]==7 && [clock format [clock sec] -format %H%M]>1355 && [clock format [clock sec] -format %H%M]<1700) \
|| ([clock format [clock sec] -format %u]==6 && [clock format [clock sec] -format %H%M]>1255 && [clock format [clock sec] -format %H%M]<1500)} {
if {[string is digit [string trim $reg1]] && [string trim $reg1]<6} {
#utimer [expr $delay+3] [list putmsg #burnmaster "$reg1 / $reg2 / $reg3 / $reg4"]
#lappend c #burnmaster
} {
putcmdlog "1: [string is digit $reg1] && $reg1<6 == [expr {[string is digit $reg1] && $reg1<6}] // -$reg1-"
}
}
utimer $delay [list putmsg [join $c ","] "$reg1 / $reg2 / $reg3 / $reg4"]
putcmdlog "1: $reg1 / $reg2 / $reg3 / $reg4"
} elseif [regexp {.*(.*).*\">(.*).*\">(.*).*\">(.*).*\">(.*).*} $line temp reg1 reg2 reg3 reg4] {
set reg1 [format %-3s [string trim [string map [list "" "" ""] $reg1]]]
set reg2 [format %-20s [string trim [string map [list "" "" ""] $reg2]]]
set reg3 [format %-13s [string trim [string map [list "" "" ""] $reg3]]]
set reg4 [format %-10s [string trim [string map [list "" "" ""] $reg4]]]
set c [list]
#utimer $delay [list putmsg #grandprixlegends "$reg1 / $reg2 / $reg3 / $reg4"]
#utimer [expr $delay+2] [list putmsg #news.de "$reg1 / $reg2 / $reg3 / $reg4"]
lappend c #cybex.test
#lappend c #grandprixlegends
#lappend c #news.de
#lappend c #formel1
if {0 && ([clock format [clock sec] -format %u]==7 && [clock format [clock sec] -format %H%M]>1355 && [clock format [clock sec] -format %H%M]<1700) \
|| ([clock format [clock sec] -format %u]==6 && [clock format [clock sec] -format %H%M]>1255 && [clock format [clock sec] -format %H%M]<1500)} {
if {[string is digit [string trim $reg1]] && [string trim $reg1]<6} {
#utimer [expr $delay+3] [list putmsg #burnmaster "$reg1 / $reg2 / $reg3 / $reg4"]
#lappend c #burnmaster
} {
putcmdlog "1: [string is digit $reg1] && $reg1<6 == [expr {[string is digit $reg1] && $reg1<6}] // -$reg1-"
}
}
utimer $delay [list putmsg [join $c ","] "$reg1 / $reg2 / $reg3 / $reg4"]
putcmdlog "2: $reg1 / $reg2 / $reg3 / $reg4"
}
}
}
proc F1c2 args {
if {!$::f1power} {return}
if {[expr [unixtime]-$::lnt]>700} return
set site [GetHTML http://sport.rtl.de/formel1/ticker/i2_${::nnr}.html]
set pos 0
putcmdlog "get http://www.rtl.de/sport/ticker/formel1/i2_${::nnr}.html"
set delay 2;
foreach line [split $site \n] {
incr delay 3
if [regexp {.*(.*).*(.*).*(.*).*(.*).*(.*).*} $line temp reg1 reg2 reg3 reg4 reg5] {
set reg1 [format %-3s [string trim [string map [list "" "" ""] $reg1]]]
set reg2 [format %-20s [string trim [string map [list "" "" ""] $reg2]]]
set reg3 [format %-13s [string trim [string map [list "" "" ""] $reg3]]]
set reg4 [format %-10s [string trim [string map [list "" "" ""] $reg4]]]
set c [list]
#utimer $delay [list putmsg #grandprixlegends "$reg1 / $reg2 / $reg3 / $reg4"]
#utimer [expr $delay+2] [list putmsg #news.de "$reg1 / $reg2 / $reg3 / $reg4"]
#lappend c #grandprixlegends
#lappend c #news.de
lappend c #cybex.test
#lappend c #formel1
if {0 && ([clock format [clock sec] -format %u]==7 && [clock format [clock sec] -format %H%M]>1355 && [clock format [clock sec] -format %H%M]<1700) \
|| ([clock format [clock sec] -format %u]==6 && [clock format [clock sec] -format %H%M]>1255 && [clock format [clock sec] -format %H%M]<1500)} {
if {[string is digit [string trim $reg1]] && [string trim $reg1]<6} {
#utimer [expr $delay+3] [list putmsg #burnmaster "$reg1 / $reg2 / $reg3 / $reg4"]
#lappend c #burnmaster
} {
putcmdlog "1: [string is digit $reg1] && $reg1<6 == [expr {[string is digit $reg1] && $reg1<6}] // -$reg1-"
}
}
utimer $delay [list putmsg [join $c ","] "$reg1 / $reg2 / $reg3 / $reg4"]
putcmdlog "1: $reg1 / $reg2 / $reg3 / $reg4"
} elseif [regexp {.*(.*).*\">(.*).*\">(.*).*\">(.*).*\">(.*).*} $line temp reg1 reg2 reg3 reg4] {
set reg1 [format %-3s [string trim [string map [list "" "" ""] $reg1]]]
set reg2 [format %-20s [string trim [string map [list "" "" ""] $reg2]]]
set reg3 [format %-13s [string trim [string map [list "" "" ""] $reg3]]]
set reg4 [format %-10s [string trim [string map [list "" "" ""] $reg4]]]
set c [list]
#utimer $delay [list putmsg #grandprixlegends "$reg1 / $reg2 / $reg3 / $reg4"]
#utimer [expr $delay+2] [list putmsg #news.de "$reg1 / $reg2 / $reg3 / $reg4"]
#lappend c #grandprixlegends
#lappend c #news.de
#lappend c #formel1
lappend c #cybex.test
if {0 && ([clock format [clock sec] -format %u]==7 && [clock format [clock sec] -format %H%M]>1355 && [clock format [clock sec] -format %H%M]<1700) \
|| ([clock format [clock sec] -format %u]==6 && [clock format [clock sec] -format %H%M]>1255 && [clock format [clock sec] -format %H%M]<1500)} {
if {[string is digit [string trim $reg1]] && [string trim $reg1]<6} {
#utimer [expr $delay+3] [list putmsg #burnmaster "$reg1 / $reg2 / $reg3 / $reg4"]
#lappend c #burnmaster
} {
putcmdlog "1: [string is digit $reg1] && $reg1<6 == [expr {[string is digit $reg1] && $reg1<6}] // -$reg1-"
}
}
utimer $delay [list putmsg [join $c ","] "$reg1 / $reg2 / $reg3 / $reg4"]
putcmdlog "2: $reg1 / $reg2 / $reg3 / $reg4"
}
}
}
proc f1on {nick host hand chan text} {
if {$::f1power} { putmsg $chan "Der Ticker is bereits an"; return }
if {![string is digit $text] || [string trim $text]==""} {
putmsg $chan "use: !f1on "
} {
set ::nnr $text
set ::f1power 1
set ::lnt [unixtime]
catch {
bind time - * F1timer
#bind time - "03 *" F1platz
#bind time - "18 *" F1platz
#bind time - "33 *" F1platz
#bind time - "48 *" F1platz
}
putmsg $chan "Mache Ticker auf $::nnr an"
}
}
proc f1off {nick host hand chan text} {
catch {
unbind time - * F1timer
unbind time - "03 *" F1platz
unbind time - "18 *" F1platz
unbind time - "33 *" F1platz
unbind time - "48 *" F1platz
}
if {!$::f1power} { putmsg $chan "Ticker ist schon aus"; return }
set ::f1power 0
putmsg $chan "Ticker is aus"
}
bind time - * F1timer
#bind time - "03 *" F1platz
#bind time - "18 *" F1platz
#bind time - "33 *" F1platz
#bind time - "48 *" F1platz
bind time - "13 *" F1search
bind time - "28 *" F1search
bind time - "43 *" F1search
bind time - "58 *" F1search
bind time - "15 *" F1search
bind time - "30 *" F1search
bind time - "45 *" F1search
bind time - "00 *" F1search
bind time - "17 *" F1search
bind time - "32 *" F1search
bind time - "47 *" F1search
bind time - "02 *" F1search
bind pub - !f1on f1on
bind pub - !f1off f1off
bind pub - !f1tabelle F1platz
bind pub - !f1c F1c
# Silverstone
bind time - "45 11 09 05 2006" {f1ontimer}
bind time - "45 14 09 05 2006" {f1ontimer}
bind time - "15 10 10 05 2006" {f1ontimer}
bind time - "15 13 10 05 2006" {f1ontimer}
bind time - "45 12 11 05 2006" {f1ontimer}
# Kanada
bind time - "45 16 23 05 2006" {f1ontimer}
bind time - "45 19 23 05 2006" {f1ontimer}
bind time - "45 15 24 05 2006" {f1ontimer}
bind time - "45 18 24 05 2006" {f1ontimer}
bind time - "45 18 25 05 2006" {f1ontimer}
# USA
bind time - "45 17 30 05 2006" {f1ontimer}
bind time - "45 20 30 05 2006" {f1ontimer}
bind time - "45 16 01 06 2006" {f1ontimer}
bind time - "45 19 01 06 2006" {f1ontimer}
bind time - "45 19 02 06 2006" {f1ontimer}
# Frankreich
bind time - "45 10 14 06 2006" {f1ontimer}
bind time - "45 13 14 06 2006" {f1ontimer}
bind time - "45 10 15 06 2006" {f1ontimer}
bind time - "45 13 15 06 2006" {f1ontimer}
bind time - "45 13 16 06 2006" {f1ontimer}
# DE
bind time - "45 10 28 06 2006" {f1ontimer}
bind time - "45 13 28 06 2006" {f1ontimer}
bind time - "45 10 29 06 2006" {f1ontimer}
bind time - "45 13 29 06 2006" {f1ontimer}
bind time - "45 13 30 06 2006" {f1ontimer}
proc f1ontimer args {
f1on $::botnick [lindex [split $::botname !] 1] $::username #cybex.test $::lnnr
}