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 }