#!/bin/bash
# 新しく録画されたファイルをPCに取り込むスクリプト


MEDIAPATH=/media/owner
cd "${MEDIAPATH}"|| exit 1

DESTPATH="/media/owner/Backup/source"



assort_jpg()
{
cd "${DESTPATH}/JPG" || return
find . -maxdepth 1 -type d -name "*min*"|while read -r dir
do
line=${dir#*./}  # 最初の./より後ろを取り出す
startdate=${line%-*}  # 最初の-より前を取り出す
lengthpart=${line#*-}  # 最初の-より後ろを取り出す
lengthmin=${lengthpart%min*}  # 最初のminより前を取り出す
echo ${startdate}
echo ${lengthmin}
startUNIXTIME=$(date -d "${startdate:0:8} ${startdate:8:4}" "+%s")
endUNIXTIME=$(date -d "${startdate:0:8} ${startdate:8:4} ${lengthmin} minutes" "+%s")
for file in *.jpg
do
echo "file: ${file}"
#MODTIME=`stat -c %y "${file}"|sed 's/\-/\//g'|cut -b1-19`
echo "--------"
stat -c %y "${file}"
echo "--------"
stat -c %y "${file}"|sed 's/\-/\//g'
echo "--------"
stat -c %y "${file}"|sed 's/\-/\//g'|cut -b1-19
echo "--------"
MODTIME=$(stat -c %y "${file}"|sed 's/\-/\//g'|cut -b1-19)
fileUNIXTIME=$(date -d "${MODTIME}" "+%s")
if (test ${fileUNIXTIME} -ge ${startUNIXTIME}) && (test ${fileUNIXTIME} -le ${endUNIXTIME}) then
echo "Moving ${file} to ${dir}"
mv "${file}" "${dir}"
fi
done
done
}



LABEL=$1
if test -n "${LABEL}"; then
SOURCEPATH=${LABEL}
else
echo "Volume Label must be specified"
exit 1
fi

if test -z "${SOURCEPATH}"; then
echo "USB Memory not connected"
exit 1
else
echo "${SOURCEPATH}"
fi

SOURCEPATH=${MEDIAPATH}/${SOURCEPATH}

cd "${SOURCEPATH}" || exit 1

PATH=${PATH}:/usr/local/bin
COMPLMSG="Moving complete, without errors."


EFLG=false

led-blink on

if (eval ls "${SOURCEPATH}/*.mp4" 2>/dev/null) then
eval rm -rf "${SOURCEPATH}/.thumb/.*.jpg"
eval rm -f "${SOURCEPATH}/.index/*.*"

mkdir -p "${DESTPATH}/GOMI"
mkdir -p "${DESTPATH}/JPG"



filenum=0
# まずtest_recで作成されたゴミファイルを除去しながらファイル数を数える
for mp4file in *.mp4
do
	if test -f "${mp4file}"; then
	size=$(stat -c %s "${mp4file}")
	echo "size ${size}"
	if test ${size} -lt 10000000; then
		mv "${mp4file}" "${DESTPATH}/GOMI"
	else
		filenum=$((filenum + 1))
	fi
	fi
done



HEAD1="ER1301:"
HEAD2="ER1302:"
export DISPLAY=:0.0
counter=0
# ループ最後の2ファイルは（場合により）Xセレクションからタイトルを取得
ls -1tr `find . -maxdepth 1 -type f -name "*.mp4"`|while read i
do
	FILENAME=${i:2}
	num_remain=$((filenum - counter)) # 残りのファイル数
	counter=$((counter + 1))

	if test ${num_remain} -le 2; then
		TITLE=

		testline=$(xsel -so) # 読み込み（プライマリは他のアプリが使うのでセカンダリのみ使用する）
		linelength=${#testline}
		testhead=${testline:0:7}

		if test "${testhead}" == "${HEAD2}"; then # 1タイトルしか保存されていない
			lengthrest=$((linelength - 7))
			TITLE=${testline:7:${lengthrest}}
			xsel -sc # クリア
		elif test "${testhead}" == "${HEAD1}"; then # 2タイトル保存されている可能性がある
			title1length=${testline:7:3}
			title1length=$((10#${title1length}))
			if test ${num_remain} -eq 2; then # 最後から2番目のファイルの場合
				title2pos=$((title1length + 18)) # ヘッダ2個+数値3桁+コロン1個
				lengthrest=$((linelength - title2pos))
				TITLE=${testline:${title2pos}:${lengthrest}} # 空の場合もある
			else # 最後のファイルの場合
				TITLE=${testline:11:${title1length}}
				xsel -sc # クリア
			fi
		fi

		if test -n "${TITLE}"; then
			mv "${FILENAME}" "${DESTPATH}/${TITLE} ${FILENAME}" || \
			mv "${FILENAME}" "${DESTPATH}"

			if test ${num_remain} -eq 2; then
				continue
			else
				break
			fi
		fi

	fi

	mv "${FILENAME}" "${DESTPATH}"
done

else
EFLG=true
fi

if (eval ls "${SOURCEPATH}/*.jpg" 2>/dev/null) then
eval mv "${SOURCEPATH}/*.jpg" "${DESTPATH}/JPG"
touch "${DESTPATH}/jpgあり"
#(assort_jpg)
else
EFLG=true
fi

${EFLG} && sleep 11

led-blink off


echo "${COMPLMSG}"
