All pastes #913432 Raw Edit

Vermischtes

public text v1 · immutable
·published 2008-02-22 01:47 UTC
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..."