#!/bin/sh

VERSION=10
WEBSITE="http://dreambox:dreambox01@www.shoenix.net/cgi-bin/subtitle.cgi"
SCRIPT="$0"
MSGBOX="/var/bin/msgbox"
SHEXEC="/var/bin/shellexec"
BOXTYPE="`sed -e'/^type=/!d' -e 's/type=//' /proc/bus/dreambox`"
MENUFILE="/tmp/subtitle.menu"
INCFILE="/tmp/subtitle.inc"
TMPFILE="/tmp/subtitle.tmp"

# Uncomment and edit the variable below to override the Drtic directory
# This will be copied while upgrading.
#DRTICDIR="/etc/tuxbox/Drtic/tit"

if [ "$DRTICDIR" = "" ]; then
	case "$BOXTYPE" in
		DM7000)	DRTICDIR="/var/tit"
			;;
		DM500)	DRTICDIR="/tmp"
			;;
		*)	DRTICDIR="/etc/tuxbox/Drtic/tit"
			;;
	esac
fi

if [ ! -d $DRTICDIR ]; then
	$MSGBOX msg="~cDe DrTic directory bestaat niet! ($DRTICDIR)."
	exit 0;
fi


if [ "$1" = "menu" ]; then
	echo "MENU=Shoenix Ondertitels (v$VERSION)" > $MENUFILE
	echo "ACTION=&Download,(input l='Titel:@@@@@@@@@@@@@@@@@' t='Film Titel (of deel)' d=' ' c=25 k=0 f=0 | $SCRIPT ),Moment a.u.b. ..." >> $MENUFILE
	echo "ACTION=&Verwijderen,($SCRIPT deletelist ; ret=\$? ; if [ \$ret -eq 0 ]; then $SHEXEC $INCFILE; fi),De lijst wordt gegenereerd ..." >> $MENUFILE
	echo "ACTION=&Script Upgraden,($SCRIPT upgrade),Moment a.u.b. ..." >> $MENUFILE
	echo "ENDMENU" >> $MENUFILE
	exit 0;
fi

if [ "$1" = "install" ]; then
	if [ -f "$2" ]; then
		cd $DRTICDIR
		tar xzf $2
		rm -f $2
		$MSGBOX popup="~cDe ondertitels zijn succesvol geinstalleerd."
	else	$MSGBOX popup="~cDe ondertitels zijn NIET geinstalleerd."
	fi
	exit 0;
fi

if [ "$1" = "upgrade" ]; then
	wget -q "$WEBSITE?upgrade" -O /tmp/$$.upgrade
	if [ ! -f /tmp/$$.upgrade -o "`grep '# END OF FILE' /tmp/$$.upgrade`" = "" ]; then
		$MSGBOX popup="~cUpgrade mislukt."
		rm -f /tmp/$$.upgrade
		exit 0;
	fi
	NEWVERSION="`cat /tmp/$$.upgrade|grep '^VERSION='|awk -F = '{print $2}'`"
	if [ ! $NEWVERSION -gt $VERSION ]; then
		$MSGBOX msg="~cScript is al up-to-date (v$VERSION)"
		rm -f /tmp/$$.upgrade
	else	mv -f $SCRIPT $SCRIPT.v$VERSION
		mv -f /tmp/$$.upgrade $SCRIPT
		_DRTICDIR="`sed -e'/^DRTICDIR=/!d' -e 's/DRTICDIR=//' $SCRIPT.v$VERSION`"
		if [ "$_DRTICDIR" != "" ]; then
			# Preserve own setting
			head -2 $SCRIPT > /tmp/$$.script
			echo "# Imported manual setting" >> /tmp/$$.script
			echo "DRTICDIR=$_DRTICDIR" >> /tmp/$$.script
			tail +2 $SCRIPT >> /tmp/$$.script
			mv -f /tmp/$$.script $SCRIPT
		fi
		chmod 755 $SCRIPT
		$MSGBOX popup="~cScript is ge-update naar versie $NEWVERSION."
	fi
	exit 0;
fi

if [ "$1" = "deletelist" ]; then
	NUMFILES="`ls -la $DRTICDIR/*_ALL.dtc|wc -l|awk '{print $1}'`"
	if [ "$NUMFILES" = "0" ]; then
		$MSGBOX popup="~cGeen bestanden gevonden"
		exit 1;
	fi
	echo "MENU=Ondertitels Verwijderen" > $INCFILE
	for i in $DRTICDIR/*_ALL.dtc; do
		FILE="`basename $i`"
		PLAIN="`echo $FILE|sed 's/_ALL\.dtc$//g'`"
		TITLE="`echo $PLAIN|sed 's/_/ /g'`"
		echo "ACTION=&$TITLE,($MSGBOX msg='Weet U het zeker?' select='Ja,Nee' default=2; ret=\$? ; if [ \$ret -eq 1 ]; then $SCRIPT delete "$PLAIN"; fi),Wachten a.u.b!" >> $INCFILE
	done
	if [ "$NUMFILES" -gt 1 ]; then
		echo "ACTION=&Allemaal verwijderen,($MSGBOX msg='Weet U het zeker?' select='Ja,Nee' default=2; ret=\$? ; if [ \$ret -eq 1 ]; then $SCRIPT delete ALL; fi),Wachten a.u.b!" >> $INCFILE
	fi
	echo "ENDMENU" >> $INCFILE
	exit 0;
fi

if [ "$1" = "delete" ]; then
	FILE="$2"
	if [ "$2" != "ALL" ]; then
		rm -f $DRTICDIR/$2_[0-9].dtc $DRTICDIR/$2_[0-9][0-9].dtc $DRTICDIR/$2_ALL.dtc
		cat $INCFILE | grep -v "delete $FILE; fi" > $TMPFILE
		mv -f $TMPFILE $INCFILE
	else	# Delete all
		rm -f $DRTICDIR/*_ALL.dtc $DRTICDIR/*_[0-9].dtc $DRTICDIR/*_[0-9][0-9].dtc $INCFILE
	fi
	COUNT="`cat $INCFILE|grep -v 'delete ALL; fi' |wc -l|awk '{print $1}'`"
	$MSGBOX popup="~cBestanden zijn verwijderd" refresh=2
	if [ "$2" = "ALL" -o $COUNT -lt 3 ]; then
		# Kill the window, it's empty
		PID="`ps -ef|grep deletelist|awk '{print $1}'`"
		kill $PID
		PID="`ps -ef|grep $INCFILE|awk '{print $1}'`"
		kill $PID
	fi
	exit 0;
fi

read inp;

inp="`echo $inp|sed 's/ /%20/g'`"

wget -q -O $TMPFILE "$WEBSITE?title=$inp"
#
# Generate the menu
#
if [ "`cat $TMPFILE | grep -- '-1#Invalid_Query'`" != "" ]; then
		$MSGBOX msg="~cOngeldige of lege titel opgegeven.~n~cProbeer opnieuw a.u.b."
		exit 0;
fi
if [ "`cat $TMPFILE | grep -- '-3#Incompatible_Format'`" != "" ]; then
		$MSGBOX msg="~cOnbekend formaat.~n~cProbeer opnieuw a.u.b."
		exit 0;
fi
if [ ! -s $TMPFILE ]; then
		$MSGBOX msg="~cGeen resultaten voor de titel gevonden.~n~cProbeer opnieuw a.u.b."
		exit 0;
fi
echo "MENU=Ondertitels Downloaden" > $INCFILE
cat $TMPFILE|grep -v -- '-2#Too_Many_Results'|while read line; do
	DBID="`echo $line|awk -F \# '{print $1}'`"
	FILENAME="`echo $line|awk -F \# '{print $2}'`"
	TITLE="`echo $line|awk -F \# '{print $2}'|sed 's/_/ /g'`"
	#
	# Send to output
	#
	echo "ACTION=&$TITLE,(wget \"$WEBSITE?download=$DBID&filename=$FILENAME\" -O /tmp/$FILENAME.tar.gz ; $SCRIPT install \"/tmp/$FILENAME.tar.gz\"),Wachten a.u.b! Wordt gedownload ... " >> $INCFILE
done
echo "ENDMENU" >> $INCFILE
if [ "`cat $TMPFILE | grep -- '-2#Too_Many_Results'`" != "" ]; then
		RESULTS="`cat $TMPFILE | grep -- '-2#Too_Many_Results'|awk -F \# '{print $3}'`"
		$MSGBOX popup="~cEr waren teveel resultaten.~n~cAlleen de eerste $RESULTS titels worden getoond."
fi
rm -f $TMPFILE
$SHEXEC $INCFILE
#
# END OF FILE

