several fixes and improvements

This commit is contained in:
2024-11-26 23:47:06 +01:00
parent 4f27aa65f4
commit d14f6d2ffc

View File

@ -6,10 +6,11 @@ ALAC_DIR=ALAC
FLAC_DIR=FLAC
DEV=/dev/cdrom
CDDB_URL="freedb.freac.org:/~cddb/cddb.cgi"
COMPILATION=""
declare -a TITLES
#FUNCTIONS
checkRipDir(){
if [ -d "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_TITLE}" ]; then
if [ -d "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_DIR}" ]; then
read -r -p "Directory already exists, do you want to rip audio cd?: [Y/n] (default: Y)" RIP
if [[ -z "${RIP}" ]]; then
RIP='y'
@ -24,6 +25,7 @@ checkRipDir(){
tagRipFiles
;;
[nN][oO]|[nN])
downloadArt
setFinalData
writeCsv
tagRipFiles
@ -36,7 +38,7 @@ checkRipDir(){
;;
esac
else
mkdir -p "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_TITLE}"
mkdir -p "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_DIR}"
downloadArt
ripDisc
writeTOC
@ -46,7 +48,7 @@ checkRipDir(){
}
checkEncDir(){
if [ -d "${VOLUME}/${FLAC_DIR}/${PERFORMER}/${ALBUM_TITLE}" ]; then
if [ -d "${VOLUME}/${FLAC_DIR}/${PERFORMER}/${ALBUM_DIR}" ]; then
read -r -p "Directory already exists, do you want to encode audio cd?: [Y/n](default: Y) " ENCODE
if [[ -z "${ENCODE}" ]]; then
ENCODE='y'
@ -65,7 +67,7 @@ checkEncDir(){
;;
esac
else
mkdir -p "${VOLUME}/${FLAC_DIR}/${PERFORMER}/${ALBUM_TITLE}"
mkdir -p "${VOLUME}/${FLAC_DIR}/${PERFORMER}/${ALBUM_DIR}"
encode
fi
}
@ -80,7 +82,7 @@ writeCsv(){
}
writeTOC(){
cdrdao read-toc --fast-toc --device "${DEV}" --driver generic-mmc:0x20000 --paranoia-mode 0 --with-cddb --cddb-servers $CDDB_URL "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_TITLE}/${ALBUM_TITLE}.toc"
cdrdao read-toc --fast-toc --device "${DEV}" --driver generic-mmc:0x20000 --paranoia-mode 0 --with-cddb --cddb-servers $CDDB_URL "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_DIR}/${ALBUM_TITLE}.toc"
sed -i -e 's/\\240/ /g' -e 's/\\300/À/g' -e 's/\\340/à/g' \
-e 's/\\241/¡/g' -e 's/\\301/Á/g' -e 's/\\341/á/g' \
-e 's/\\242/¢/g' -e 's/\\302/Â/g' -e 's/\\342/â/g' \
@ -112,8 +114,8 @@ writeTOC(){
-e 's/\\274/¼/g' -e 's/\\334/Ü/g' -e 's/\\374/ü/g' \
-e 's/\\275/½/g' -e 's/\\335/Ý/g' -e 's/\\375/ý/g' \
-e 's/\\276/¾/g' -e 's/\\336/Þ/g' -e 's/\\376/þ/g' \
-e 's/\\277/¿/g' -e 's/\\337/ß/g' -e 's/\\377/ÿ/g' "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_TITLE}/${ALBUM_TITLE}.toc"
sed -i -e '/TITLE/s/\\"//g' "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_TITLE}/${ALBUM_TITLE}.toc"
-e 's/\\277/¿/g' -e 's/\\337/ß/g' -e 's/\\377/ÿ/g' "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_DIR}/${ALBUM_TITLE}.toc"
sed -i -e '/TITLE/s/\\"//g' "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_DIR}/${ALBUM_TITLE}.toc"
}
@ -124,18 +126,19 @@ isCompilation(){
fi
case ${COMPILATION} in
[yY][eE][sS]|[yY])
COMPILATION="y"
read -r -p "Disc number?: " DISCNUMBER
if [[ -z "${DISCNUMBER}" ]]; then
DISCNUMBER='1'
fi
read -r -p "Disc number?: " TOTALDISCKS
if [[ -z "${TOTALDISCKS}" ]]; then
TOTALDISCKS='1'
read -r -p "Total disks?: " TOTALDISKS
if [[ -z "${TOTALDISKS}" ]]; then
TOTALDISKS='1'
fi
;;
[nN][oO]|[nN])
DISCNUMBER='1'
TOTALDISCKS='1'
TOTALDISKS='1'
;;
*)
echo "Invalid input..."
@ -146,6 +149,7 @@ isCompilation(){
}
setInitialData(){
echo "COMPILATION: $COMPILATION"
if [ "$CDDA" -eq 1 ]; then
DISCID=$(cd-discid "${DEV}" | sed 's/ /+/g')
ALBUMNAME="$(curl -s "http://$CDDB_URL?cmd=cddb+query+$(cd-discid "${DEV}" | sed 's/ /+/g')&hello=user+hostname+cdparanoia+3&proto=3" |
@ -212,14 +216,16 @@ setInitialData(){
exit 1
;;
esac
if [ ${DISCNUMBER} -gt 1 ]; then
ALBUM_TITLE="${ALBUM_TITLE} (CD ${DISCNUMBER})"
ALBUM_DIR=${ALBUM_TITLE}
if [ "$COMPILATION" = "y" ]; then
ALBUM_DIR="${ALBUM_DIR} (CD ${DISCNUMBER})"
echo $ALBUM_DIR
fi
fi
}
setFinalData(){
cd "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_TITLE}"
cd "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_DIR}"
CDDBDATA="audio.cddb"
TOTALTRACKS=$(grep TTITLE ${CDDBDATA} |wc -l)
GENRE=$(grep DGENRE ${CDDBDATA} | awk -F '=' '{print $2}')
@ -361,7 +367,7 @@ setFinalData(){
}
tagRipFiles(){
cd "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_TITLE}"
cd "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_DIR}"
WAVFILES=(*.wav)
TOTALTRACKS=$(ls -l *.wav|wc -l)
count=1
@ -386,20 +392,20 @@ tagRipFiles(){
downloadArt(){
SACAD_PERFORMER=\"${PERFORMER}\"
SACAD_ALBUM_TITLE=\"${ALBUM_TITLE}\"
sacad "${SACAD_PERFORMER}" "${SACAD_ALBUM_TITLE}" 500 "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_TITLE}/AlbumArt.jpg"
sacad "${SACAD_PERFORMER}" "${SACAD_ALBUM_TITLE}" 500 "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_DIR}/AlbumArt.jpg"
}
ripDisc(){
if [ ! -d "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_TITLE}" ] && [ ${RIP} = 's' ]; then
mkdir -p "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_TITLE}"
if [ ! -d "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_DIR}" ] && [ ${RIP} = 's' ]; then
mkdir -p "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_DIR}"
fi
cd "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_TITLE}"
cd "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_DIR}"
#cdda2wav -vall cddb=0 -cddbp-server=gnudb.gnudb.org speed="$SPEED" -paranoia -B -D ${DEV}
cdda2wav -vall cddb=0 -cddbp-server=gnudb.gnudb.org speed="$SPEED" -B -D ${DEV}
}
encode() {
RIPDIR="${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_TITLE}"
ENCDIR="${VOLUME}/${FLAC_DIR}/${PERFORMER}/${ALBUM_TITLE}"
RIPDIR="${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_DIR}"
ENCDIR="${VOLUME}/${FLAC_DIR}/${PERFORMER}/${ALBUM_DIR}"
cd "$RIPDIR"
WAVFILES=(*.wav)
TOTALTRACKS=$(ls -l *.wav | wc -l)
@ -422,6 +428,7 @@ encode() {
-metadata date="${YEAR}" \
-metadata album="${ALBUM_TITLE}" \
-metadata disc="${DISCNUMBER}" \
-metadata DISCTOTAL="${TOTALDISKS}" \
-metadata track="${count}/${TOTALTRACKS}" \
-metadata title="${NEWTITLE}" \
"${ENCDIR}/${NEWFILENAME}"