You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
179 lines
6.3 KiB
179 lines
6.3 KiB
#!/bin/sh
|
|
# Tanken Plugin
|
|
# by theobald123 for coolstream
|
|
# VERSION=1.6
|
|
|
|
# *************************************************************************************
|
|
# * Datenzeile in einzelne Parameter aufteilen *
|
|
# *-----------------------------------------------------------------------------------*
|
|
# * Übergabeparameter : Datenzeile *
|
|
# *************************************************************************************
|
|
Parameter ()
|
|
{ pn=$#;p1=$1;p2=$2;p3=$3;p4=$4;p5=$5;p6=$6;p7=$7;p8=$8;p9=$9;p10=$10; }
|
|
|
|
# *************************************************************************************
|
|
# * exit-Steuerung *
|
|
# *************************************************************************************
|
|
Beenden ()
|
|
{
|
|
if [ $? = 0 ]; then
|
|
break
|
|
fi
|
|
}
|
|
|
|
# *************************************************************************************
|
|
# * Einlesen der Postleitzahl *
|
|
# *-----------------------------------------------------------------------------------*
|
|
# * Übergabeparameter : Postleitzahlendatei *
|
|
# *************************************************************************************
|
|
getplz ()
|
|
{
|
|
conf=$1
|
|
if [ -s $conf ] ; then
|
|
Eingabe1=`cat "$conf"`
|
|
else
|
|
Eingabe1="0"
|
|
fi
|
|
|
|
# Eingabemaske
|
|
Eingabe=`input l="PLZ: #####max. Entf.: ##" o=45 c=14 d="$Eingabe1"`
|
|
if [ "$Eingabe" = "" ] ; then
|
|
exit
|
|
else
|
|
echo "$Eingabe" > $conf
|
|
fi
|
|
|
|
PLZ=`cut -b 1-5 $conf`; PLZ=`echo $PLZ`
|
|
if [ ${#PLZ} -lt 5 ] ; then
|
|
msgbox size=22 timeout=5 popup="PLZ ungueltig"
|
|
# wget -q -O - http://127.0.0.1/control/message?popup="PLZ ungueltig"
|
|
rm $conf
|
|
continue
|
|
fi
|
|
|
|
ENTF=`cut -b 6-7 $conf`; ENTF=`echo $ENTF`
|
|
if [ "$ENTF" = "" ] ; then
|
|
ENTF=5
|
|
elif [ $ENTF -lt 1 ] ; then
|
|
ENTF=5
|
|
fi
|
|
}
|
|
|
|
while :; do
|
|
# *-----------------------------------------------------------------------------------*
|
|
# * Kraftstoffauswahl und Tanken anfordern *
|
|
# *-----------------------------------------------------------------------------------*
|
|
getplz /var/tuxbox/config/Tanken.plz
|
|
auswahl=1
|
|
while :; do
|
|
msgbox title="Kraftstoffauswahl" size=28 order=1 msg="~cBitte ausw~ahlen!" select="Diesel,Super E10,Super (E5),SuperPlus,Autogas (LPG),Erdgas (CNG),Biodiesel,LKW-Diesel" default=$auswahl
|
|
auswahl=$?
|
|
case $auswahl in
|
|
1)
|
|
Typ=3; SPRIT="Diesel"
|
|
;;
|
|
2)
|
|
Typ=5; SPRIT="Super E10"
|
|
;;
|
|
3)
|
|
Typ=7; SPRIT="Super (E5)"
|
|
;;
|
|
4)
|
|
Typ=6; SPRIT="SuperPlus"
|
|
;;
|
|
5)
|
|
Typ=1; SPRIT="Autogas (LPG)"
|
|
;;
|
|
6)
|
|
Typ=8; SPRIT="Erdgas (CNG)"
|
|
;;
|
|
7)
|
|
Typ=9; SPRIT="Biodiesel"
|
|
;;
|
|
8)
|
|
Typ=2; SPRIT="LKW-Diesel"
|
|
;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
|
|
wget -O /tmp/tanken.txt -U Mozilla "http://www.clever-tanken.de/tankstelle_liste?spritsorte=$Typ&ort=$PLZ&r=$ENTF&sort=p"
|
|
|
|
# *-----------------------------------------------------------------------------------*
|
|
# * #HTML-Tags entfernen; Sonderzeichen ersetzen; Leerzeilen entfernen *
|
|
# *-----------------------------------------------------------------------------------*
|
|
sed -n -e "/main-content-fuel-station-list/,/Impressum/ p" /tmp/tanken.txt \
|
|
-n -e "/Abfrage leider keine Tankstelle finden/ p" | \
|
|
sed -n -e "/<a/,/<\/a>/ p" \
|
|
-n -e "/Abfrage leider keine Tankstelle finden/ p" | \
|
|
sed -n -e "/location-name/ p" \
|
|
-n -e "/location-street/ p" \
|
|
-n -e "/location-city/ p" \
|
|
-n -e "/class=\"price\"/ p" \
|
|
-n -e "/ffnet/ p" \
|
|
-n -e "/Abfrage leider keine Tankstelle finden/ p" | \
|
|
sed -e 's/<[^>]*>//g' \
|
|
-e '/^[^0-9a-zA-Z!+-\/]*$/d' | \
|
|
sed -e 's/ä/ä/g' -e 's/ä/ä/g' -e 's/ä/ä/g' \
|
|
-e 's/ö/ö/g' -e 's/ö/ö/g' -e 's/ö/ö/g' \
|
|
-e 's/ü/ü/g' -e 's/ü/ü/g' -e 's/ü/ü/g' \
|
|
-e 's/Ä/Ä/g' -e 's/Ä/Ä/g' -e 's/Ä/Ä/g' \
|
|
-e 's/Ö/Ö/g' -e 's/Ö/Ö/g' -e 's/Ö/Ö/g' \
|
|
-e 's/Ãœ/Ü/g' -e 's/Ü/Ü/g' -e 's/Ü/Ü/g' \
|
|
-e 's/ß/ß/g' -e 's/ß/ß/g' -e 's/ß/ß/g' \
|
|
> /tmp/tanken1.txt
|
|
|
|
# *-----------------------------------------------------------------------------------*
|
|
# * Daten auswählen und Liste aufbauen *
|
|
# *-----------------------------------------------------------------------------------*
|
|
Head="Tankstellen im Postleitzahlenbereich $PLZ Kraftstoffart: $SPRIT"
|
|
|
|
nostations=`sed -n -e "/Abfrage leider keine Tankstelle finden/ =" /tmp/tanken1.txt`
|
|
if [ "$nostations" != "" ] ; then
|
|
msgbox title="$Head" size=26 timeout=180 msg="Keine Tankstellen gefunden"
|
|
continue
|
|
fi
|
|
|
|
zeilen=`sed -n -e "$ =" /tmp/tanken1.txt`
|
|
tab1=1; tab2=2; tab3=3; tab4=4; step=4
|
|
|
|
while [ "$tab4" -le "$zeilen" ]; do
|
|
count=1
|
|
echo ~T0250Tankstelle~T0800Preis > /tmp/tanken2.txt
|
|
while [ $count -le 5 -a "$tab4" -le "$zeilen" ]; do
|
|
a1=`sed -n -e "$tab1"p /tmp/tanken1.txt`; a1=`echo $a1` # Preis
|
|
a2=`sed -n -e "$tab2"p /tmp/tanken1.txt`; a2=`echo $a2` # Marke
|
|
a3=`sed -n -e "$tab3"p /tmp/tanken1.txt`; a3=`echo $a3` # Adresse
|
|
a4=`sed -n -e "$tab4"p /tmp/tanken1.txt`; a4=`echo $a4` # Ort
|
|
if [ "$a1" != "" ] ; then
|
|
echo ~T0250~B$a2~T0800~R$a1 >> /tmp/tanken2.txt
|
|
echo ~T0250$a3 >> /tmp/tanken2.txt
|
|
echo ~T0250$a4 >> /tmp/tanken2.txt
|
|
count=`expr "$count" + 1`
|
|
fi
|
|
tab1=`expr "$tab1" + $step`
|
|
tab2=`expr "$tab2" + $step`
|
|
tab3=`expr "$tab3" + $step`
|
|
tab4=`expr "$tab4" + $step`
|
|
done
|
|
|
|
# *-----------------------------------------------------------------------------------*
|
|
# * Daten ausgeben (Framebuffer) *
|
|
# *-----------------------------------------------------------------------------------*
|
|
|
|
echo ~T0250~Galle Angaben ohne Gewähr >> /tmp/tanken2.txt
|
|
if [ $tab4 -le $zeilen ] ; then
|
|
msgbox title="$Head" size=26 timeout=180 msg=/tmp/tanken2.txt
|
|
else
|
|
msgbox title="$Head" size=26 timeout=180 popup=/tmp/tanken2.txt
|
|
fi
|
|
Beenden
|
|
done
|
|
done
|
|
done
|
|
|
|
# *-----------------------------------------------------------------------------------*
|
|
# * TMP-Dateien loeschen *
|
|
# *-----------------------------------------------------------------------------------*
|
|
rm /tmp/tanken*.txt
|
|
|