#!/bin/sh

# Rename Guillaume Meurice podcast files
# Also change the title tag (2016.09.30 Title)
# http://radiofrance-podcast.net/podcast09/rss_14257.xml

# If the first arg is a directory
if [ -d "${1}" ]; then

	MEURICE_DIR="${1}"
	TMP_LIST_FILE="/tmp/list_meurice_file"

	# List audio files
	find "${MEURICE_DIR}" -mindepth 1 -type f -iregex '.*\.mp3' > "${TMP_LIST_FILE}"

	while IFS= read -r FILE
	do

		FILE_ABSOLUT_PATH="${MEURICE_DIR}/${FILE}"

		# Get file information
		FILE_EXT=$(echo "${FILE_ABSOLUT_PATH}" | awk -F'[.]' '{print $NF}')

		# Get tag information
		DATE=$(eyeD3 "${FILE_ABSOLUT_PATH}" | grep 'title' 2> /dev/null | sed 's/.*\(..\).\(..\).\(201.\).*/\3-\2-\1/')
		TITLE=$(eyeD3 "${FILE_ABSOLUT_PATH}" | grep 'title' 2> /dev/null | sed 's/.*: \(.*\) \(..\).\(..\).\(201.\).*/\1/')

		printf '%s\n' "date :  ${DATE}"
		printf '%s\n' "title : ${TITLE}"

		# Correct title tag
		command eyeD3 --title="${DATE} ${TITLE}" "${FILE_ABSOLUT_PATH}"

		# Rename the file
		mv "${FILE_ABSOLUT_PATH}" "${MEURICE_DIR}"/"${DATE}"_"${TITLE}"."${FILE_EXT}"

	done < "${TMP_LIST_FILE}"

# If the first arg is a file
elif [ -f "${1}" ]; then
	MEURICE_FILE="${1}"
	MEURICE_DIR=$(dirname "${MEURICE_FILE}")

	# Get file information
	FILE_EXT=$(echo "${MEURICE_FILE}" | awk -F'[.]' '{print $NF}')

	# Get tag information
	DATE=$(eyeD3 "${MEURICE_FILE}" | grep 'title' 2> /dev/null | sed 's/.*\(..\).\(..\).\(201.\).*/\3-\2-\1/')
	TITLE=$(eyeD3 "${MEURICE_FILE}" | grep 'title' 2> /dev/null | sed 's/.*: \(.*\) \(..\).\(..\).\(201.\).*/\1/')

	printf '%s\n' "date :  ${DATE}"
	printf '%s\n' "title : ${TITLE}"

	# Correct title tag
	command eyeD3 --title="${DATE} ${TITLE}" "${MEURICE_FILE}"

	# Rename the file
	mv "${MEURICE_FILE}" "${MEURICE_DIR}"/"${DATE}"_"${TITLE}"."${FILE_EXT}"

# Otherwise print an error
else
	printf '%s\n' "Error with the first arg : ${1}"
	exit 1
fi

exit 0