######################################################################### # # # 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 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 "
" $text "" text regsub -all "" $text "" text regsub -all "
" $text "" text regsub -all {} $text " " text if { $txt == "spielstand" } { if { [string match "*" $text] == "1" } { close $sock return ok } if { [string match "" $text 0] +1] end]" } } else { if { [string match "" $text] == "1" } { close $bldat close $sock return ok } if { $blline == "1" } { set blwrite "1" set blline "2" } if { [string match "*" $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..."