rendered paste body#########################################################################
# #
# Bundesliga Live Ticker #
# VERSION: 0.2 beta #
# #
# DIESES SCRIPT BITTE NICHT ÄNDERN !!! #
# SCRIPT TEILE BITTE NICHT WEITER VERARBEITEN FÜR EIGENE SCRIPTE !!! #
# #
# #
# #
# Dieses Bundesliga Live Ticker Script benutzt den HTML #
# basierten Ticker von rp-online.de um überhaupt einen #
# Live Ticker im IRC möglich zu machen. #
# #
# #
# Um eine Liste der möglichen Befehle des Scriptes zu erhalten: #
# #
# /msg <botnick> bl hilfe #
# #
# #
# Bitte bei der Konfiguration in dieser Datei auf die #
# Kommentare achten! #
# #
# #
# #
# Wichtiges: #
# #
# Nach dem starten oder rehashen des Eggdrops wird der #
# Ticker automatisch ausgeschaltet. Somit wird verhindert, #
# das der Eggdrop ständig die Webseite abfragt, obwohl kein #
# Bundesliga Spiel stattfindet. #
# #
# #
# #
# Falls ein Bug auftaucht, bitte eine Mail mit #
# genauer Beschreibung an mich senden. #
# #
# Bei Kritik und Vorschlägen einfach Kontakt #
# mit mir aufnehmen. #
# #
# #
# Copyright © 2005 - 2006 CMF2000 #
# #
# #
# Kontakt: #
# #
# Web: http://www.hoax-irc.net #
# #
# Mail: CMF2000@hoax-irc.net #
# #
# IRC: irc.hoax-irc.net #platinum #
# #
#########################################################################
############## Konfiguration ##############
## Hier wird eingestellt, welche Bundesliga der Ticker abrufen soll.
## Beispiel: set bl "1" für die Erste Bundesliga
## set bl "2" für die Zweite Bundesliga
set bl "1"
## Beispiel: Für einen Channel: set blchannels "#fussball"
## Beispiel: Für mehrere Channels: set blchannels "#fussball,#channel2,#channel3"
## Wichtig: Bei mehreren Channels nicht das Komma zwischen den einzelnen Channels vergessen!
set blchannels "#Cr4cKh0uZ3-atZ3n"
## Hier wird in Sekunden eingestellt, in welchen Zeitabständen der Ticker arbeiten soll.
## Die Zeit sollte nicht zu gering gewählt werden, weil jedesmal die rp-online Webseite abgerufen wird.
## Also auch am besten den Ticker ausschalten, wenn kein Bundesliga Spiel stattfindet.
## Sinnvoll ist hier ein Wert zwischen 60 und 120 Sekunden.
set bltime "120"
############## AB HIER NICHTS ÄNDERN ##############
bind msg - bl bundesliga:msg
set blversion "0.2 beta"
set blfile "blticker.tmp"
set blticker "0"
file delete $blfile
proc bundesliga:msg { nick uhost hand txt } {
global blticker blversion blfile botnick
if { $txt == "hilfe" } {
putserv "NOTICE $nick :Befehle (Botmaster):"
putserv "NOTICE $nick :Ticker einschalten => /msg $botnick bl an"
putserv "NOTICE $nick :Ticker ausschalten => /msg $botnick bl aus"
putserv "NOTICE $nick :--"
putserv "NOTICE $nick :Befehle (Public):"
putserv "NOTICE $nick :Ticker Hilfe (diese hier) => /msg $botnick bl hilfe"
putserv "NOTICE $nick :Ticker Version => /msg $botnick bl version"
putserv "NOTICE $nick :Ticker Status => /msg $botnick bl status"
putserv "NOTICE $nick :-"
putserv "NOTICE $nick :Spielstände anzeigen => /msg $botnick bl spielstand"
}
if { [matchattr [finduser *!$uhost] m] } {
if { $txt == "an" } {
if { $blticker == "0" } {
set blticker "1"
putserv "NOTICE $nick :Bundesliga Live Ticker wird eingeschaltet."
utimer 5 bundesliga:ticker:start
} else {
putserv "NOTICE $nick :Bundesliga Live Ticker ist bereits eingeschaltet."
}
}
if { $txt == "aus" } {
if { $blticker == "1" } {
set blticker "0"
file delete $blfile
putserv "NOTICE $nick :Bundesliga Live Ticker wird ausgeschaltet."
} else {
putserv "NOTICE $nick :Bundesliga Live Ticker ist bereits ausgeschaltet."
}
}
}
if { $txt == "version" } {
putserv "NOTICE $nick :Bundesliga Live Ticker $blversion (http://www.hoax-irc.net)"
}
if { $txt == "status" } {
if { $blticker == "1" } {
putserv "NOTICE $nick :Bundesliga Live Ticker ist eingeschaltet."
} else {
putserv "NOTICE $nick :Bundesliga Live Ticker ist ausgeschaltet."
}
}
if { $txt == "spielstand" } {
if { [bundesliga:ticker $nick $txt] != "ok" } {
putserv "NOTICE $nick :Bundesliga Live Ticker ist ausgeschaltet."
}
}
}
proc bundesliga:ticker:start { } {
global bltime
if { [bundesliga:ticker 0 0] == "ok" } {
utimer $bltime bundesliga:ticker:start
}
}
proc bundesliga:ticker { nick txt } {
global bl blticker blversion blfile blchannels
if { $blticker == "1" } {
if [catch { socket ticker.rp-online.de 80 } sock] {
putlog "Bundesliga Live Ticker $blversion - Keine Verbindung zum Server."
set blticker "0"
file delete $blfile
return 0
}
if { $txt != "spielstand" } {
if { [file exists $blfile] } {
set bldat [open $blfile]
set bllastline [gets $bldat]
close $bldat
} else {
set bllastline "0"
}
set bldat [open $blfile w]
set blwrite "0"
set blline "0"
set blstartline "0"
}
if { $bl == "2" } {
set blurl "zweiteliga"
set blliga "Zweite"
} else {
set blurl "bundesliga"
set blliga "Erste"
}
puts $sock "GET http://ticker.rp-online.de/$blurl/ticker.html HTTP/1.0"
puts $sock "User-Agent: Bundesliga Live Ticker $blversion (Eggdrop/IRC)"
puts $sock ""
flush $sock
while { [eof $sock] != 1 } {
set text "[gets $sock]"
regsub -all "<*/*td>" $text " " text
regsub -all "<*/*i>" $text "" text
regsub -all "<*/*p>" $text "" text
regsub -all "<*/*b>" $text "" text
regsub -all "<*/*B>" $text "" text
regsub -all "<*/*br>" $text "" text
regsub -all "<br/>" $text "" text
regsub -all "</tr>" $text "" text
regsub -all "<hr>" $text "" text
regsub -all {<td align="center">} $text " " text
if { $txt == "spielstand" } {
if { [string match "<!-- ticker -->*" $text] == "1" } {
close $sock
return ok
}
if { [string match "<tr class=*" $text] == "1" } {
putserv "NOTICE $nick :[string range $text [expr [string first ">" $text 0] +1] end]"
}
} else {
if { [string match "<!-- /ticker -->" $text] == "1" } {
close $bldat
close $sock
return ok
}
if { $blline == "1" } {
set blwrite "1"
set blline "2"
}
if { [string match "<!-- ticker -->*" $text] == "1" } {
set blline "1"
set blstartline "1"
} elseif { ([string match "Spiel:*" $text] == "1") || ([string match "Szenenwechsel:*" $text] == "1") } {
set blline "1"
set blwrite "0"
}
if { $blline == "1" } {
if { $blstartline == "1" } {
set blfirstline [string range $text [expr [string first "-->" $text 0] +3] end]
} else {
set blfirstline $text
}
}
if { ($blline == "2") && ($blstartline == "1") } {
set bllastfirstline [string range $blfirstline [expr [string first ":" $blfirstline 0] +2] end]
puts $bldat $bllastfirstline|$text
set blhead "1"
set blstartline "0"
}
if { $blwrite == "1" } {
if { ($bllastline == $bldat) || ([string match "[string range $bllastline [expr [string first "|" $bllastline 0] +1] end]" $text] == "1") } {
close $bldat
close $sock
return ok
}
if { $blhead == "1" } {
putserv "PRIVMSG $blchannels :4Bundesliga Live Ticker ($blliga Liga):"
set blhead "0"
}
if { $blline == "0" } {
putserv "PRIVMSG $blchannels :$text"
}
if { $blline == "2" } {
putserv "PRIVMSG $blchannels :$blfirstline"
putserv "PRIVMSG $blchannels :$text"
set blline "0"
}
if { $bllastline == "0" } {
close $bldat
close $sock
return ok
}
}
}
}
}
}
putlog "Bundesliga Live Ticker $blversion wird geladen..."