Jump to content

0180-Services


SnowHead
 Share

Recommended Posts

  • Admin

Da ich es satt hatte, einen Haufen Geld für teure Servicehotlines bezahlen zu müssen für

Sachen, die eigentlich nichts kosten dürften, habe ich mal fix die erste grobe Version

eines Scripts zusammengeschustert, welches mir (wenn bekannt) kostenfreie oder wenig-

stens normale Telefonnummern (welche bei den heutigen Telefonflats ja auch nix mehr

kosten) als Alternative für die 0180er Hotlines raussucht.

Man kann sicher noch mehr Komfort einbauen. Ihr seid also aufgerufen, Euch Verbesse-

rungen auszudenken und die hier zu veröffentlichen. Vor allem was die Auswertung vom

Standard abweichender Formatierungen angeht, muß noch eine Menge getan werden.

 

Die Installation ist simpel. Das Script kommt ausgepackt mit den Rechten 755 nach

/var/plugins. In /var/tuxbox/config/flexinc/plugin_run.mnu fügt Ihr folgende Zeile ein:

 

ACTION=&0180-Services,/var/plugins/0180

Fertig. Viel Spaß!

 

0180.png

 

Edit: Bis das Anhängen von Files hier im Board wieder erlaubt ist, muß ich den Code

erst mal hier in den Thread packen. Also diesen Code als File mit dem Namen "0180"

und den Rechten 755 nach /var/plugins/:

 

#!/bin/sh
TFIL=/tmp/0180.tmp
MFIL=/tmp/0180.msg
TITLE="0180-Nummernsuche"

NUMBER=`input t="Bitte Servicenummer eingeben" l="0180 ##########"`
[ -z $NUMBER ] && exit 1
NUMBER=0180`echo $NUMBER | sed -e s/' *'//g`
wget -q -O $TFIL http://www.0180.info/suche.html?s=$NUMBER
if grep auml.ndern $TFIL > /dev/null
then
sed -i -e '/HEAD/,/Eintrag/'d $TFIL
sed -i -e '/#FF0000/, d $TFIL
sed -i -e s/'<[^>]*>'//g -e /^$/d -e /\*/d -e /'auml;ndern'/d $TFIL
if [ -s $TFIL ]
then
	echo ~BService~T0250Name~T0450teure Nummer~T0650Ersatznummer > $MFIL
	echo >> $MFIL
	while read line1
	do
		read line2
		read line3
		if echo $line2 | grep 0180 > /dev/null
		then
			echo `expr substr "$line1" 1 40`~T0450$line2~Y~T0650~G$line3 >> $MFIL
		else
			read line4
			echo `expr substr "$line1" 1 19`~T0250`expr substr "$line2" 1 19`~T0450~Y$line3~T0650~G$line4 >> $MFIL
		fi				
	done < $TFIL
	msgbox title=$TITLE msg=$MFIL
else
	msgbox title=$TITLE msg="Kein Eintrag f~ur $NUMBER"
fi
else
msgbox title=$TITLE msg="Kein Eintrag f~ur $NUMBER"
fi
rm -f $TFIL
rm -f $MFIL

  • Like 3
Link to comment
Share on other sites

SnowHead,

 

hab eine kleine Anregung ;)

 

Bei meinen Test habe ich festgestellt das bei einigen Services "Riesentexte" für den Service-Text und bei "Name" eingetragen ist, dies haut natürlich die Formatierung kaputt. Ich rege deshalb an, das bei diesen 2 Feldern der verfügbare Text nach X-Zeichen (mein Vorschlag 20 Zeichen ) abgebrochen wird und bei abgebrochen Texten drei kleine Punkte (...) an dessen Stelle nach den zb. 20 Zeichen angehangen wird. Dies hätte die positive Wirkung das die Formatierung nicht geändert werden muss weil sie jedesmal stimmt.

 

Aufgefallen zb. bei 01805/880 777 36 oder auch bei 01805/01 50 50

Edited by Bazi98
Link to comment
Share on other sites

Es ist vollbracht. Meine Version der 0180-Nummernauskunft:

 

3v52g4nk.png 3h8eykog.png vgipl9gx.png

 

#! /bin/sh
# 0180-Nummernsuche
# by theobald123 (Idee: SnowHead)
# Version: 1.0 Coolstream


################################################################################
#        Zählen der Parameter                                                  #
################################################################################
anzahl ()
{ anz=$#; }


################################################################################
#        Eingabe der zu suchenden Telefonnummer oder Firma                     #
################################################################################
get_search ()
{
TELNR=`input l='Tel: 0180 ##########     Firma: @@@@@@@@@@@@@@@@@@Nach Eingabe OK drücken! Tel hat Vorrang vor FirmaEXIT beendet das Plugin' k=1 t=$TITLE`       # Eingabemaske
if [ "$TELNR" = "" ]    # Vorgang abgebrochen
then
	rm -f $TFILE
	rm -f $TFIL1
	rm -f $TFIL2
	rm -f $TMENU
	rm -f $TMSG
	rm -f /tmp/action.txt
	exit
fi
tel1=`echo "$TELNR"|sed -e 's/..................$//g`; tel=0180`echo $tel1 | sed -e 's/ *//g'`
firma1=`echo "$TELNR"|sed -e 's/^..........//g`; firma=`echo $firma1 | sed -e 's/ /+/g'`
if [ "$tel" = "0180" ]
then
	SEARCH=$firma; Suche=$firma1
else
	SEARCH=$tel; Suche=$tel1
fi
SEARCH="suche.html?s="`echo $SEARCH`
}


################################################################################
#        Auswerten der Suchanfrage                                             #
################################################################################
get_result ()
{
wget -q -O $TFILE "http://www.0180.info/$SEARCH"
sed -n '/Zeile mit Ergebnissen/,/COLSPAN=4/ p' $TFILE|sed -e 's/<I>/<I>Info:/g' -e 's/\*//g' -e 's/ändern//g' -e 's/&/\&/g' -e 's/(Neuer Eintrag)//g' -e 's/<[^>]*>//g' -e 's/\n//g' -e '/^[^0-9a-zA-Z!-\/|]*$/d' > $TFIL1
sed -n '/COLSPAN=4/,/COLSPAN=4/ p' $TFILE|sed -e '/^[^0-9a-zA-Z!-\/|]*$/d' > $TFIL2
vor=`sed -n '/butt_vor/{g;1!p;};h' $TFIL2|sed -e 's/^.*suche.html/suche.html/g' -e 's/\".*$//g'`
zurueck=`sed -n '/butt_zurueck/{g;1!p;};h' $TFIL2|sed -e 's/^.*suche.html/suche.html/g' -e 's/\".*$//g'`
items=`sed -n -e '/Info:/ =' $TFIL1`
anzahl $items
if [ $anz -eq 0 ]
then
	msgbox title=$TITLE msg="Kein Eintrag f~ur $Suche"
else
	if [ "$vor" == "" ] && [ "$zurueck" == "" ] && [ $anz -eq 1 ]
	then                  # genau ein Eintrag
		detail 1
	else                  # mehrere Seiten oder Einträge
		get_auswahl
	fi
fi
}


################################################################################
#        Anzeige der einzelnen Firmen                                          #
################################################################################
get_auswahl ()
{
echo FONT=/share/fonts/neutrino.ttf         >  $TMENU
echo FONTSIZE=26                            >> $TMENU
echo HIGHT=800                              >> $TMENU
echo WIDTH=1000                             >> $TMENU
echo LINESPP=15                             >> $TMENU
echo MENU=Firmen~ubersicht f~ur $Suche      >> $TMENU
echo 0 > /tmp/action.txt
if [ "$zurueck" != "" ]
then
	echo "ACTION=~T0100vorherige Seite,echo \"z\" > /tmp/action.txt" >> $TMENU
fi
k=1; i=1
while [ $i -le $anz ]
do
		t1=`sed -n "$k"p $TFIL1|sed -e 's/,//g' -e "s/'//g"`   #Firmenname
	echo "ACTION=~T0100$t1,echo \"$i\" > /tmp/action.txt" >> $TMENU
	k=`expr "$k" + 4`; i=`expr "$i" + 1`
done
if [ "$vor" != "" ]
then
	echo "ACTION=~T0100n~achste Seite,echo \"v\" > /tmp/action.txt" >> $TMENU
fi
echo ENDMENU                                >> $TMENU
shellexec $TMENU
auswahl=`sed -n 1p /tmp/action.txt`
case $auswahl in
1)
detail 1
;;
2)
detail 5
;;
3)
detail 9
;;
4)
detail 13
;;
5)
detail 17
;;
6)
detail 21
;;
7)
detail 25
;;
8)
detail 29
;;
9)
detail 33
;;
10)
detail 37
;;
v)
SEARCH=$vor
get_result
;;
z)
SEARCH=$zurueck
get_result
;;
*)
continue
;;
esac
}


################################################################################
#        Detail-Anzeige eines Eintrags                                         #
################################################################################
detail ()
{
Zeile="$1";
Name=`sed -n "$Zeile"p $TFIL1`; Name=`echo $Name`
Zeile=`expr "$Zeile" + 1`
Info=`sed -n "$Zeile"p $TFIL1|sed -e 's/Info://g'`; Info=`echo $Info`
Zeile=`expr "$Zeile" + 1`
N0180=`sed -n "$Zeile"p $TFIL1'`; N0180=`echo $N0180`
Zeile=`expr "$Zeile" + 1`
NStd=`sed -n "$Zeile"p $TFIL1'`; NStd=`echo $NStd`
Head="Ersatznummer f~ur $Name"
echo teure Nummer: ~R$N0180 >  $TMSG
echo Ersatznummer: ~G$NStd  >> $TMSG
if [ "$Info" != "" ]
then
	echo Info: >> $TMSG
	echo $Info|sed -e 's/.\{80\} /&\n/g' -e 's/^ //g' >> $TMSG	
fi
msgbox title="$Head" msg=$TMSG
}


TITLE="0180-Nummernsuche"
TFILE=/tmp/telinfo.txt
TFIL1=/tmp/telinfo1.txt
TFIL2=/tmp/telinfo2.txt
TMENU=/tmp/telinfo.mnu
TMSG=/tmp/telinfo.msg

rm -f $TFILE
rm -f $TFIL1
rm -f $TFIL2
rm -f $TMSG
rm -f /tmp/action.txt

while [ 1 -eq 1 ]
do
get_search
get_result
done

exit 0;

 

Wenn jemand Optimierungsmöglichkeiten sieht kann er sie gerne posten. :)

 

edit:

Zeile 60 angepasst

alt: detail

neu: detail 1

 

edit 2:

Tabulatoren entfernt (macht Probleme, wenn kein Info-Text vorhanden ist)

 

edit 3:

noch kleinere Fehler behoben

Edited by theobald123
  • Like 2
Link to comment
Share on other sites

@theobald,

 

grüss dich, ist schön geworden :)

 

Den Teil würde ich wegen dem Sonderzeichen "ü"

TELNR=`input l='Tel: 0180 ##########     Firma: @@@@@@@@@@@@@@@@@@Nach Eingabe OK drücken! Tel hat Vorrang vor FirmaEXIT beendet das Plugin' k=1 t=$TITLE`       # Eingabemaske

 

so gestallten

TELNR=`input l='Tel: 0180 ##########     Firma: @@@@@@@@@@@@@@@@@@Nach Eingabe OK dr~ucken! Tel hat Vorrang vor FirmaEXIT beendet das Plugin' k=1 t=$TITLE`       # Eingabemaske

 

dann zerhauts dir nicht die Text-Formatierung,

 

ansonsten ist mir auf die schnelle nichts aufgefallen.:D

 

Gruss

bazi

Link to comment
Share on other sites

"ü" korrigiert :) und case-Auswahl geändert.

#! /bin/sh
# 0180-Nummernsuche
# by theobald123 (Idee: SnowHead)
# Version: 1.0 Coolstream


################################################################################
#        Zählen der Parameter                                                  #
################################################################################
anzahl ()
{ anz=$#; }


################################################################################
#        Eingabe der zu suchenden Telefonnummer oder Firma                     #
################################################################################
get_search ()
{
TELNR=`input l='Tel: 0180 ##########     Firma: @@@@@@@@@@@@@@@@@@Nach Eingabe OK dr~ucken! Tel hat Vorrang vor FirmaEXIT beendet das Plugin' k=1 t=$TITLE`       # Eingabemaske
if [ "$TELNR" = "" ]    # Vorgang abgebrochen
then
	rm -f $TFILE
	rm -f $TFIL1
	rm -f $TFIL2
	rm -f $TMENU
	rm -f $TMSG
	rm -f /tmp/action.txt
	exit
fi
tel1=`echo "$TELNR"|sed -e 's/..................$//g`; tel=0180`echo $tel1 | sed -e 's/ *//g'`
firma1=`echo "$TELNR"|sed -e 's/^..........//g`; firma=`echo $firma1 | sed -e 's/ /+/g'`
if [ "$tel" = "0180" ]
then
	SEARCH=$firma; Suche=$firma1
else
	SEARCH=$tel; Suche=$tel1
fi
SEARCH="suche.html?s="`echo $SEARCH`
}


################################################################################
#        Auswerten der Suchanfrage                                             #
################################################################################
get_result ()
{
wget -q -O $TFILE "http://www.0180.info/$SEARCH"
sed -n '/Zeile mit Ergebnissen/,/COLSPAN=4/ p' $TFILE|sed -e 's/<I>/<I>Info:/g' -e 's/\*//g' -e 's/ändern//g' -e 's/&/\&/g' -e 's/(Neuer Eintrag)//g' -e 's/<[^>]*>//g' -e 's/\n//g' -e '/^[^0-9a-zA-Z!-\/|]*$/d' > $TFIL1
sed -n '/COLSPAN=4/,/COLSPAN=4/ p' $TFILE|sed -e '/^[^0-9a-zA-Z!-\/|]*$/d' > $TFIL2
vor=`sed -n '/butt_vor/{g;1!p;};h' $TFIL2|sed -e 's/^.*suche.html/suche.html/g' -e 's/\".*$//g'`
zurueck=`sed -n '/butt_zurueck/{g;1!p;};h' $TFIL2|sed -e 's/^.*suche.html/suche.html/g' -e 's/\".*$//g'`
items=`sed -n -e '/Info:/ =' $TFIL1`
anzahl $items
if [ $anz -eq 0 ]
then
	msgbox title=$TITLE msg="Kein Eintrag f~ur $Suche"
else
	if [ "$vor" == "" ] && [ "$zurueck" == "" ] && [ $anz -eq 1 ]
	then                  # genau ein Eintrag
		detail 1
	else                  # mehrere Seiten oder Einträge
		get_auswahl
	fi
fi
}


################################################################################
#        Anzeige der einzelnen Firmen                                          #
################################################################################
get_auswahl ()
{
echo FONT=/share/fonts/neutrino.ttf         >  $TMENU
echo FONTSIZE=26                            >> $TMENU
echo HIGHT=800                              >> $TMENU
echo WIDTH=1000                             >> $TMENU
echo LINESPP=15                             >> $TMENU
echo MENU=Firmen~ubersicht f~ur $Suche      >> $TMENU
if [ "$zurueck" != "" ]
then
	echo "ACTION=~T0100vorherige Seite,echo \"z\" > /tmp/action.txt" >> $TMENU
fi
k=1; i=1
while [ $i -le $anz ]
do
		t1=`sed -n "$k"p $TFIL1|sed -e 's/,//g' -e "s/'//g"`   #Firmenname
	echo "ACTION=~T0100$t1,echo \"$i\" > /tmp/action.txt" >> $TMENU
	k=`expr "$k" + 4`; i=`expr "$i" + 1`
done
if [ "$vor" != "" ]
then
	echo "ACTION=~T0100n~achste Seite,echo \"v\" > /tmp/action.txt" >> $TMENU
fi
echo ENDMENU                                >> $TMENU
echo 0 > /tmp/action.txt
shellexec $TMENU
auswahl=`sed -n 1p /tmp/action.txt`
case $auswahl in
v)
SEARCH=$vor
get_result
;;
z)
SEARCH=$zurueck
get_result
;;
0)
continue
;;
*)
position=`expr \( "$auswahl" - 1 \) \* 4 + 1`
detail $position
;;
esac
}


################################################################################
#        Detail-Anzeige eines Eintrags                                         #
################################################################################
detail ()
{
Zeile="$1";
Name=`sed -n "$Zeile"p $TFIL1`; Name=`echo $Name`
Zeile=`expr "$Zeile" + 1`
Info=`sed -n "$Zeile"p $TFIL1|sed -e 's/Info://g'`; Info=`echo $Info`
Zeile=`expr "$Zeile" + 1`
N0180=`sed -n "$Zeile"p $TFIL1'`; N0180=`echo $N0180`
Zeile=`expr "$Zeile" + 1`
NStd=`sed -n "$Zeile"p $TFIL1'`; NStd=`echo $NStd`
Head="Ersatznummer f~ur $Name"
echo teure Nummer: ~R$N0180 >  $TMSG
echo Ersatznummer:               ~G$NStd  >> $TMSG
if [ "$Info" != "" ]
then
	echo Info: >> $TMSG
	echo $Info|sed -e 's/.\{80\} /&\n/g' -e 's/^ //g' >> $TMSG
fi
msgbox title="$Head" msg=$TMSG
}


TITLE="0180-Nummernsuche"
TFILE=/tmp/telinfo.txt
TFIL1=/tmp/telinfo1.txt
TFIL2=/tmp/telinfo2.txt
TMENU=/tmp/telinfo.mnu
TMSG=/tmp/telinfo.msg

rm -f $TFILE
rm -f $TFIL1
rm -f $TFIL2
rm -f $TMSG
rm -f /tmp/action.txt

while [ 1 -eq 1 ]
do
get_search
get_result
done

exit 0;

Link to comment
Share on other sites

  • Admin

@theobald123

 

Wenn jemand Optimierungsmöglichkeiten sieht kann er sie gerne posten. :)

Sieht schon sehr gut aus. Ein Wunsch noch: Wenn mehrere Einträge gefunden wurden und

die Auswahl über FlexMenü erfolgt wäre es schön, wenn beim Schließen des angezeigten

Ersatznummernfensters mit "OK" erst mal wieder in's FlexMenü zurückgegangen wird, um

ggf. die restlichen Fundstellen anzuschauen falls die erste Auswahl nicht die richtige war.

Schließt man das Fenster hingegen mit "Exit", könnte das Plugin komplett beendet werden.

Link to comment
Share on other sites

Steuerung optimiert:

 

Funktionsweise:

 

Suchmaske:

OK: Anzeige Auswahlliste bzw. Detail (wenn genau ein Ergebnis vorhanden ist)

EXIT: Plugin wird beendet

 

Auswahlliste:

OK: Anzeige Detail bzw. weitere Auswahlliste

EXIT: Anzeige Suchmaske

 

Detail:

OK: Anzeige Auswahlliste bzw. Suchmaske (wenn genau ein Ergebnis vorhanden ist)

EXIT: Plugin wird beendet

 

und hier der Code:

#! /bin/sh
# 0180-Nummernsuche
# by theobald123 (Idee: SnowHead)
# Version: 1.0 Coolstream


################################################################################
#        Zählen der Parameter                                                  #
################################################################################
anzahl ()
{ anz=$#; }


################################################################################
#        Eingabe der zu suchenden Telefonnummer oder Firma                     #
################################################################################
get_search ()
{
TELNR=`input l='Tel: 0180 ##########     Firma: @@@@@@@@@@@@@@@@@@Nach Eingabe OK dr~ucken! Tel hat Vorrang vor FirmaEXIT beendet das Plugin' k=1 t=$TITLE`       # Eingabemaske
if [ "$TELNR" = "" ]    # Vorgang abgebrochen
then
	rm -f $TFILE
	rm -f $TFIL1
	rm -f $TFIL2
	rm -f $TMENU
	rm -f $TMSG
	rm -f /tmp/action.txt
	exit
fi
tel1=`echo "$TELNR"|sed -e 's/..................$//g`; tel=0180`echo $tel1 | sed -e 's/ *//g'`
firma1=`echo "$TELNR"|sed -e 's/^..........//g`; firma=`echo $firma1 | sed -e 's/ /+/g'`
if [ "$tel" = "0180" ]
then
	SEARCH=$firma; Suche=$firma1
else
	SEARCH=$tel; Suche=$tel1
fi
SEARCH="suche.html?s="`echo $SEARCH`
}


################################################################################
#        Auswerten der Suchanfrage                                             #
################################################################################
get_result ()
{
wget -q -O $TFILE "http://www.0180.info/$SEARCH"
sed -n '/Zeile mit Ergebnissen/,/COLSPAN=4/ p' $TFILE|sed -e 's/<I>/<I>Info:/g' -e 's/\*//g' -e 's/ändern//g' -e 's/&/\&/g' -e 's/(Neuer Eintrag)//g' -e 's/<[^>]*>//g' -e 's/\n//g' -e '/^[^0-9a-zA-Z!-\/|]*$/d' > $TFIL1
sed -n '/COLSPAN=4/,/COLSPAN=4/ p' $TFILE|sed -e '/^[^0-9a-zA-Z!-\/|]*$/d' > $TFIL2
vor=`sed -n '/butt_vor/{g;1!p;};h' $TFIL2|sed -e 's/^.*suche.html/suche.html/g' -e 's/\".*$//g'`
zurueck=`sed -n '/butt_zurueck/{g;1!p;};h' $TFIL2|sed -e 's/^.*suche.html/suche.html/g' -e 's/\".*$//g'`
items=`sed -n -e '/Info:/ =' $TFIL1`
anzahl $items
if [ $anz -eq 0 ]
then
	msgbox title=$TITLE msg="Kein Eintrag f~ur $Suche"
else
	if [ "$vor" == "" ] && [ "$zurueck" == "" ] && [ $anz -eq 1 ]
	then                  # genau ein Eintrag
		detail 1
	else                  # mehrere Seiten oder Einträge
		get_auswahl
	fi
fi
}


################################################################################
#        Anzeige der einzelnen Firmen                                          #
################################################################################
get_auswahl ()
{
echo FONT=/share/fonts/neutrino.ttf         >  $TMENU
echo FONTSIZE=26                            >> $TMENU
echo HIGHT=800                              >> $TMENU
echo WIDTH=1000                             >> $TMENU
echo LINESPP=15                             >> $TMENU
echo MENU=Firmen~ubersicht f~ur $Suche      >> $TMENU
if [ "$zurueck" != "" ]
then
	echo "ACTION=~T0100vorherige Seite,echo \"z\" > /tmp/action.txt" >> $TMENU
fi
k=1; i=1
while [ $i -le $anz ]
do
		t1=`sed -n "$k"p $TFIL1|sed -e 's/,//g' -e "s/'//g"`   #Firmenname
	echo "ACTION=~T0100$t1,echo \"$i\" > /tmp/action.txt" >> $TMENU
	k=`expr "$k" + 4`; i=`expr "$i" + 1`
done
if [ "$vor" != "" ]
then
	echo "ACTION=~T0100n~achste Seite,echo \"v\" > /tmp/action.txt" >> $TMENU
fi
echo ENDMENU                                >> $TMENU
while [ 1 -eq 1 ]
do 
	echo 0 > /tmp/action.txt
	shellexec $TMENU
	auswahl=`sed -n 1p /tmp/action.txt`
	case $auswahl in
v)
	SEARCH=$vor
	get_result
	;;
z)
	SEARCH=$zurueck
	get_result
	;;
0)
	break
	;;
*)
	position=`expr \( "$auswahl" - 1 \) \* 4 + 1`
	detail $position
	;;
	esac
done
}


################################################################################
#        Detail-Anzeige eines Eintrags                                         #
################################################################################
detail ()
{
Zeile="$1";
Name=`sed -n "$Zeile"p $TFIL1`; Name=`echo $Name`
Zeile=`expr "$Zeile" + 1`
Info=`sed -n "$Zeile"p $TFIL1|sed -e 's/Info://g'`; Info=`echo $Info`
Zeile=`expr "$Zeile" + 1`
N0180=`sed -n "$Zeile"p $TFIL1'`; N0180=`echo $N0180`
Zeile=`expr "$Zeile" + 1`
NStd=`sed -n "$Zeile"p $TFIL1'`; NStd=`echo $NStd`
Head="Ersatznummer f~ur $Name"
echo teure Nummer: ~R$N0180 >  $TMSG
echo Ersatznummer:               ~G$NStd  >> $TMSG
if [ "$Info" != "" ]
then
	echo Info: >> $TMSG
	echo $Info|sed -e 's/.\{80\} /&\n/g' -e 's/^ //g' >> $TMSG
fi
msgbox title="$Head" msg=$TMSG refresh=0
if [ $? -eq 0 ]
then
	exit
fi
}


TITLE="0180-Nummernsuche"
TFILE=/tmp/telinfo.txt
TFIL1=/tmp/telinfo1.txt
TFIL2=/tmp/telinfo2.txt
TMENU=/tmp/telinfo.mnu
TMSG=/tmp/telinfo.msg

rm -f $TFILE
rm -f $TFIL1
rm -f $TFIL2
rm -f $TMSG
rm -f /tmp/action.txt

while [ 1 -eq 1 ]
do
get_search
get_result
done

exit 0;

Link to comment
Share on other sites

  • 3 weeks later...
  • Admin

Nachdem ich gestern durch die Nutzung einer kostenfreien Nummer statt der teuren 0180-Servicenummer

wieder eine ganze Menge Geld gespart hatte, habe ich nun endlich mal ein Archiv gepackt, welches die

Installation des Plugins entweder online oder (aus dem DL-Bereich heruntergeladen) über /tmp ermöglicht.

Danke noch mal an theobald123 für die Weiterentwicklung.

Link to comment
Share on other sites

  • 4 weeks later...

Version 1.2 unterstützt jetzt auch Nummern wie z.B. 0181 070 011.

Das Update ist online und offline möglich.

 

Ein kleiner Schönheitsfehler in Zeile 78 der bewirkt das bei einer Namensabfrage im Titel die Zahl 018 und der Abfragename angezeigt werden.

 

Anstelle...

echo MENU=Firmen~ubersicht f~ur 018$Suche       >> $TMENU

 

würde ich mal das folgende testen

echo MENU=Firmen~ubersicht f~ur $Suche       >> $TMENU

 

Edit: Klappt dann zwar bei der Namenssuche, aber bei der Nummersuche fehlt dann 018 am Anfag der Nummer, müsste also noch etwas anderes angepasst werden :(

Edited by Bazi98
Link to comment
Share on other sites

Ich habe den code noch en klein wenig verändert.

Jetzt sollten alle Möglichkeiten richtig angezeigt werden.

 

#! /bin/sh
# 0180-Nummernsuche
# by theobald123 (Idee: SnowHead)
# Version: 1.2 Coolstream


################################################################################
#        Zählen der Parameter                                                  #
################################################################################
anzahl ()
{ anz=$#; }


################################################################################
#        Eingabe der zu suchenden Telefonnummer oder Firma                     #
################################################################################
get_search ()
{
TELNR=`input l='Tel:   018###############Firma: @@@@@@@@@@@@@@@@@@Nach Eingabe OK dr~ucken! Tel hat Vorrang vor FirmaEXIT beendet das Plugin                            Powered by teltarif.de' k=1 t=$TITLE`       # Eingabemaske
if [ "$TELNR" = "" ]    # Vorgang abgebrochen
then
	rm -f $TFILE
	rm -f $TFIL1
	rm -f $TFIL2
	rm -f $TMENU
	rm -f $TMSG
	rm -f /tmp/action.txt
	exit
fi
tel1=`echo "$TELNR"|sed -e 's/..................$//g`; tel=018`echo $tel1 | sed -e 's/ *//g'`
firma1=`echo "$TELNR"|sed -e 's/^..........//g`; firma=`echo $firma1 | sed -e 's/ /+/g'`
if [ "$tel" = "018" ]
then
	SEARCH=$firma; Suche=$firma1
else
	SEARCH=$tel; Suche=$tel
fi
SEARCH="suche.html?s="`echo $SEARCH`
}


################################################################################
#        Auswerten der Suchanfrage                                             #
################################################################################
get_result ()
{
wget -q -O $TFILE "http://www.0180.info/$SEARCH"
sed -n '/Zeile mit Ergebnissen/,/COLSPAN=4/ p' $TFILE|sed -e 's/<I>/<I>Info:/g' -e 's/\*//g' -e 's/ändern//g' -e 's/&/\&/g' -e 's/(Neuer Eintrag)//g' -e 's/<[^>]*>//g' -e 's/\n//g' -e '/^[^0-9a-zA-Z!-\/|]*$/d' > $TFIL1
sed -n '/COLSPAN=4/,/COLSPAN=4/ p' $TFILE|sed -e '/^[^0-9a-zA-Z!-\/|]*$/d' > $TFIL2
vor=`sed -n '/butt_vor/{g;1!p;};h' $TFIL2|sed -e 's/^.*suche.html/suche.html/g' -e 's/\".*$//g'`
zurueck=`sed -n '/butt_zurueck/{g;1!p;};h' $TFIL2|sed -e 's/^.*suche.html/suche.html/g' -e 's/\".*$//g'`
items=`sed -n -e '/Info:/ =' $TFIL1`
anzahl $items
if [ $anz -eq 0 ]
then
	msgbox title=$TITLE msg="Kein Eintrag f~ur $Suche"
else
	if [ "$vor" == "" ] && [ "$zurueck" == "" ] && [ $anz -eq 1 ]
	then                  # genau ein Eintrag
		detail 1
	else                  # mehrere Seiten oder Einträge
		get_auswahl
	fi
fi
}


################################################################################
#        Anzeige der einzelnen Firmen                                          #
################################################################################
get_auswahl ()
{
echo FONT=/share/fonts/neutrino.ttf         >  $TMENU
echo FONTSIZE=26                            >> $TMENU
echo HIGHT=800                              >> $TMENU
echo WIDTH=1000                             >> $TMENU
echo LINESPP=15                             >> $TMENU
echo MENU=Firmen~ubersicht f~ur $Suche      >> $TMENU
if [ "$zurueck" != "" ]
then
	echo "ACTION=~T0100vorherige Seite,echo \"z\" > /tmp/action.txt" >> $TMENU
fi
k=1; i=1
while [ $i -le $anz ]
do
		t1=`sed -n "$k"p $TFIL1|sed -e 's/,//g' -e "s/'//g"`   #Firmenname
	echo "ACTION=~T0100$t1,echo \"$i\" > /tmp/action.txt" >> $TMENU
	k=`expr "$k" + 4`; i=`expr "$i" + 1`
done
if [ "$vor" != "" ]
then
	echo "ACTION=~T0100n~achste Seite,echo \"v\" > /tmp/action.txt" >> $TMENU
fi
echo ENDMENU                                >> $TMENU
while [ 1 -eq 1 ]
do
	echo 0 > /tmp/action.txt
	shellexec $TMENU
	auswahl=`sed -n 1p /tmp/action.txt`
	case $auswahl in
v)
	SEARCH=$vor
	get_result
	;;
z)
	SEARCH=$zurueck
	get_result
	;;
0)
	break
	;;
*)
	position=`expr \( "$auswahl" - 1 \) \* 4 + 1`
	detail $position
	;;
	esac
done
}


################################################################################
#        Detail-Anzeige eines Eintrags                                         #
################################################################################
detail ()
{
Zeile="$1";
Name=`sed -n "$Zeile"p $TFIL1`; Name=`echo $Name`
Zeile=`expr "$Zeile" + 1`
Info=`sed -n "$Zeile"p $TFIL1|sed -e 's/Info://g'`; Info=`echo $Info`
Zeile=`expr "$Zeile" + 1`
N0180=`sed -n "$Zeile"p $TFIL1'`; N0180=`echo $N0180`
Zeile=`expr "$Zeile" + 1`
NStd=`sed -n "$Zeile"p $TFIL1'`; NStd=`echo $NStd`
Head="Ersatznummer f~ur $Name"
echo teure Nummer: ~R$N0180 >  $TMSG
echo Ersatznummer:               ~G$NStd  >> $TMSG
if [ "$Info" != "" ]
then
	echo Info: >> $TMSG
	echo $Info|sed -e 's/.\{80\} /&\n/g' -e 's/^ //g' >> $TMSG
fi
msgbox title="$Head" msg=$TMSG refresh=0
if [ $? -eq 0 ]
then
	exit
fi
}


TITLE="0180-Nummernsuche"
TFILE=/tmp/telinfo.txt
TFIL1=/tmp/telinfo1.txt
TFIL2=/tmp/telinfo2.txt
TMENU=/tmp/telinfo.mnu
TMSG=/tmp/telinfo.msg

rm -f $TFILE
rm -f $TFIL1
rm -f $TFIL2
rm -f $TMSG
rm -f /tmp/action.txt

while [ 1 -eq 1 ]
do
get_search
get_result
done

exit 0;

 

Link to comment
Share on other sites

  • Admin

@theobald123

 

Danke für die Änderungen. Deine Version ist jetzt als 1.3 online und offline zum Update verfügbar.

Schau bei Gelegenheit bitte noch mal, was bei z.B. 01803040500 schiefgeht. Da ist was verschoben.

Link to comment
Share on other sites

erledigt!

Ich hatte den Zusatz (Eintrag geändert) nicht abgefangen.

 

 

#! /bin/sh
# 0180-Nummernsuche
# by theobald123 (Idee: SnowHead)
# Version: 1.2 Coolstream


################################################################################
#        Zählen der Parameter                                                  #
################################################################################
anzahl ()
{ anz=$#; }


################################################################################
#        Eingabe der zu suchenden Telefonnummer oder Firma                     #
################################################################################
get_search ()
{
TELNR=`input l='Tel:   018###############Firma: @@@@@@@@@@@@@@@@@@Nach Eingabe OK dr~ucken! Tel hat Vorrang vor FirmaEXIT beendet das Plugin                            Powered by teltarif.de' k=1 t=$TITLE`       # Eingabemaske
if [ "$TELNR" = "" ]    # Vorgang abgebrochen
then
	rm -f $TFILE
	rm -f $TFIL1
	rm -f $TFIL2
	rm -f $TMENU
	rm -f $TMSG
	rm -f /tmp/action.txt
	exit
fi
tel1=`echo "$TELNR"|sed -e 's/..................$//g`; tel=018`echo $tel1 | sed -e 's/ *//g'`
firma1=`echo "$TELNR"|sed -e 's/^..........//g`; firma=`echo $firma1 | sed -e 's/ /+/g'`
if [ "$tel" = "018" ]
then
	SEARCH=$firma; Suche=$firma1
else
	SEARCH=$tel; Suche=$tel
fi
SEARCH="suche.html?s="`echo $SEARCH`
}


################################################################################
#        Auswerten der Suchanfrage                                             #
################################################################################
get_result ()
{
wget -q -O $TFILE "http://www.0180.info/$SEARCH"
sed -n '/Zeile mit Ergebnissen/,/COLSPAN=4/ p' $TFILE|sed -e 's/<I>/<I>Info:/g' -e 's/\*//g' -e 's/ändern//g' -e 's/&/\&/g' -e 's/(Neuer Eintrag)//g' -e 's/(Eintrag geändert)//g' -e 's/<[^>]*>//g' -e 's/\n//g' -e '/^[^0-9a-zA-Z!-\/|]*$/d' > $TFIL1
sed -n '/COLSPAN=4/,/COLSPAN=4/ p' $TFILE|sed -e '/^[^0-9a-zA-Z!-\/|]*$/d' > $TFIL2
vor=`sed -n '/butt_vor/{g;1!p;};h' $TFIL2|sed -e 's/^.*suche.html/suche.html/g' -e 's/\".*$//g'`
zurueck=`sed -n '/butt_zurueck/{g;1!p;};h' $TFIL2|sed -e 's/^.*suche.html/suche.html/g' -e 's/\".*$//g'`
items=`sed -n -e '/Info:/ =' $TFIL1`
anzahl $items
if [ $anz -eq 0 ]
then
	msgbox title=$TITLE msg="Kein Eintrag f~ur $Suche"
else
	if [ "$vor" == "" ] && [ "$zurueck" == "" ] && [ $anz -eq 1 ]
	then                  # genau ein Eintrag
		detail 1
	else                  # mehrere Seiten oder Einträge
		get_auswahl
	fi
fi
}


################################################################################
#        Anzeige der einzelnen Firmen                                          #
################################################################################
get_auswahl ()
{
echo FONT=/share/fonts/neutrino.ttf         >  $TMENU
echo FONTSIZE=26                            >> $TMENU
echo HIGHT=800                              >> $TMENU
echo WIDTH=1000                             >> $TMENU
echo LINESPP=15                             >> $TMENU
echo MENU=Firmen~ubersicht f~ur $Suche      >> $TMENU
if [ "$zurueck" != "" ]
then
	echo "ACTION=~T0100vorherige Seite,echo \"z\" > /tmp/action.txt" >> $TMENU
fi
k=1; i=1
while [ $i -le $anz ]
do
		t1=`sed -n "$k"p $TFIL1|sed -e 's/,//g' -e "s/'//g"`   #Firmenname
	echo "ACTION=~T0100$t1,echo \"$i\" > /tmp/action.txt" >> $TMENU
	k=`expr "$k" + 4`; i=`expr "$i" + 1`
done
if [ "$vor" != "" ]
then
	echo "ACTION=~T0100n~achste Seite,echo \"v\" > /tmp/action.txt" >> $TMENU
fi
echo ENDMENU                                >> $TMENU
while [ 1 -eq 1 ]
do
	echo 0 > /tmp/action.txt
	shellexec $TMENU
	auswahl=`sed -n 1p /tmp/action.txt`
	case $auswahl in
v)
	SEARCH=$vor
	get_result
	;;
z)
	SEARCH=$zurueck
	get_result
	;;
0)
	break
	;;
*)
	position=`expr \( "$auswahl" - 1 \) \* 4 + 1`
	detail $position
	;;
	esac
done
}


################################################################################
#        Detail-Anzeige eines Eintrags                                         #
################################################################################
detail ()
{
Zeile="$1";
Name=`sed -n "$Zeile"p $TFIL1`; Name=`echo $Name`
Zeile=`expr "$Zeile" + 1`
Info=`sed -n "$Zeile"p $TFIL1|sed -e 's/Info://g'`; Info=`echo $Info`
Zeile=`expr "$Zeile" + 1`
N0180=`sed -n "$Zeile"p $TFIL1'`; N0180=`echo $N0180`
Zeile=`expr "$Zeile" + 1`
NStd=`sed -n "$Zeile"p $TFIL1'`; NStd=`echo $NStd`
Head="Ersatznummer f~ur $Name"
echo teure Nummer: ~R$N0180 >  $TMSG
echo Ersatznummer:               ~G$NStd  >> $TMSG
if [ "$Info" != "" ]
then
	echo Info: >> $TMSG
	echo $Info|sed -e 's/.\{80\} /&\n/g' -e 's/^ //g' >> $TMSG
fi
msgbox title="$Head" msg=$TMSG refresh=0
if [ $? -eq 0 ]
then
	exit
fi
}


TITLE="0180-Nummernsuche"
TFILE=/tmp/telinfo.txt
TFIL1=/tmp/telinfo1.txt
TFIL2=/tmp/telinfo2.txt
TMENU=/tmp/telinfo.mnu
TMSG=/tmp/telinfo.msg

rm -f $TFILE
rm -f $TFIL1
rm -f $TFIL2
rm -f $TMSG
rm -f /tmp/action.txt

while [ 1 -eq 1 ]
do
get_search
get_result
done

exit 0;

 

Link to comment
Share on other sites

  • 2 years later...

Das Skript funktioniert bei mir nicht mehr, ich bekomme bei jeder Nummern- oder Namenssuche als Antwort "Kein Eintrag für xxx" und habe deshalb die Vermutung dass das Abfrage Format geändert wurde.

 

Laut Seitenquelltext wird aktuell der folgende Syntax verwendet

<link rel="alternate" media="handheld" href="http://mobil.0180.info/suche.html?s=01802266222">
<link rel="canonical" href="http://www.0180.info/suche.html?s=01802266222">

ps.: Die 01802-266222 ist die von Sky und via Browserabfrage liefert die auf der Seite ein Ergebniss ;)

Link to comment
Share on other sites

  • Admin

@bazi98

 

Danke für den Hinweis. Die Abfrage an sich stimmt noch nur ist das Seitenlayout komplett

umgestellt, was Scripten, welche HTML-Seiten parsen schon öfters auf die Füße gefallen

ist. Da das Script aus der Feder von theobald123 stammt, würde ich vorschlagen, daß er

sich der Sache annimmt, falls und wenn er Zeit hat. Ich komme im Moment nicht dazu, mich

damit zu befassen.

Link to comment
Share on other sites

  • 2 months later...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...