. /usr/syno/bin/jsoncmd
. /var/packages/PhotoStation/scripts/backup/include.sh

PKG_LAN_DIR="$SYNOPKG_PKGDEST/photo/language"
SYNOPHOTO_SETTING_CONFIG="${SYNOPKG_PKGPATH}/etc/settings.conf"
PHOTO_SHARE="/var/services/photo"
SMART_ALBUM="${PHOTO_SHARE}/@eaDir/SYNOPHOTO_SMART_ALBUM_CONFIG"
OLD_SMART_ALBUM="${PHOTO_SHARE}/@eaDir/smart_album.json"
MUSIC_CONFIG="${PHOTO_SHARE}/@eaDir/SYNOPHOTO_MUSIC_CONFIG"

THEME_DIR_NAME="SYNOPHOTO_THEME_DIR"
SYNOPHOTO_THEME_DIR="${PHOTO_SHARE}/@eaDir/${THEME_DIR_NAME}"
SYNOPHOTO_WATERMARK_DIR="${PHOTO_SHARE}/@eaDir/SYNOPHOTO_WATERMARK_DIR"

BIN_PATH="/var/packages/PhotoStation/target/bin"

pkg_get_string() {
	local key=$1
	local file="${PKG_LAN_DIR}/${SYNOPKG_DSM_LANGUAGE}.php"
	if [ "${SYNOPKG_DSM_LANGUAGE}" == "" ]; then
		file="${PKG_LAN_DIR}/enu.php"
	fi
	grep $key $file | sed -n "s,^.*=\t'\(.*\)';,\1,p" | sed "s/\\\\'/'/g"
}

exportPath=$(jget "${SYNOPKG_BKP_INPUT}" ".temp_path")
if [ $? -ne 0 ];then
	msg=$(pkg_get_string photo_str_backup_restore_failed)
	error=$(printf "%s(%s)" "${msg}" "0x01")
	jerr "$error"
	exit 1
fi


${BIN_PATH}/synophoto_backup -e "${exportPath}/"
if [ $? -ne 0 ];then
	error=$(pkg_get_string photo_str_backup_photo_failed)
	jerr "$error"
	exit 1
fi

# copy theme
if [ -d ${SYNOPHOTO_THEME_DIR} ];then
	cp -rf ${SYNOPHOTO_THEME_DIR} ${exportPath}/
fi

# copy watermark
if [ -d ${SYNOPHOTO_WATERMARK_DIR} ];then
	cp -rf ${SYNOPHOTO_WATERMARK_DIR} ${exportPath}/
fi

# copy config
if [ -e ${SYNOPHOTO_SETTING_CONFIG} ];then
	cp -rf ${SYNOPHOTO_SETTING_CONFIG} ${exportPath}/
fi

# copy smart album
check_version_older "6.1-2812" "${SYNOPKG_PKGVER}"
if [ $? -eq "1" ]; then
	if [ -e ${OLD_SMART_ALBUM} ];then
		cp -f ${OLD_SMART_ALBUM} ${exportPath}/SYNOPHOTO_SMART_ALBUM_CONFIG
	fi
else
	if [ -e ${SMART_ALBUM} ];then
		cp -f ${SMART_ALBUM} ${exportPath}/
	fi
fi

# copy music
if [ -e ${MUSIC_CONFIG} ]; then
	cp -f ${MUSIC_CONFIG} ${exportPath}/

	for i in ${PHOTO_SHARE}/@eaDir/*.mp3;
	do
		cp -f $i ${exportPath}/
	done
fi

jout_begin
joutstr "app_data_version" "1.0"
jout_end

exit 0
