#!/bin/sh
#----------------------------------------------------------------------
#
# f1info.sh
#
# V1.4h
#
# Formel 1 Infos anzeigen
#
# Quelle: http://formel1.motorsport-total.com
#
# Flexmenu Plugin und TuXWetter Plugin muessen installiert sein
#
# Aufruf uebers Flexmenu:
#
# Dreambox:
# ACTION=&Formel 1 Info,/var/script/f1info.sh makemainmenu ; if [ -f /tmp/f1info_main.inc ] ; then /var/bin/shellexec /tmp/f1info_main.inc ; rm /tmp/f1info* ; else msgbox popup='Fehler bei der Erstellung des Menues' timeout=5 ; fi
#
# DBox:
# ACTION=&Formel 1 Info,/var/plugins/f1info.sh makemainmenu ; if [ -f /tmp/f1info_main.inc ] ; then /var/plugins/shellexec /tmp/f1info_main.inc ; rm /tmp/f1info* ; else msgbox popup='Fehler bei der Erstellung des Menues' timeout=5 ; fi
#
# V1.0 erster Versuch Teaminfos
# V1.1 komplett ueberarbeitet und erweitert
# V1.2 Menu Diverses eingebaut
# V1.2a Reglement Seite hinzugefuegt
# V1.2b TV Timer eingebaut
# V1.2c Umlaute gefixt ( Nuerburgring ) , Reihenfolge der Rennen gedreht,
# nur die beim Aufruf verfuegbaren Renn-Ergebnisse anzeigen
# V1.3 Menu Statistik hinzugefuegt
#
# V1.3a Aenderung der Abfrage fuer den Busybox Fehler echo -e "\r"
#
# V1.4 Aenderungen fuer die Saison 2007
#
# V1.4a Anpassung fuer dbox
#
# V1.4b Aenderung wegen libcurl Suchpfad
#
# V1.4c Aenderungen fuer die Saison 2008
#
# V1.4d Teamkurzinfo -> Anzeige der Fahrzeugbilder geaendert, es werden jetzt gif und jpg Bilder verarbeitet
#
# V1.4e ....
#
# V1.4f div. Anpassungen wegen Aenderungen im Seitenaufbau von formel1.motorsport-total.com
#
# V1.4g Fehler bereinigt dbox Ausgabe Rekorde, Sounds und 'Coole Sprueche'
#
# V1.4h Anpassungen wegen Aenderungen im Seitenaufbau von formel1.motorsport-total.com
#
# V1.4ha Saison 2010 by FlatTV
#
# V1.5 Saison 2011 by FlatTV (coolstream)
# Ausgabe bei fehlendem Tuxwetter
#
# V1.5a Saison 2012 by zzzZZ
#
# Author: barabas
#----------------------------------------------------------------------
# set -x
#-------------------Boxtyp ermitteln Dreambox/DBox----------------------
#boxtype=`uname -n`
boxtype="dbox"
[ $boxtype != "dreambox" -a $boxtype != "dm7020" ] && boxtype="dbox"
if [ $boxtype = "dbox" ] ; then
# Pfad zur shellexec, tuxwetter und msgbox
shellexec="/bin/shellexec"
msgbox="/bin/msgbox"
input="/bin/input"
tuxwetter="/bin/tuxwetter"
#tuxwetter="/bin/msgbox popup='Anzeige leider nicht m~oglich' timeout=5; exit;"
local_url="http://localhost"
libcurl=":"
else
# Flagdatei fuer TV Progamm und Soundmenu DEPENDON=....
# Die Menues nur auf Dreamboxen anzeigen
touch /tmp/f1info_menu.flag
# LD_LIBRARY_PATH setzen wegen libcurl Problem auf der Dreambox
libcurl="export LD_LIBRARY_PATH=/tmp:/var/lib:/lib:/var/bin/tuxwet"
$libcurl
#-----------------------------------------------------------------------
# Dreambox HTTP User Authentifizierung User Passwort hier aendern
# oder in der Datei pass.txt im Skriptverzeichnis hinterlegen
#-----------------------------------------------------------------------
scriptname=`basename $0`
passfile=`echo $0 | sed "s:$scriptname:pass.txt:"`
if [ -f $passfile ] ; then
read auth <$passfile
else
auth="root:dreambox"
fi
# Pfad zur shellexec, tuxwetter und msgbox
shellexec="/bin/shellexec"
msgbox="/bin/msgbox"
input="/bin/input"
tuxwetter="/bin/tuxwetter"
local_url="http://$auth@localhost/root"
# Volume Offset fuer die Lautstaerkeanhebung bei MP3 Wiedergabe
#-----------------------------------------------------------------------
volumeoffset=10
#-----------------------------------------------------------------------
# MP3 File lokal ablegen am besten auf hdd wegen Platz
# geht natuerlich auch auf /mnt/usb etc.
#-----------------------------------------------------------------------
mp3dir="/hdd/mp3files"
#-----------------------------------------------------------------------
if [ ! -d $mp3dir ]
then
mkdir $mp3dir
fi
fi
# check for widescreen (> 800)
wide=$(cat /var/tuxbox/config/neutrino.conf | grep screen_width= | cut -d'=' -f2)
if [ $wide -gt 800 ]; then
FONTSIZE=24
LINESPP=24
else
FONTSIZE=24
LINESPP=15
fi
# check echo Fehler busybox
[ `echo "\r" | grep -c "\r"` -gt 0 ] && alias echo="echo -e"
# Steuerzeichen
TAB=`echo "\t"`
CRLF=`echo "\r"`
CR=`echo "\n"`
# Tempfile
tempfile=/tmp/f1info.txt
# Menutitel
menutitel="Formel 1 Infos"
#---------------------------------------------------------------------
# Flexmenu Include Files
#---------------------------------------------------------------------
menumain="/tmp/f1info_main.inc"
menuteamkurz="/tmp/f1info_teamkurz.inc"
menustrecke="/tmp/f1info_strecke.inc"
menustreckendetail="/tmp/f1info_streckendetail.inc"
menufahrerwertung="/tmp/f1info_fahrerwertung.inc"
menufahrerinfo="/tmp/f1info_fahrerinfo.inc"
menuteamwertung="/tmp/f1info_teamwertung.inc"
menuteaminfo="/tmp/f1info_teaminfo.inc"
menuergmain="/tmp/f1info_ergmain.inc"
menuergdetail="/tmp/f1info_ergdetail.inc"
menusoundmain="/tmp/f1info_sound.inc"
menutv="/tmp/f1info_tv.inc"
menustatmain="/tmp/f1info_statmain.inc"
menustatdetail="/tmp/f1info_statdetail.inc"
tuxwetconf="/tmp/f1info_tuxwet.inc"
#---------------------------------------------------------------------
# URL
#---------------------------------------------------------------------
urlbase="http://formel1.motorsport-total.com"
urlteam="http://formel1.motorsport-total.com/f1/saison/teams.html"
urltermin="http://formel1.motorsport-total.com/f1/saison/termin.html"
urlwertung="http://formel1.motorsport-total.com/f1/wmstand.html"
urlergmain="http://formel1.motorsport-total.com/f1/ergeb/"
urlsound="http://formel1.motorsport-total.com/f1/audio/"
urlrekorde="http://formel1.motorsport-total.com/f1/rekorde.html"
urlsprueche="http://formel1.motorsport-total.com/f1/cool/?p=-1"
urlbilder="http://formel1.motorsport-total.com/f1/bilder/"
urlregel="http://formel1.motorsport-total.com/f1/reglement.html"
urltv="http://classic.klack.de/klackFormel1RSS.xml"
urlfahrerstat="http://formel1.motorsport-total.com/f1/db/drivers/stats/index.php"
urlteamstat="http://formel1.motorsport-total.com/f1/db/teams/stats/index.php"
urlenginestat="http://formel1.motorsport-total.com/f1/db/engines/stats/index.php"
urlnews="http://www2.motorsport-total.com/f1/news.html"
#------------------- Hauptmenu zusammenbauen ------------------
makemainmenu () {
echo "
FONT=/share/fonts/micron_bold.ttf
FONTSIZE=$FONTSIZE
LINESPP=$LINESPP
MENU=Formel1 2012
ACTION=&Ergebnisse/Startaufstellung, ( $0 ergmain $urlergmain ; if [ -f $menuergmain ] ; then $shellexec $menuergmain ; else $msgbox popup='Fehler bei der Ermittlung der Daten' timeout=5 ;fi )
ACTION=&Termine und Strecken, ( $0 streckeninfo $urltermin ; if [ -f $menustrecke ] ; then $shellexec $menustrecke ; else $msgbox popup='Fehler bei der Ermittlung der Daten' timeout=5 ;fi )
ACTION=&Fahrerwertung und Infos, ( $0 fahrerwertung $urlwertung ; if [ -f $menufahrerwertung ] ; then $shellexec $menufahrerwertung ; else $msgbox popup='Fehler bei der Ermittlung der Daten' timeout=5 ;fi )
ACTION=&Teamwertung und Infos, ( $0 teamwertung $urlwertung ; if [ -f $menuteamwertung ] ; then $shellexec $menuteamwertung ; else $msgbox popup='Fehler bei der Ermittlung der Daten' timeout=5 ;fi )
DEPENDON=&Formel 1 TV Termine, ( $0 tv $urltv ; if [ -f $menutv ] ; then $shellexec $menutv ; else $msgbox popup='Fehler bei der Ermittlung der Daten' timeout=5 ;fi ),/tmp/f1info_menu.flag
COMMENT=*
MENU=Statistik
ACTION=&Fahrerstatistiken, ( $0 statmain $urlfahrerstat "Fahrerstatistiken" ; if [ -f $menustatmain ] ; then $shellexec $menustatmain ; else $msgbox popup='Fehler bei der Ermittlung der Daten' timeout=5 ;fi )
ACTION=&Teamstatistiken, ( $0 statmain $urlteamstat "Teamstatistiken" ; if [ -f $menustatmain ] ; then $shellexec $menustatmain ; else $msgbox popup='Fehler bei der Ermittlung der Daten' timeout=5 ;fi )
ACTION=&Motorstatistiken, ( $0 statmain $urlenginestat "Motorstatistiken" ; if [ -f $menustatmain ] ; then $shellexec $menustatmain ; else $msgbox popup='Fehler bei der Ermittlung der Daten' timeout=5 ;fi )
ENDMENU
MENU=Diverses
ACTION=&Bilder aktuelles Rennwochenende, ( $0 picactwe $urlbilder ; if [ -f $tuxwetconf ] ; then $libcurl ; $tuxwetter $tuxwetconf ; else $msgbox popup='Fehler bei der Ermittlung der Daten' timeout=5 ;fi )
DEPENDON=&Sounds, ( $0 sounds $urlsound ; if [ -f $menusoundmain ] ; then $shellexec $menusoundmain ; else $msgbox popup='Fehler bei der Ermittlung der Daten' timeout=5 ;fi ),/tmp/f1info_menu.flag
ACTION=&Formel 1 Rekorde, ( $0 rekorde $urlrekorde ; if [ -f $tempfile ] ; then $libcurl ; $tuxwetter 'TXTHTML=Rekorde,$local_url/$tempfile||' ; else $msgbox popup='Fehler bei der Ermittlung der Daten' timeout=5 ;fi )
ACTION=&Formel 1 Reglement, ( $0 regel $urlregel ; if [ -f $tempfile ] ; then $libcurl ; $tuxwetter 'TXTHTML=Reglement,$local_url$tempfile||' ; else $msgbox popup='Fehler bei der Ermittlung der Daten' timeout=5 ;fi )
ACTION=&Coole Spr~uche, $0 sprueche $urlsprueche
ENDMENU
ENDMENU" >$menumain
}
#------------------- Teamkurzinfo Menu zusammenbauen ------------------
teamkurzinfo () {
url="$1"
echo "FONT=/share/fonts/micron_bold.ttf
FONTSIZE=$FONTSIZE
LINESPP=$LINESPP" >$menuteamkurz
wget -O- $url | sed "# CRLF fix
s/$CRLF//g" |\
#--------------------------------------------------------
# Menu Fahrer und Teams Menu zusammenbauen
#--------------------------------------------------------
sed " # nur die URL Tags bearbeiten
/Formel 1: Fahrer & Teams/,/<\!-- \/PM -->/!d
s/Formel 1: Fahrer & Teams/Teams/g
# Titel zum Menutitel machen
s// @-@ MENU=/
# TEAM markieren
s:
.*=0> :@-@ ENDMENU\n@-@ MENU=:g
# Bild markieren
#s:: @-@ ACTION=\&Bild vom Fahrzeug,$tuxwetter \'PICTURE=Fahrzeug Bild,:g
# Fahrer markieren
s: | : @-@ COMMENT=:g
# Fahrer Land markieren
s: | : a@-@ :g
# Fahrer Alter markieren
s: | : a@-@ :g
# Fahrer Startnummer markieren
s: | Startnummer:\n@-@ COMMENT=\*Startnummer:g
# Fahrer Testfahrer markieren
s:^.*Testfahrer: @-@ COMMENT=\*Testfahrer:g
# Alle Tags loeschen
s/<[^>]*>//g
# alles ausser a und @ am Anfang loeschen
s/^[^a@]*//g" |\
sed "# nur die markierten Zeilen ausgeben
/@-@/!d
# GIF/JPG URL freitstellen
s/\.gif.*$/\.gif\'\n/g
s/\.jpg.*$/\.jpg\'\n/g
s/ //g" |\
# Falls eine Zeile mit einem "a" beginnt,
# fuege die vorhergehende hinzu und ersetzt das "a" mit einem Leerzeichen.
sed -e :a -e '$!N;s/\na/ /;ta' -e 'P;D' |\
# Markierung am Anfang entfernen
sed "s/^@-@//g
# 2.te Zeile ueberfluessiges ENDMENU entfernen
2d
# Markierung dazwischen durch * ersetzen
s/ @-@ / \* /g" >>$menuteamkurz
# ENDMENU enfuegen
echo " ENDMENU" >>$menuteamkurz
# ENDMENU Anweisung von Menu Fahrer und Teams
echo "ENDMENU" >>$menuteamkurz
}
# ------------------- Termine und Streckeninfos ausgeben -------------------
streckeninfo () {
url="$1"
#--------------------------------------------------------
# Terminkalender zusammenbauen
#--------------------------------------------------------
echo "FONT=/share/fonts/micron_bold.ttf
FONTSIZE=$FONTSIZE
LINESPP=$LINESPP
MENU=Termine und Strecken" >$menustrecke
wget -O- $url | sed "# CRLF fix
s/$CRLF//g" |\
sed "/ | 1.<\/td>/,/<\/table>/!d" |\
sed -e :a -e '/<\/td>$/N; s/<\/td>\n//; ta' |\
sed "//@/g
s/<[^>]*>/@/g
s/ *@/@/g
s/@ */@/g
s/@@/@/g
s/^@//
s/@$//" |\
# http://formel1.motorsport-total.com/f1/saison/Melbourne.html
# /Melbourne.html@Australien / Melbourne@16. März 2008@05:30 Uhr@MEZ@
awk -v script=$0 -v urlbase=$urlbase -v shellexec=$shellexec -v menustreckendetail=$menustreckendetail '
BEGIN {
FS="@"
}
{
# nur Streckenamen ausgeben wegen Platz
split($2,strecke,"/")
gsub(" ","",strecke[2])
printf("ACTION=&%s %s %s, ( %s streckendetail %s '\''%s'\'' ; %s %s )\n",strecke[2],$3,$4,script ,urlbase "/f1/saison" $1,strecke[2],shellexec,menustreckendetail )
}' >>$menustrecke
# ENDMENU Anweisung Termine und Strecken
echo "ENDMENU" >>$menustrecke
# ENDMENU Anweisung Formel 1 Infos
echo "ENDMENU=rm /tmp/f1info*" >>$menustrecke
}
# ------------------- Streckendetails ausgeben -------------------
streckendetail () {
url="$1"
strecke="$2"
# bessere Streckenbilder bei der ARD :-)
#urlstrepic="http://sport.ard.de/sp/formel1/rennen/img/strecken2006"
urlstrepic="http://www.sportschau.de/sp/formel1/rennen/img/strecken2006"
urlstrepic2="http://sport.ard.de/sp/portrait/motorsport/formel1/img/strecken"
urlstrepic3="http://sport.ard.de/sp/formel1/rennen/img"
urlstrepic4="http://www.motorsport-total.com/f1/saison/strecken"
# http://sport.ard.de/sp/portrait/motorsport/formel1/img/strecken/malaysia_g.gif
# http://sport.ard.de/sp/formel1/rennen/img/strecken2006/bahrain_400q.gif
#http://sport.ard.de/sp/formel1/rennen/img/fuji_circuit_400.gif
case "$strecke" in
*Melbourne*) picurl="${urlstrepic4}/au_gr.gif" ;;
*Sepang*) picurl="${urlstrepic4}/mal_gr.gif" ;;
*Schanghai*) picurl="${urlstrepic4}/chi_gr.gif" ;;
*Manama*) picurl="${urlstrepic4}/04_bah.jpg";; # "http://www.sportschau.de/sp/portrait/formel1/strecken/img/2011/bahrain_405_250.jpg" ;;
*Barcelona*) picurl="${urlstrepic4}/esp_gr.gif" ;;
*Carlo*) picurl="${urlstrepic4}/mon_gr.gif" ;;
*Montr*al*) picurl="${urlstrepic4}/can_gr.gif" ;;
*Valencia*) picurl="${urlstrepic4}/eur_gr.gif" ;;
*Silverstone*) picurl="${urlstrepic4}/uk_gr.gif" ;;
*Hockenheim*) picurl="${urlstrepic4}/10_deu.jpg";; #"http://www.sportschau.de/sp/portrait/formel1/strecken/img/2011/hockenheim_405_250.jpg" ;;
*Budapest*) picurl="${urlstrepic4}/hun_gr.gif" ;;
*Francorchamps*) picurl="${urlstrepic4}/bel_gr.gif" ;;
*Monza*) picurl="${urlstrepic4}/ita_gr.gif" ;;
*Singapur*) picurl="${urlstrepic4}/sin_gr.gif" ;;
*Suzuka*) picurl="${urlstrepic4}/jap_gr.gif" ;;
*Yeongam*) picurl="${urlstrepic4}/kor_gr.gif" ;;
*Noida*) picurl="${urlstrepic4}/in_gr.gif" ;;
*AbuDhabi*) picurl="${urlstrepic4}/abu_gr.gif" ;;
*Austin*) picurl="${urlstrepic4}/19_usa.jpg";; #"http://www.sportschau.de/sp/portrait/formel1/strecken/img/2011/austin_405.jpg" ;;
*Paulo*) picurl="${urlstrepic4}/bra_gr.gif" ;;
*Lumpur*) picurl="${urlstrepic2}/malaysia_g.gif" ;;
*Imola*) picurl="${urlstrepic2}/sanmarino_g.gif" ;;
*burgring*) picurl="${urlstrepic}/europa_400q.gif" ;;
*Indianapolis*) picurl="${urlstrepic}/usa_400q.gif" ;;
*Magny*) picurl="${urlstrepic}/frankreich_400q.gif" ;;
*Istanbul*) picurl="${urlstrepic}/06_tuerkei_400q.gif" ;;
*Fuji*) picurl="${urlstrepic3}/fuji_circuit_400.gif" ;;
esac
echo "FONT=/share/fonts/micron_bold.ttf
FONTSIZE=$FONTSIZE
LINESPP=$LINESPP
MENU=Streckeninfo $strecke" >$menustreckendetail
zzdata=$(wget -O- $url | sed "# CRLF fix
s/$CRLF//g" |\
sed "/Fakten/,/Linktipps/!d
s/^[ ]*//g
s/^.*/@-@/
s/^.* | /@-@/
s/\ä/~a/g
s/\ü/~u/g
s/'//g
s/.gif.*$/.gif/
s/<[^>]*>//g" |\
sed '/@-@/!d' |\
# Falls eine Zeile mit einem "@-@" beginnt,
# fuege die vorhergehende hinzu
sed -e :a -e '$!N;s/\n@-@/@-@/;ta' -e 'P;D') # |\
#neu: @-@Albert Park Melbourne@-@5.303 Meter@-@58@-@307,574 km@-@MEZ +10 Stunden@-@04:00 Uhr MEZ@-@http://www.motorsport-total.com/f1/saison/strecken/au_kl.gif@-@Von 1996 bis 2005 begann
if [ "$strecke" != "Noida" ]; then
echo "$zzdata" | awk -v tuxwetter=$tuxwetter -v strecke="$strecke" -v picurl=$picurl -v libcurl="$libcurl" 'BEGIN
{
FS="@-@"
}
{
split($9,wort," ")
for(x in wort)
y=y+1
for(x=1;x<=y;x++)
{
satz=sprintf("%s %s",satz,wort[x])
if(x==10 || x==20 || x==30 || x==40 || x==50 || x==60 || x==70 || x==80 || x==90 )
satz=sprintf("%s~n",satz)
}
printf("ACTION=&Strecke anzeigen, %s ; %s '\''PICTURE=Strecke anzeigen,%s'\''\n",libcurl,tuxwetter,picurl)
printf("ACTION=&Portrait,msgbox title='\''Streckenportrait %s'\'' msg='\''%s'\'' size=23 \n",strecke,satz)
printf("COMMENT=*\n")
printf("COMMENT=L~ange:~t %s\n",$3)
printf("COMMENT=Runden:~t %s\n",$4)
printf("COMMENT=Distanz:~t %s\n",$5)
printf("COMMENT=Startzeit:~t %s\n",$7)
}
END {
print "ENDMENU"
}' >>$menustreckendetail
else
# Spezialfall Noida: es fehlen Infos z.B. die Distanz, deshalb hier eine Sonderbehandlung, um einem segfault vorzubeugen :(
echo "$zzhtml" | awk -v tuxwetter=$tuxwetter -v strecke="$strecke" -v picurl=$picurl -v libcurl="$libcurl" 'BEGIN
{
FS="@-@"
}
{
split($7,wort," ")
for(x in wort)
y=y+1
for(x=1;x<=y;x++)
{
satz=sprintf("%s %s",satz,wort[x])
if(x==10 || x==20 || x==30 || x==40 || x==50 || x==60 || x==70 || x==80 || x==90 )
satz=sprintf("%s~n",satz)
}
printf("ACTION=&Strecke anzeigen, %s ; %s '\''PICTURE=Strecke anzeigen,%s'\''\n",libcurl,tuxwetter,picurl)
printf("ACTION=&Portrait,msgbox title='\''Streckenportrait %s'\'' msg='\''%s'\'' size=23 \n",strecke,satz)
printf("COMMENT=*\n")
printf("COMMENT=L~ange:~t %s\n",$3)
printf("COMMENT=Runden:~t %s\n",$4)
#printf("COMMENT=Distanz:~t %s\n",$5)
printf("COMMENT=Startzeit:~t %s\n",$5)
}
END {
print "ENDMENU"
}' >>$menustreckendetail
fi
}
# ------------------- Fahrerwertung ausgeben -------------------
fahrerwertung () {
url="$1"
echo "FONT=/share/fonts/micron_bold.ttf
FONTSIZE=$FONTSIZE
LINESPP=$LINESPP
MENU=Fahrerwertung und Infos" >$menufahrerwertung
wget -O- $url | sed "# CRLF fix
s/$CRLF//g" |\
sed "/Fahrerwertung/,/Teamwertung/!d
/<\/td>/!d
# alle Leerzeichen am Anfang loeschen
s/^[ ]*//g
# Platzhalterzeilen fuer die naeschten Rennwertungen loeschen
/ <\/td>/d
# URL zusammensetzen
s@^.*/html MARKE/
s/^.*align=\"right\">/MARKE/" |\
# Nur Markierte Zeilen bearbeiten
sed "/MARKE/!d
s/<[^>]*>//g" |\
# nach jeder 3ten Zeile Leerzeile einfuegen
sed 'n;n;G;' |\
# Falls eine Zeile mit einem Gleichheitszeichen "MARKE" beginnt,
# fuege die vorhergehende hinzu
sed -e :a -e '$!N;s/\nMARKE/MARKE/;ta' -e 'P;D' |\
# neu: MARKE 1.MARKE http://formel1.motorsport-total.com/f1/saison/Fernando_Alonso.html MARKEF. Alonso MARKE 134
awk -v script=$0 -v shellexec=$shellexec -v menufahrerinfo=$menufahrerinfo '
BEGIN {
FS="MARKE"
}
{
printf("ACTION=&%s, ( %s fahrerinfo %s '\''%s'\'' ; %s %s )\n",$4,script,$3,$4,shellexec,menufahrerinfo)
printf("COMMENT=*Platz:%s Gesamtpunkte:%s \n",$2,$5)
}
END {
print "ENDMENU"
}' >>$menufahrerwertung
}
# ------------------- Fahrerinfo ausgeben -------------------
fahrerinfo () {
url="$1"
fahrer="$2"
# Bilder URL ermitteln
# SuchUrl Sortiert nach neuesten Bildern , Anzahl 40 pro Seite
# neu: http://formel1.motorsport-total.com/f1/bilder/suche.php?bps=40&sort=1&s=p4 (p4 = Schumacher Michael)
picurl=`wget -O- $url | sed -e '/\/f1\/bilder\/suche.php?s=/!d' -e "s#$tuxwetconf
wget -O- $picurl | sed "# CRLF fix
s/$CRLF//g" |\
sed "/>$tuxwetconf
echo "ENDMENU" >>$tuxwetconf
# Flexmenu Config zusammenbauen
echo "FONT=/share/fonts/micron_bold.ttf
FONTSIZE=$FONTSIZE
LINESPP=$LINESPP
MENU=Fahrerinfo: $fahrer" >$menufahrerinfo
# Den oberen Begrenzer fuer Tuxwetter setzen
echo "START" >$tempfile
wget -O- $url | sed "# CRLF fix
s/$CRLF//g" |\
sed "/Aktuelles Team<\/td>/,/<\!-- \/PM -->/!d
# Alle Tags loeschen
s/<[^>]*>//g
# alle Leerzeichen am Anfang loeschen
s/^[ ]*//g
# Text ein bischen formatieren
s/Quote:/ Quote: /g
s/Weltmeister/\nWeltmeister/g
/Die letzten WMs/d
/WM-Titel:/d
/Linktipps/d
/Internetseite/d
/ /d
/SaisonPunkteSiege/d" |\
sed '/^$/d;G' >>$tempfile
# Ende Begrenzer einfuegen
echo "ENDE" >>$tempfile
echo "ACTION=&Fahrerportrait, $libcurl ; $tuxwetter 'TXTHTML=Fahrerportrait,$local_url$tempfile|START|ENDE'
COMMENT=*
ACTION=&Fahrerbilder, $libcurl ; $tuxwetter $tuxwetconf
COMMENT=OK Taste Bild Auswahl
COMMENT=w~ahrend der Bildanzeige mit der
COMMENT=UP / Down-Taste Bild vor zur~uck bl~attern
COMMENT=*
ENDMENU" >>$menufahrerinfo
}
# ------------------- Teamwertung ausgeben -------------------
teamwertung () {
url="$1"
# ACTION=&Teamkurzinfos, ( $0 teamkurzinfo $urlteam ; if [ -f $menuteamkurz ] ; then $shellexec $menuteamkurz ; else $msgbox popup='Fehler bei der Ermittlung der Daten' timeout=5 ;fi )
# COMMENT=*
echo "FONT=/share/fonts/micron_bold.ttf
FONTSIZE=$FONTSIZE
LINESPP=$LINESPP
MENU=Teamwertung und Infos" >$menuteamwertung
wget -O- $url | sed "# CRLF fix
s/$CRLF//g" |\
sed "/Teamwertung/,/Legende/!d
/<\/td>/!d
# alle Leerzeichen am Anfang loeschen
s/^[ ]*//g
# Platzhalterzeilen fuer die naeschten Rennwertungen loeschen
/ <\/td>/d
# URL zusammensetzen
s@^.*/html MARKE/
s/^.*align=\"right\">/MARKE/
s/^.* align=right>/MARKE/" |\
# Nur Markierte Zeilen bearbeiten
sed "/MARKE/!d
s/<[^>]*>//g" |\
# nach jeder 3ten Zeile Leerzeile einfuegen
sed 'n;n;G;' |\
# Falls eine Zeile mit einem Gleichheitszeichen "MARKE" beginnt,
# fuege die vorhergehende hinzu
sed -e :a -e '$!N;s/\nMARKE/MARKE/;ta' -e 'P;D' |\
sed '/^$/d' |\
# MARKE1.MARKE http://formel1.motorsport-total.com/f1/saison/Ferrari.html MARKEFerrari MARKE63
awk -v script=$0 -v shellexec=$shellexec -v menuteaminfo=$menuteaminfo '
BEGIN {
FS="MARKE"
}
{
printf("ACTION=&%s, ( %s teaminfo %s '\''%s'\'' ; %s %s )\n",$4,script,$3,$4,shellexec,menuteaminfo)
printf("COMMENT=*Platz:%s Gesamtpunkte:%s \n",$2,$5)
}
END {
print "ENDMENU"
}' >>$menuteamwertung
}
# ------------------- Teaminfo ausgeben -------------------
teaminfo () {
url="$1"
team="$2"
# Bilder URL ermitteln
# SuchUrl Sortiert nach neuesten Bildern , Anzahl 40 pro Seite
# neu:http://formel1.motorsport-total.com/f1/bilder/suche.php?bps=40&sort=1&s=t2
picurl=`wget -O- $url | sed -e '/\/f1\/bilder\/suche.php?s=/!d' -e "s#$tuxwetconf
wget -O- $picurl | sed "# CRLF fix
s/$CRLF//g" |\
sed "/>$tuxwetconf
echo "ENDMENU" >>$tuxwetconf
echo "FONT=/share/fonts/micron_bold.ttf
FONTSIZE=$FONTSIZE
LINESPP=$LINESPP
MENU=Teaminfo: $team" >$menuteaminfo
# Den oberen Begrenzer fuer Tuxwetter setzen
echo "START" >$tempfile
wget -O- $url | sed "# CRLF fix
s/$CRLF//g" |\
sed "/in der F1-Datenbank/,/<\!-- \/PM -->/!d
# Alle Tags loeschen
s/<[^>]*>//g
# alle Leerzeichen am Anfang loeschen
s/^[ ]*//g
# Text ein bischen formatieren
s/Quote:/ Quote: /g
s/(Anzeigen:.*$//g
s/Weltmeister/\nWeltmeister/g
/Die letzten WMs/d
/WM-Titel:/d
/Linktipps/d
/Internetseite/d
/ /d
/SaisonPunkteSiege/d" |\
sed '/^$/d;G' >>$tempfile
# Ende Begrenzer einfuegen
echo "ENDE" >>$tempfile
echo "ACTION=&Teamportrait, $libcurl ; $tuxwetter 'TXTHTML=Teamportrait,$local_url$tempfile|START|ENDE'
COMMENT=*
ACTION=&Teambilder, $libcurl ; $tuxwetter $tuxwetconf
COMMENT=OK Taste Bild Auswahl
COMMENT=w~ahrend der Bildanzeige mit der
COMMENT=UP / Down-Taste Bild vor zur~uck bl~attern
COMMENT=*
ENDMENU" >>$menuteaminfo
}
# ------------------- Ergebnisse ausgeben -------------------
# Alle vorhandenen Strecken bearbeiten
ergmain () {
url="$1"
echo "FONT=/share/fonts/micron_bold.ttf
FONTSIZE=$FONTSIZE
LINESPP=$LINESPP
MENU=Ergebnisse & Startaufstellung" >$menuergmain
wget -O- $url | sed "# CRLF fix
s/$CRLF//g" |\
#sed "/Ergebnisse der Saison 2010/,/<\/table>/!d
sed "/Ergebnisse der Saison 201./,/<\/table>/!d
# nur Strecke und URL auswerten
/\/f1\/ergeb\//!d
# URL markieren
s/]*>//g
# Umlaute
s/ü/~u/g
# Marker zw. URL und Streckename
s/\">/MARKE/g
s/\" class=\"pfr//" >$tempfile
# MARKE/ergeb/2006/01/MARKEBahrain / Manama
awk -v script=$0 -v shellexec=$shellexec -v urlbase=$urlbase -v menuergdetail=$menuergdetail '
BEGIN {
FS="MARKE" ; x=1
}
{
strecke[x]=sprintf("ACTION=&%s, ( %s ergdetail %s '\''%s'\'' ; %s %s )\n",$3,script,urlbase $2,$3,shellexec,menuergdetail)
x=x+1
}
END {
# Reihenfolge der Rennen umkehren
for ( y = x ; y>=1 ; y-- )
print strecke[y]
print "ENDMENU"
}' $tempfile >>$menuergmain
}
# ------------------- Ergebnisse im Detail ausgeben -------------------
# Alle vorhandenen Streckenergebnisse bearbeiten
ergdetail () {
# wir machen uns das jetzt einfach und hoffen dass die URLs fuer alle Rennen gueltig sind :-)
# neu: http://formel1.motorsport-total.com/f1/ergeb/2007/01/11.shtml
# 1 freie Trainig ...../11.shtml
# 2 freie Training ...../21.shtml
# 3 freie Trainig ...../31.shtml
# Qualifying ...../51.shtml
# Rennen Startauf ...../70.shtml
# Rennen Erg ...../71.shtml
strecke="$2"
echo "FONT=/share/fonts/micron_bold.ttf
FONTSIZE=$FONTSIZE
LINESPP=$LINESPP
MENU=Ergebnisse $strecke" >$menuergdetail
# Alle Seiten bearbeiten
# ausfaelle = Seite 71.shtml auch fuer die Ausfaelle verwenden hier nur 8 Datensaetze pro Fahrer
for i in 11.shtml 21.shtml 31.shtml 51.shtml 70.shtml 71.shtml ausfaelle
do
# startstring, endstring, leer = Leerzeichen nach x Zeilen einfuegen , ist je nach Seite unterschiedlich
case $i in
11.shtml) url="$1$i"
startstring="Gefahrene Zeiten"
endestring="<\!-- \/PM -->"
# 8 Leerzeichen
leer="n;n;n;n;n;n;n;G;"
menutitel="1. freies Training"
menudatei="/tmp/f1info_1frei.inc"
;;
21.shtml) url="$1$i"
startstring="Gefahrene Zeiten"
endestring="<\!-- \/PM -->"
leer="n;n;n;n;n;n;n;G;"
menutitel="2. freies Training"
menudatei="/tmp/f1info_2frei.inc"
;;
31.shtml) url="$1$i"
startstring="Gefahrene Zeiten"
endestring="<\!-- \/PM -->"
leer="n;n;n;n;n;n;n;G;"
menutitel="3. freies Training"
menudatei="/tmp/f1info_3frei.inc"
;;
51.shtml) url="$1$i"
startstring="Gesamtklassement"
endestring=""
leer="n;n;n;n;n;n;n;G;"
menutitel="Qualifying"
menudatei="/tmp/f1info_quali.inc"
;;
70.shtml) url="$1$i"
startstring="Startaufstellung"
endestring="<\!-- \/PM -->"
# 5 Leerzeichen
leer="n;n;n;n;G;"
menutitel="Startaufstellung"
menudatei="/tmp/f1info_startauf.inc"
;;
71.shtml) url="$1$i"
startstring="Rennergebnis"
endestring=">Ausf.lle<"
leer="n;n;n;n;n;n;n;G;"
menutitel="Rennergebnis"
menudatei="/tmp/f1info_rennerg.inc"
;;
ausfaelle) url="${1}71.shtml"
startstring=">Ausf.lle<"
endestring="<\!-- \/PM -->"
leer="n;n;n;n;n;n;G;"
menutitel="Rennergebnis Ausf~alle"
menudatei="/tmp/f1info_rennergausfall.inc"
;;
esac
wget -O- $url | sed "# CRLF fix
s/$CRLF//g" |\
sed "/$startstring/,/$endestring/!d
# nur Zeilen mit | ]*>/@/g
# entstandene Doppelmarker entfernen
s/@@/@/g" |\
# Fuege jetzt alle x Zeilen eine Leerzeile ein.
sed "$leer" |\
# Falls eine Zeile mit einem "@" endet, fuege die naechste hinzu.
sed -e :a -e '/@$/N; s/@\n//; ta' |\
sed "s/\" target=\"_blank\">/@/g
s/ /-/g" >$tempfile
#cp $tempfile /tmp/ttt_$i
# so sehen die Zeilen jetzt aus
# freies Training:
# @1@38@/rk.shtml@R. Kubica@ (T)@/bmw.shtml@BMW@M@1:32.170@-@-@20
# Qualifying:
# @1@5@/ms.shtml@M. Schumacher@/ferrari.shtml@Ferrari@B@1:31.431@-@-@12
# Startaufstellung:
# @1@5@/ms.shtml@M. Schumacher@/ferrari.shtml@Ferrari@B
# Rennergebnis:
# @1@1@/fa.shtml@F. Alonso@/renault.shtml@Renault@M@57@1:29:46.205@-@206,018
# Rennausfall:
# @-@23@/yi.shtml@Y. Ide@/saguri.shtml@Super Aguri@B@35@+22 Rnd.@126,439
# neu: @1@6@../../../saison/Kimi_Raeikkoenen.html@K. Räikkonen@../../../saison/Ferrari.html@Ferrari@B
if [ `grep -c . $tempfile` -gt 0 ] ; then
# ACTION Zeile fuer das jeweilige Ergebnis ausgeben
echo "ACTION=&$menutitel,$shellexec $menudatei" >>$menuergdetail
# Menudatei zusammenbauen
awk -v fontsize=$FONTSIZE -v linespp=$LINESPP -v script=$0 -v urlbase=$urlbase -v menutitel="$menutitel" -v shellexec=$shellexec -v menufahrerinfo=$menufahrerinfo '
BEGIN {
FS="@"
print "FONT=/share/fonts/micron_bold.ttf"
print "FONTSIZE=" fontsize
print "LINESPP=" linespp
print "MENU=" menutitel
}
{
gsub("../../..","/f1",$4)
gsub("../../..","/f1",$6)
printf("ACTION=&%s, %s fahrerinfo %s '\''%s'\'' ; %s %s \n",$5,script,urlbase $4,$5,shellexec,menufahrerinfo)
# # Teamname entweder in Spalte 7 oder 8
# if(match($7,".shtml") >0)
# { team=$8 ; reifen=$9 }
# else
# { team=$7 ; reifen=$8 }
#
# if (reifen=="B")
# reifen="Bridgestone"
# if (reifen=="M")
# reifen="Michelin"
# printf("COMMENT=*Platz: %s Team: %s \n",$2,team)
if(match(menutitel,"Startaufstellung") >0)
{ printf("COMMENT=*Platz: %s Team: %s\n",$2,$7) }
else
{ printf("COMMENT=*Platz: %s Team: %s~tZeit: %s (%s)\n",$2,$7,$8,$9) }
}
END {
print "ENDMENU"
}' $tempfile >$menudatei
fi
done
# Ergebnis Menu abschliessen
echo "ENDMENU" >>$menuergdetail
}
# ------------------- Soundmenu ausgeben -------------------
# Alle vorhandenen Eintraege bearbeiten
sounds () {
url="$1"
leer="n;G;"
echo "FONT=/share/fonts/micron_bold.ttf
FONTSIZE=$FONTSIZE
LINESPP=$LINESPP
MENU=Sounds" >$menusoundmain
wget -O- $url | sed "# CRLF fix
s/$CRLF//g" |\
sed "/ | ::g
s:\">:MARKE:g
# Markierungen ersetzen durch @
s/MARKE/@/g
# Umlaute und Sonderzeichen ersetzen und Texte kuerzen
s/,//g
s/Minuten/Min\./g
s/Kilobyte/Kb/g
s/ä/~a/g
s/öß/~z/g
s/Dateigr~ze/Gr~o~ze/g
s/Exklusiv-Interview/Interview/g
s/\" class=\"pfr//g" |\
# Leere Zeilen loeschen
sed '/^$/d' >$tempfile
# Zeile sieht jetzt so aus
# @http://www.f1total.com/audio.html?i=36@Exklusiv-Interview mit Marc Surer@http://www.f1total.com/audio.html?i=36@F1Total.com-Experte@ 14.03.2006 L~ange: 9:47 Min Gr~ze: 2.294 Kb
# @http://formel1.motorsport-total.com/f1/audio/audio.html?i=72@Interview mit Timo Glock (Toyota)@ 01.05.2008 L~ange: 2:47 Min. Gr~o~ze: 2.622 Kb
awk -v script=$0 'BEGIN {
FS="@"
}
{
printf("ACTION=&%s , %s play '\''%s'\'' \n",$3,script,$2)
printf("COMMENT=%s\n",$4)
#printf("COMMENT=*%s\n",$6)
}
END {
print "ENDMENU"
}' $tempfile >>$menusoundmain
}
# ------------------- Soundmenu ausgeben -------------------
# Alle vorhandenen Eintraege bearbeiten
play () {
# Alle Menues vor dem abspielen schliessen
killall shellexec
# Variable fuer Endlosschleife
TRUE="true"
# Url uebergeben
url="$1"
# MP3 Filename aus URL ermitteln
podurl=`wget -O- $url | sed "# CRLF fix
s/$CRLF//g" |\
# URL mit MP3 File
sed "/download.php/!d" |\
# URL zusammensetzen
sed "s@ warten bis MP3 abgespielt ist
while $TRUE
do
# Wenn die Variable active unser MP3 File beinhaltet, dann laeufts noch
# wenn nicht dann zurueckschalten
# wird waehrend der Wiedergabe mit der FB gezapt wird das Skript ebenfalls beendet
active="`wget -O- -q http://$auth@localhost/cgi-bin/status | grep -c $mp3file`"
if [ $active -gt 0 ]
then
# 3 sec warten bis zur naechsten Ueberpruefung
sleep 3
else
# MP3 File zur Sicherheit nochmal stoppen falls direkt per Fernbedienung umgeschaltet wurde
wget -q -O /dev/null "http://$auth@localhost/cgi-bin/stop"
# Anderer Channel laeuft Schleife verlassen und zurueck zum gespeicherten Channel
break
fi
done
# Lautstaerke wieder setzen
laut=`expr 63 - $laut`
wget -q -O /dev/null "http://$auth@localhost/setVolume?volume=$laut"
# Auf gespeicherten Channel zurueckschalten
wget -q -O /dev/null "http://$auth@localhost/cgi-bin/zapTo?path=$current"
else
# Datei nicht gefunden , evt. Fehler beim Download
$msgbox title="$menutitel" popup="Fehler beim Download von ~n $podurl !" timeout=5
fi
# MP3 File loeschen
if [ -f $mp3dir/$mp3file ] ; then
rm $mp3dir/$mp3file
fi
}
# ----------------------- Diverses ausgeben ----------------------------
# Formel 1 Rekorde
# Tempfile wird im Menu Diverses an Tuxwetter uebergeben
rekorde () {
url="$1"
wget -O- $url | sed "# CRLF fix
s/$CRLF//g" |\
sed "# Leerzeichen am Anfang loeschen
s/^[ ]*//g
# Tags vor und nach Ueberschriften verdoppeln
# fuer Formatierung in Tuxwetter
s:
:
\n
:g
s::
\n------------------------------------------------------------------------------\n
:g" >$tempfile
}
# ----------------------------------------------------------------------
# Formel 1 Reglement
# Tempfile wird im Menu Diverses an Tuxwetter uebergeben
regel () {
url="$1"
wget -O- $url | sed "# CRLF fix
s/$CRLF//g" |\
sed "/<\!-- PM -->/,/<\!-- \/PM -->/!d
# Leerzeichen am Anfang loeschen
s/^[ ]*//g
# nicht auswertbare Tags in Tuxwetter loeschen
s/\–//g
# Tags vor und nach Ueberschriften verdoppeln
# fuer Formatierung in Tuxwetter
s:
:
\n
:g
s:
:
\n------------------------------------------------------------------------------\n
:g" >$tempfile
}
# ----------------------------------------------------------------------
# Coole Sprueche
sprueche () {
url="$1"
echo "START" >$tempfile
wget -O- $url | sed "# CRLF fix
s/$CRLF//g" |\
sed '/