#! /bin/sh
#*******************************************************************************
#* Liga-Ergebnisse und Tabellen in Messagebox anzeigen                         *
#* (c)Bazi98 & theobald123                                                     *
#* Lizenz: GPL 2                                                               *
#* Version: 3.2 CST Neutrino HD                                                *
#* Stand: 20.09.2014                                                           *
#* Speicherort: /var/plugins chmod 755                                         *
#* ben~otigt ggf. shellexc und msgbox unter /bin/ chmod jeweils 755            *
#* f~ur Aufruf via Flex-Men~u in der shellexc.conf die folgende Zeile          *
#* ohne vorgestellte Raute einf~ugen:                                          *
#* ACTION=&Fu~zball Ergebnisse und Tabellen,var/plugins/liga_nat,Bitte warten. *
#*******************************************************************************

teampfad="/var/liga_nat"                                                                    #Verzeichnis fr die Vereinsnamen
url="http://ilt21.ticker.comon.ergebnis-dienst.de/"                                                              #Datenquelle
tabellenselect="~GSpiele~S,BL 1,BL 2,3. Liga,RL N,,~GFAV~S,RL NO,RL W,RL SW, RL Bay"        #Select-Angabe fr Tabellenanzeige

#**********************
#* Spieltag ermitteln *
#**********************
get_matchday ()
{
	wget -q -O - "$url/$1" | \
	sed -n -e /\"competition_id\":/p -e /\"season_id\":/p -e /\"matchday\":/p | \
	sed -e 's/^.*://g' -e 's/,.*$//g' -e 's/\"//g' > /tmp/test.txt
	co=`sed -n 1p /tmp/test.txt`;co=`echo $co`;co=`echo "co"$co`
	se=`sed -n 2p /tmp/test.txt`;se=`echo $se`;se=`echo "se"$se`
	md=`sed -n 3p /tmp/test.txt`;md=`echo $md`
	if [ "$typ" == "ergebnisse" ]; then
		if [ "$gd" == "prev" ]; then
			md=`expr "$md" - 1`
		fi
	fi
}

#***********************************************
#* Auftrennen der Ergebniszeile in Einzelwerte *
#***********************************************
ergebniszeile ()
{ 
	pn=$#
	anstosstag=`echo $1 | sed -e 's/-//g'`; anstosstag=`echo $anstosstag`
	anstosszeit=`echo $2 | sed -e 's/://g'`; anstosszeit=`echo $anstosszeit`
	if [ "$anstosstag" -lt "$jetzttag" ]; then
		spiel_gestartet="yes"
	elif [ "$anstosstag" -eq "$jetzttag" -a "$anstosszeit" -lt "$jetztzeit" ]; then
		spiel_gestartet="yes"
	else
		spiel_gestartet="no"
	fi
	spiel_beendet=$3
	team_home=`cat $teampfad/$co/$se/$4.txt`; team_home=`echo $team_home`
	result_home=$5
	team_away=`cat $teampfad/$co/$se/$6.txt`; team_away=`echo $team_away`
	result_away=$7
}

#***********************************************
#* Auftrennen der Tabellenzeile in Einzelwerte *
#***********************************************
tabellenzeile ()
{ 
	pn=$#
	team_name=`cat $teampfad/$co/$se/$1.txt`; team_name=`echo $team_name`
	spiele=$2
	punkte=$3
	tore=$4
	g=$5
	u=$6
	n=$7
	diff=$8
}

#*************************************
#* Einmaliges Laden der Vereinsnamen *
#*************************************
vereinsnamen ()
{
	msgbox size=22 timeout=10 popup="Vereinsnamen werden geladen"
	rm    -rf $teampfad/$co
	mkdir -p  $teampfad/$co/$se
	wget -q -O - "$url/json_team/$co/$se" | \
	sed -e 's/},/},\n/g' | \
	sed -n '/\"short\"/p' | \
	sed -e 's/\",\"short.*$//g' | \
	sed	-e 's/\":{\"name\":\"/|/g' | \
	sed	-e 's/^.*\"//g' -e 's/}//g' \
		-e 's/ä//g' -e 's/&auml;//g'  -e 's/&#228;//g' \
		-e 's/ö//g' -e 's/&ouml;//g'  -e 's/&#246;//g' \
		-e 's/ü//g' -e 's/&uuml;//g'  -e 's/&#252;//g' \
		-e 's/Ä//g' -e 's/&Auml;//g'  -e 's/&#196;//g' \
		-e 's/Ö//g' -e 's/&Ouml;//g'  -e 's/&#214;//g' \
		-e 's/Ü//g' -e 's/&Uuml;//g'  -e 's/&#220;//g' \
		-e 's/ß//g' -e 's/&szlig;//g' -e 's/&#223;//g' \
		               > /tmp/test.txt
	teams=`sed -n '$='   /tmp/test.txt`

	count=1
	while [ $count -le $teams ]; do
		team_nummer=`sed -n "$count"p /tmp/test.txt | sed -e 's/|.*$//g`; team_nummer=`echo $team_nummer`
		team_name=`sed -n "$count"p   /tmp/test.txt | sed -e 's/^.*|//g`; team_name=`echo $team_name`
		echo $team_name > $teampfad/$co/$se/$team_nummer.txt
		count=`expr "$count" + 1`
	done
}

# ******************************************
# *  Funktion zum Erstellen der Ergebnisse *
# * ~Ubergabeparameter 1: Internet-Adresse *
# ******************************************
liga ()
{
	get_matchday $2

	if [ ! -d /$teampfad/$co/$se ]; then
		vereinsnamen
	fi

	Head="$md. Spieltag der $1"
	spieldaten $2
	paarungsaufbau
}

#************************************
#* Daten zu den Spielen extrahieren *
#************************************
spieldaten ()
{
	jetzt=`date -Iseconds`
	jetzttag=`echo $jetzt  | sed -e 's/-//g'    -e 's/T.*$//g'`
	jetztzeit=`echo $jetzt | sed -e 's/^.*T//g' -e 's/://g' -e 's/+.*$//g'`
	wget -q -O - "$url/json_live/$co/$se/md$md" | \
	sed -n -e /\"event\"/p | \
	sed -e 's/},/},\n/g' | \
	sed -e 's/^.*\"date\":\"//g' \
		-e 's/\",\"match_time_known.*finished\":\"/ /g' \
		-e 's/\",\"incident.*home\":\"/ /g' \
		-e 's/\",\"home_score\":\[/ /g' \
		-e 's/\],\"home_color.*away\":\"/ /g' \
		-e 's/\",\"away_score\":\[/ /g' \
		-e 's/\],\"away_color.*$//g' > /tmp/test.txt
	paarungen=`sed -n '$='             /tmp/test.txt`
}

#*****************************
#* Aufbau der Spielpaarungen *
#*****************************
paarungsaufbau ()
{ 
	rm /tmp/test2.txt
	count=1
	while [ $count -le $paarungen ]; do
		paarung=`sed -n "$count"p /tmp/test.txt`
		ergebniszeile $paarung
		ergebnisaufbau
		a3=$ergebnis
		echo  "~T0230$team_home~T0525-~T0545$team_away~T0850$a3" >> /tmp/test2.txt
		echo $ergebnis >> /tmp/tore_neu.txt
		count=`expr "$count" + 1`
	done
	echo ~T0230~BQuelle: www.heimspiel.de~S >> /tmp/test2.txt

	typ="ergebnisse"
	last_auswahl=$auswahl
	msgbox title="$Head" order=6 absolute=1 default=$auswahl select="$ergebnisselect" size=22 timeout=-1 msg=/tmp/test2.txt refresh=1
	auswahl=$?
	auswahloption
}

#***************************
#* Ergebnis zusammensetzen *
#***************************
ergebnisaufbau ()
{
	echo "$result_home" | sed -e 's/,/\n/g' > /tmp/tore.txt
	h=`sed -n '$=' /tmp/tore.txt`; h=`echo $h`
	if [ $h -eq 2 ]; then
		hg=`sed -n "1"p /tmp/tore.txt`;hg=`echo $hg`
		h1=`sed -n "2"p /tmp/tore.txt`;h1=`echo $h1`
	else
		hg=`echo "-"`
		h1=`sed -n "1"p /tmp/tore.txt`;h1=`echo $h1`
	fi

	echo "$result_away" | sed -e 's/,/\n/g' > /tmp/tore.txt
	a=`sed -n '$=' /tmp/tore.txt`; a=`echo $a`
	if [ $a -eq 2 ]; then
		ag=`sed -n "1"p /tmp/tore.txt`;ag=`echo $ag`
		a1=`sed -n "2"p /tmp/tore.txt`;a1=`echo $a1`
	else
		ag=`echo "-"`
		a1=`sed -n "1"p /tmp/tore.txt`;a1=`echo $a1`
	fi
	ergebnis=`echo $hg:$ag "("$h1:$a1")"`

	if [ "$spiel_beendet" == "yes" ]; then
		:
	elif [ "$spiel_gestartet" == "no" ]; then
		ergebnis=`echo "-:- (-:-)"`
	else
		ergebnis=`echo ~R$ergebnis~S`
	fi
}

# **************************************
# * Funktion zum Erstellen der Tabelle *
# **************************************
tabelle ()
{
	get_matchday $2

	if [ ! -d /$teampfad/$co/$se ]; then
		vereinsnamen
	fi

	Head="Tabelle der $1"
	tabellendaten $2
	echo  ~T0250Pl~T0300Verein~T0625Sp~T0680Tore~T0755S~T0795U~T0835N~T0885Diff~T0965Pkt > /tmp/test4.txt
	count=1
	while [ $count -le $teams ]; do
 		platz=$count; platz=`echo $platz`
 		if [ $count -lt 10 ];
		then
                  platz=~T0260$platz
 		else
                  platz=~T0250$platz
 		fi
 		zeile=`sed -n "$count"p /tmp/test.txt`;
		tabellenzeile $zeile
		echo  $platz~T0300$team_name~T0625$spiele~T0680$tore~T0755$g~T0795$u~T0835$n~T0885$diff~T0965$punkte >> /tmp/test4.txt
		count=`expr "$count" + 1`
	done
	echo ~T0250~BQuelle: www.heimspiel.de~S >> /tmp/test4.txt

	typ="tabelle"
	last_auswahl=$auswahl
	msgbox title="$Head" order=5 absolute=1 default=$auswahl select="$tabellenselect" size=24 timeout=-1 msg=/tmp/test4.txt refresh=1
	auswahl=$?
	auswahloption
}

#*********************************
#* Daten zur Tabelle extrahieren *
#*********************************
tabellendaten ()
{
	wget -q -O - "$url/json_live/$co/$se/$md" | \
	sed -n -e /\"ranking\"/p | \
	sed -e 's/},/},\n/g' | \
	sed -e 's/^.*\id\":\"//g' \
		-e 's/\",\"ga.*ed\":\"/ /g' \
		-e 's/\",\"points\":\"/ /g' \
		-e 's/\",\"score\":\"/ /g' \
		-e 's/\",\"score_against\":\"/:/g' \
		-e 's/\",\"win\":\"/ /g' \
		-e 's/\",\"draw\":\"/ /g' \
		-e 's/\",\"lost\":\"/ /g' \
		-e 's/\",\"difference\":\"/ /g' \
		-e 's/\",\"rank.*$//g' > /tmp/test.txt
	teams=`sed -n '$='           /tmp/test.txt`
}

# ***********************************************************************
# *Liga ausw~ahlen und Daten aus Internet in eine lokale Datei einlesen *
# ***********************************************************************
auswahloption ()
{
	case $auswahl	in
	1)
		switch
		;;
	2)
		if [ "$competition" == "co12" ]; then
			switch
		else
			titel="1. Bundesliga"
			competition="co12"
			gd="next"
			prevnext="prev"

		fi
		;;
	3)
		if [ "$competition" == "co3" ]; then
			switch
		else
			titel="2. Bundesliga"
			competition="co3"
			gd="next"
			prevnext="prev"
		fi
		;;
	4)
		if [ "$competition" == "co4" ]; then
			switch
		else
			titel="3. Liga"
			competition="co4"
			gd="next"
			prevnext="prev"
		fi
		;;
	5)
		if [ "$competition" == "co107" ]; then
			switch
		else
			titel="Regionalliga Nord"
			competition="co107"
			gd="next"
			prevnext="prev"
		fi
		;;
	6)
		if [ "$gd" == "next" ]; then
			gd="prev"
			prevnext="next"

		else
			gd="next"
			prevnext="prev"
		fi
		;;
	7)
		echo $titel  >  $teampfad/liga_nat.cfg
		echo $competition >> $teampfad/liga_nat.cfg
		echo $typ >> $teampfad/liga_nat.cfg
		echo $last_auswahl >> $teampfad/liga_nat.cfg
		msgbox size=22 timeout=10 popup="Seite wurde als Startseite festgelegt"
		;;
	8)
		if [ "$competition" == "co2255" ]; then
			switch
		else
			titel="Regionalliga Nordost"
			competition="co2255"
			gd="next"
			prevnext="prev"
		fi
		;;
	9)
		if [ "$competition" == "co564" ]; then
			switch
		else
			titel="Regionalliga West"
			competition="co564"
			gd="next"
			prevnext="prev"
		fi
		;;
	10)
		if [ "$competition" == "co2256" ]; then
			switch
		else
			titel="Regionalliga S~udwest"
			competition="co2256"
			gd="next"
			prevnext="prev"
		fi
		;;
	11)
		if [ "$competition" == "co2257" ]; then
			switch
		else
			titel="Regionalliga Bayern"
			competition="co2257"
			gd="next"
			prevnext="prev"
		fi
		;;
	12)
		:
		;;
	*)
		rm /tmp/test*.txt
		rm /tmp/tore*.txt
		exit
		;;
	esac
	
	ergebnisselect="~GTabelle~S,BL 1,BL 2,3. Liga,RL N,~R$prevnext~S,~GFAV~S,RL NO,RL W,RL SW, RL Bay,~Rrefresh~S"  #Select-Angabe fr Tabellenanzeige
	if [ "$typ" == "tabelle" ]; then
		tabelle "$titel" "$competition"
	else
		liga "$titel" "$competition"
	fi
}

#***********************************************
#* Umschalten zwischen Tabelle und Ergebnissen *
#***********************************************
switch ()
{
	if [ "$typ" == "tabelle" ]; then
		typ="ergebnisse"
	else
		typ="tabelle"
	fi
}

gd="next"
prevnext="prev"
ergebnisselect="~GTabelle~S,BL 1,BL 2,3. Liga,RL N,~R$prevnext~S,~GFAV~S,RL NO,RL W,RL SW, RL Bay,~Rrefresh~S"  #Select-Angabe fr Tabellenanzeige
typ="ergebnisse"
if [ -e $teampfad/liga_nat.cfg ]; then
	titel=`sed -n 1p $teampfad/liga_nat.cfg`; titel=`echo $titel`
	competition=`sed -n 2p $teampfad/liga_nat.cfg`; competition=`echo $competition`
	typ=`sed -n 3p $teampfad/liga_nat.cfg`; typ=`echo $typ`
	auswahl=`sed -n 4p $teampfad/liga_nat.cfg`; auswahl=`echo $auswahl`
	if [ "$typ" == "tabelle" ]; then
		tabelle "$titel" "$competition"
	else
		liga "$titel" "$competition"
	fi
else
	auswahl=2
	titel="1.Bundesliga"
	competition="co12"
	liga "$titel" "$competition"
fi
exit