#!/bin/sh
###############################################################################
#
# doscaminfo 0.12 fred_feuerstein [NI-Team] (basiert auf der Idee von tewsbo und annie)
# 
# Ziel:
# Anzeige von ECM-Infos oberhalb der eingeblendeten Infobar beim Umschalten
# oder auch ueber die Info-Taste.
# Bei FTA-Sendern wird stattdessen die NI-Image Version, das Datum und
# optional die aktuelle Temperatur angezeigt. (die Temp-Anzeige setzt allerdings
# das weather-script, welches fuer das externes DPF eingeschaltet werden kann,
# voraus).
###############################################################################


echo "$$" >/tmp/doscaminfo.pid

## Variable
PAUSE="4"								#alle x sekunden wird aktualisiert

## ab hier keine Änderungen mehr noetig!

## ermitteln der Image-Version/Datum
FILE=$(cat /.version)
#NAME=`echo "$FILE" | grep imagename`
#N1=`echo ${NAME:10:14}`
VERSION=`echo "$FILE" | grep version=2`
V1=`echo ${VERSION:9:1}`
V2=`echo ${VERSION:10:2}`
DESCRIBE=`echo "$FILE" | grep describe | cut -d'=' -f2 | cut -d"-" -f1,2`
#BUILD=`echo "$FILE" | grep builddate`
#B1=`echo ${BUILD:10:10}`
JAHR=`echo ${VERSION:12:4}`
MONAT=`echo ${VERSION:16:2}`
TAG=`echo ${VERSION:18:2}`

## wenn HD51, welche Bank ist aktiv
if [ -e /boot/STARTUP ] ; then
   STARTUP=$(cat /boot/STARTUP)
   BANKTEMP=`echo "$STARTUP" | grep boot`
   BANK=`echo ${BANKTEMP:22:1}`
   if [ $BANK == "e" ] ; then
     BANK=`echo ${BANKTEMP:27:1}`
   fi
fi



# Augabedatei
OUT="/tmp/infobar.txt"

###############

while [ -e /var/etc/.doscaminfo ]

do

		# genutzte softcam: cccam

            if [ -e /var/etc/.cccam ] ; then     

                if [ -e /tmp/ecm.info ] ; then
    						  cp -f /tmp/ecm.info /tmp/ecm.copy 
                  FT=`grep system /tmp/ecm.copy`
                  FTA=`echo ${FT:12:3}`
                   if [ "$FTA" = "FTA" ] ; then
						            #
						            #---------- /.version auslesen nach Image-Version, Build-Datum ----------
 							          #---------- /aktuelles Datum und aktuelle Temperatur (aus /tmp/lcd/) -------
    						        #
												#
												# ohne Temperatur-Anzeige
						            if [ -e /boot/STARTUP ] ; then
						              echo "| NI "$V1"."$V2" in Bank"$BANK" vom "$TAG"."$MONAT"."$JAHR"  |  Datum "$(date +"%d.%m.%Y")"  |" > $OUT
 						           else
   							           echo "| NI "$V1"."$V2" vom "$TAG"."$MONAT"."$JAHR"  |  Datum "$(date +"%d.%m.%Y")"  |" > $OUT
    						        fi
                   else
		    						cp -f /tmp/ecm.info /tmp/ecm.copy 
				 						SID=$(wget -q -O - http://127.0.0.1/control/getonidsid)
										START=$(((${#SID})-5))
										S=`echo ${SID:${START}:4}`
										CA=`grep caid /tmp/ecm.copy`
										L=`echo ${CA:14:5}`
  		   			      AD=`grep address /tmp/ecm.copy`
     					      M=`echo ${AD:12:24}`
										TI=`grep ecm /tmp/ecm.copy`
    				        N=`echo ${TI:12:5}`
				            #
				            #---------- prüfen ob /var/etc/.card vorhanden (EMM Änderungsprüfung von FlatTV)
   					        #
      				      if [ -e /var/etc/.card ] ; then
     				       		E="**EMMchange**"
    				        else
      				      		E="time: "$N"s"
  				          fi
     				       echo "| caid: "$L" | sid: "$S" | "$M" | "$E" |" > $OUT
       				     rm -f /tmp/ecm.copy
                  fi
							  fi

            else
						# genutzte softcam: doscamm oscam, ncam

            if [ -e /tmp/ecm.info ] ; then
            #
            #---------- /tmp/ecm.info auslesen nach caid, from und ecm time ----------
            #

		        if [ -e /var/etc/.doscam -o /var/etc/.oscam -o /var/etc/.ncam -o /var/etc/.osemu ] ; then     
    						cp -f /tmp/ecm.info /tmp/ecm.copy 
		 						SID=$(wget -q -O - http://127.0.0.1/control/getonidsid)
								START=$(((${#SID})-5))
								S=`echo ${SID:${START}:4}`
								CA=`grep caid /tmp/ecm.copy`
								L=`echo ${CA:8:5}`
     			      M=`grep reader /tmp/ecm.copy`
								TI=`grep ecm /tmp/ecm.copy`
    		        N=`echo ${TI:10:5}`
						fi

            #
            #---------- prüfen ob /var/etc/.card vorhanden (EMM Änderungsprüfung von FlatTV)
            #
            if [ -e /var/etc/.card ] ; then
            		E="**EMMchange**"
            else
            		E="time: "$N"s"
            fi
            echo "| caid: "$L" | sid: "$S" | "$M" | "$E" |" > $OUT
            rm -f /tmp/ecm.copy
        else
            #
            #---------- /.version auslesen nach Image-Version, Build-Datum ----------
            #---------- /aktuelles Datum und aktuelle Temperatur (aus /tmp/lcd/) -------
            #
						#
						# ohne Temperatur-Anzeige
            if [ -e /boot/STARTUP ] ; then
              echo $DESCRIBE" v. "$TAG"."$MONAT"."$JAHR", Bank"$BANK" | Dat. "$(date +"%d.%m.%Y")"" > $OUT
            else
              echo $DESCRIBE" v. "$TAG"."$MONAT"."$JAHR" | Datum "$(date +"%d.%m.%Y")"" > $OUT
            fi
        fi
      fi
        sleep $PAUSE

done
rm -f $OUT
exit

