#!/bin/bash

if [ -z "$*" ] ; then
	echo "Usage: $0 [ camera [\"0 1 23\"]]"
	exit 0
fi

BASEDIR="/security"
cd $BASEDIR/sh
CAMERA=${1:-"cam0"}

YDAY=$(date -d "yesterday 13:00 " '+%Y-%m-%d')

DATEARR=(`echo $YDAY | sed -e 's/[:-]/ /g'`)
YR=${DATEARR[0]}
MO=${DATEARR[1]}
DA=${DATEARR[2]}

CURRENT=$BASEDIR/$CAMERA/$YR

# make ISO image
if [ ! -f "$CURRENT/$YR-$MO.iso" ]; then
	genisoimage -V "$YR-$MO $CAMERA" -lJR -o "$CURRENT/$YR-$MO.iso" "$CURRENT/$MO"
fi

# split prepare
SPL=${2:-"0 1 23"}

# split
for s in $SPL
do
	TOTAL_DURATION=0
        DESCRIPTION=""

        # read and fetch
        for fc in $( ls -1 "$CURRENT/$MO" | grep [${s}].\.mp4 | sort );
        do
                FORMAT_DURATION=$( date -d@"$TOTAL_DURATION" -u +%H:%M:%S )

                DESCRIPTION=$( echo "$DESCRIPTION"_\("$FORMAT_DURATION"\): "$fc" )
                DURATION=$(ffmpeg -i "$CURRENT/$MO/${fc}" 2>&1 | grep Duration | egrep -o "[0-9]{2,}\:[0-9]{2}\:[0-9]{2}\.[0-9]{2}")
                TIME=$(echo $DURATION | awk -F : '{ print (($1*3600)+($2*60)+($3))}')
                SPLIT_SEC=$(echo $DURATION | awk -F . '{print $2}')

                TOTAL_DURATION=$( echo ${TOTAL_DURATION}+${TIME}+${SPLIT_SEC}/100 | bc -l )
        done

        DESC=$( echo "$DESCRIPTION" | sed 's/_\+/\n/g' )

	if [ ! -f "$CURRENT/upload/$YR-$MO.$s.mp4" ]; then

		mkdir -p "$CURRENT/upload"

        	# concatenate
        	if [ -d "$CURRENT/$MO" ]; then
                	ffmpeg -y -f concat -safe 0 \
                	-i <(for f in $( ls -1 "$CURRENT/$MO" | grep [${s}].\.mp4 | sort ); do echo "file '$CURRENT/$MO/$f'"; done) \
			-vf "scale=-1:480,pad=640:480:(640-iw)/2:(480-ih)/2,setsar=1" \
			-movflags faststart \
			"$CURRENT/upload/$YR-$MO.$s".mp4
        	fi

	fi

	# upload
        if [ -f "$CURRENT/upload/$YR-$MO.$s.mp4" ]; then
                /usr/local/bin/youtube-upload \
                --title="${YR}-${MO} [${s}] ${CAMERA}" \
                --description="SECURITY ${YR}/${CAMERA}/${MO} ${DESC}" \
                --credentials-file="${BASEDIR}/credentials.json" \
                --client-secrets="/usr/local/share/youtube_upload/client_secrets.json" \
                --privacy="unlisted" \
                --playlist="Security ${YR} ${CAMERA}" \
                --tags="cz.eida.security.${CAMERA}" "$CURRENT/upload/$YR-$MO.$s.mp4"
        fi

# /for
done

exit 0
