some functional changes
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
FROM alpine:latest
|
||||
LABEL org.opencontainers.image.authors="victor@brutalix.org"
|
||||
COPY --chmod=777 depFiles/ripCD.sh /usr/local/bin/ripCD.sh
|
||||
RUN apk add --no-cache libcddb cd-discid cdrkit curl py3-pip cdparanoia gnu-libiconv jpegoptim optipng cdrdao ffmpeg coreutils grep bash
|
||||
RUN apk add --no-cache libcddb cd-discid cdrkit curl py3-pip cdparanoia gnu-libiconv jpegoptim optipng cdrdao ffmpeg coreutils grep bash cdrdao libcdio-tools
|
||||
ENV VIRT_ENV=/opt/venv
|
||||
RUN python -m venv $VIRT_ENV
|
||||
ENV PATH="$VIRT_ENV/bin:$PATH"
|
||||
|
||||
@ -4,9 +4,12 @@ VOLUME=/tmp
|
||||
RIP_DIR=audio/RIP
|
||||
ALAC_DIR=ALAC
|
||||
FLAC_DIR=data/media/music
|
||||
DISCIMAGE_DIR=audio/DISCIMAGE
|
||||
DEV=/dev/cdrom
|
||||
CDDB_URL="freedb.freac.org:/~cddb/cddb.cgi"
|
||||
#CDDB_URL="gnudb.gnudb.org/~cddb/cddb.cgi"
|
||||
COMPILATION=""
|
||||
ISMIXEDCD=''
|
||||
declare -a TITLES
|
||||
#FUNCTIONS
|
||||
checkRipDir(){
|
||||
@ -120,7 +123,7 @@ writeTOC(){
|
||||
|
||||
|
||||
isCompilation(){
|
||||
read -r -p "Is a compilation?(default: n): " COMPILATION
|
||||
read -r -p "Is a multi CD album?(default: n): " COMPILATION
|
||||
if [[ -z "${COMPILATION}" ]]; then
|
||||
COMPILATION='n'
|
||||
fi
|
||||
@ -149,7 +152,6 @@ 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" |
|
||||
@ -162,10 +164,6 @@ setInitialData(){
|
||||
PERFORMER=$(echo "$ALBUMNAME" | awk -F' - ' '{print $1}')
|
||||
ALBUM_TITLE=$(echo "$ALBUMNAME" | awk -F' - ' '{print $2}')
|
||||
ALBUMNAME="${ALBUMNAME%$'\n'}"
|
||||
# Imprimir los resultados
|
||||
echo "ALBUMNAME: $ALBUMNAME"
|
||||
echo "Performer: $PERFORMER"
|
||||
echo "Album Name: $ALBUM_TITLE"
|
||||
SPEED=$(more /proc/sys/dev/cdrom/info | grep -E 'drive speed:' | awk '{print $3}')
|
||||
echo "Artist detected as: "${PERFORMER}""
|
||||
read -r -p "Is correct: ? [Y/n] (default: Y) " input
|
||||
@ -174,10 +172,10 @@ setInitialData(){
|
||||
fi
|
||||
case $input in
|
||||
[yY][eE][sS]|[yY])
|
||||
echo "Yes"
|
||||
#echo "Yes"
|
||||
;;
|
||||
[nN][oO]|[nN])
|
||||
echo -e "No"
|
||||
#echo -e "No"
|
||||
read -r -p "Enter a new name: " PERFORMER
|
||||
if [[ -z "${PERFORMER}" ]]; then
|
||||
echo "Invalid input..."
|
||||
@ -199,10 +197,10 @@ setInitialData(){
|
||||
fi
|
||||
case $input in
|
||||
[yY][eE][sS]|[yY])
|
||||
echo "Yes"
|
||||
#echo "Yes"
|
||||
;;
|
||||
[nN][oO]|[nN])
|
||||
echo -e "No"
|
||||
#echo -e "No"
|
||||
read -r -p "Enter a new name: " ALBUM_TITLE
|
||||
if [[ -z "${ALBUM_TITLE}" ]]; then
|
||||
echo "Invalid input..."
|
||||
@ -238,10 +236,10 @@ setFinalData(){
|
||||
fi
|
||||
case $input in
|
||||
[yY][eE][sS]|[yY])
|
||||
echo "Yes"
|
||||
#echo "Yes"
|
||||
;;
|
||||
[nN][oO]|[nN])
|
||||
echo -e "No"
|
||||
#echo -e "No"
|
||||
read -r -p "Enter a new name: " GENRE
|
||||
if [[ -z "${GENRE}" ]]; then
|
||||
echo "Invalid input..."
|
||||
@ -263,10 +261,10 @@ setFinalData(){
|
||||
fi
|
||||
case $input in
|
||||
[yY][eE][sS]|[yY])
|
||||
echo "Yes"
|
||||
#echo "Yes"
|
||||
;;
|
||||
[nN][oO]|[nN])
|
||||
echo -e "No"
|
||||
#echo -e "No"
|
||||
read -r -p "Enter a new name: " YEAR
|
||||
if [[ -z "${YEAR}" ]]; then
|
||||
echo "Invalid input..."
|
||||
@ -286,7 +284,7 @@ setFinalData(){
|
||||
fi
|
||||
case $input in
|
||||
[yY][eE][sS]|[yY])
|
||||
PERFORMER_ALBUM="Various Artist"
|
||||
PERFORMER_ALBUM="Various Artists"
|
||||
;;
|
||||
[nN][oO]|[nN])
|
||||
PERFORMER_ALBUM=$PERFORMER
|
||||
@ -297,67 +295,66 @@ setFinalData(){
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
#Set track names
|
||||
declare -a TEMP_TITLES
|
||||
|
||||
# Verificar si el archivo existe
|
||||
if [[ ! -f "${CDDBDATA}" ]]; then
|
||||
echo "El archivo no existe: ${CDDBDATA}"
|
||||
exit 1
|
||||
echo "File does not existe: ${CDDBDATA}"
|
||||
touch ${CDDBDATA}
|
||||
#exit 1
|
||||
fi
|
||||
|
||||
# Leer títulos del archivo
|
||||
declare -a TEMP_TITLES
|
||||
contador=0
|
||||
|
||||
count=0
|
||||
|
||||
while IFS= read -r linea; do
|
||||
if [[ "$linea" =~ ^TTITLE([0-9]+)=(.*)$ ]]; then
|
||||
numero="${BASH_REMATCH[1]}"
|
||||
titulo="${BASH_REMATCH[2]}"
|
||||
TEMP_TITLES[$contador]="$titulo"
|
||||
contador=$((contador + 1))
|
||||
number="${BASH_REMATCH[1]}"
|
||||
title="${BASH_REMATCH[2]}"
|
||||
TEMP_TITLES[$count]="$title"
|
||||
count=$((count + 1))
|
||||
fi
|
||||
done < "${CDDBDATA}"
|
||||
|
||||
TOTALTRACKS=$(ls -l *.wav|wc -l)
|
||||
if [[ ${#TEMP_TITLES[@]} -eq 0 ]]; then
|
||||
echo "No se encontraron títulos en el archivo."
|
||||
echo "${CDDBDATA} is empty"
|
||||
WAVFILES=(*.wav)
|
||||
# Verificar si hay archivos .wav
|
||||
if [[ ${#WAVFILES[@]} -eq 0 ]]; then
|
||||
echo "No se encontraron archivos .wav en el directorio actual."
|
||||
if [[ -z ${TOTALTRACKS} ]]; then
|
||||
echo "There are no.wav files in folder ${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_DIR}"
|
||||
exit 1
|
||||
fi
|
||||
for WAVFILE in "${WAVFILES[@]}"; do
|
||||
read -p "Asigna un título para el archivo '$WAVFILE': " titulo
|
||||
TITLES+=("$titulo")
|
||||
for ((i = 0; i < ${#WAVFILES[@]}; i++)); do
|
||||
WAVFILE="${WAVFILES[i]}"
|
||||
read -p "Set a tittle for '$WAVFILE': " title
|
||||
TEMP_TITLES[i]="$title"
|
||||
done
|
||||
else
|
||||
TITLES=("${TEMP_TITLES[@]}")
|
||||
fi
|
||||
|
||||
# Mostrar títulos y preguntar si son correctos
|
||||
echo "Se encontraron los siguientes títulos:"
|
||||
echo "Following titles found:"
|
||||
for ((i = 0; i < ${#TEMP_TITLES[@]}; i++)); do
|
||||
echo "$((i + 1)): ${TEMP_TITLES[$i]}"
|
||||
done
|
||||
|
||||
read -p "¿Es correcta la información mostrada? (s/N) (Default n): " respuesta
|
||||
read -p "¿Is this correct? (y/N) (Default n): " answer
|
||||
|
||||
if [[ "$respuesta" == "s" ]]; then
|
||||
if [[ "$answer" == "y" ]]; then
|
||||
TITLES=("${TEMP_TITLES[@]}")
|
||||
else
|
||||
for ((i = 0; i < ${#TEMP_TITLES[@]}; i++)); do
|
||||
read -p "¿Es correcto el título '${TEMP_TITLES[$i]}'? (s/n) (Default y): " subrespuesta
|
||||
if [[ "$subrespuesta" == "n" ]]; then
|
||||
read -p "Introduce un nuevo valor para el título $((i + 1)): " nuevo_valor
|
||||
TITLES[$i]="$nuevo_valor"
|
||||
read -p "¿"${TEMP_TITLES[$i]}" is a valid track name? (y/n) (Default y): " subanswer
|
||||
if [[ "$subanswer" == "n" ]]; then
|
||||
read -p "Set a new title name $((i + 1)): " new_title
|
||||
TITLES[$i]="$new_title"
|
||||
else
|
||||
TITLES[$i]="${TEMP_TITLES[$i]}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
echo "Lista final de títulos:"
|
||||
for titulo in "${TITLES[@]}"; do
|
||||
echo "$titulo"
|
||||
echo "Final title's list:"
|
||||
for title in "${TITLES[@]}"; do
|
||||
echo "$title"
|
||||
done
|
||||
|
||||
}
|
||||
@ -385,20 +382,50 @@ tagRipFiles(){
|
||||
count=$((count + 1))
|
||||
done
|
||||
}
|
||||
|
||||
downloadArt(){
|
||||
SACAD_PERFORMER=\"${PERFORMER}\"
|
||||
SACAD_ALBUM_TITLE=\"${ALBUM_TITLE}\"
|
||||
sacad "${SACAD_PERFORMER}" "${SACAD_ALBUM_TITLE}" 500 "${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_DIR}/AlbumArt.jpg"
|
||||
}
|
||||
|
||||
backup (){
|
||||
DISCIMAGE_PATH="${VOLUME}/${DISCIMAGE_DIR}/${PERFORMER}/${ALBUM_DIR}"
|
||||
mkdir -p "${DISCIMAGE_PATH}"
|
||||
ISMIXEDCD=$(cd-info --no-device-info --no-cddb --no-header --no-joliet --no-rock-ridge --no-xa --no-analyze --no-disc-mode|grep data)
|
||||
if [[ ! -z ${ISMIXEDCD} ]]; then
|
||||
for session in 1 2 ; do
|
||||
#--read-raw \
|
||||
cdrdao read-cd \
|
||||
--driver generic-mmc:0x20000 \
|
||||
--paranoia-mode 0 \
|
||||
--device /dev/cdrom \
|
||||
--session $session \
|
||||
--datafile "${DISCIMAGE_PATH}/data-$session.bin" "${DISCIMAGE_PATH}/data-$session.toc"
|
||||
toc2cue "${DISCIMAGE_PATH}/data-$session.toc" "${DISCIMAGE_PATH}/data-$session.cue"
|
||||
done
|
||||
#
|
||||
else
|
||||
session=1
|
||||
cdrdao read-cd \
|
||||
--driver generic-mmc:0x20000 \
|
||||
--paranoia-mode 0 \
|
||||
--device /dev/cdrom \
|
||||
--session $session \
|
||||
--datafile "${DISCIMAGE_PATH}/data-$session.bin" "${DISCIMAGE_PATH}/data-$session.toc"
|
||||
toc2cue "${DISCIMAGE_PATH}/data-$session.toc" "${DISCIMAGE_PATH}/data-$session.cue"
|
||||
fi
|
||||
}
|
||||
|
||||
ripDisc(){
|
||||
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_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}
|
||||
icedax -max -vall cddb=0 -cddbp-server=gnudb.gnudb.org speed="$SPEED" -B -D ${DEV}
|
||||
}
|
||||
|
||||
encode() {
|
||||
RIPDIR="${VOLUME}/${RIP_DIR}/${PERFORMER}/${ALBUM_DIR}"
|
||||
ENCDIR="${VOLUME}/${FLAC_DIR}/${PERFORMER}/${ALBUM_DIR}"
|
||||
@ -432,8 +459,6 @@ encode() {
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
||||
#MAIN PROGRAM
|
||||
if [ $# -lt 1 ]
|
||||
then
|
||||
@ -450,4 +475,7 @@ if [ ${ACTION} = 'r' ] || [ ${ACTION} = 'e' ]; then
|
||||
if [ ${ACTION} = 'e' ];then
|
||||
checkEncDir
|
||||
fi
|
||||
elif [ ${ACTION} = 'b' ];then
|
||||
setInitialData
|
||||
backup
|
||||
fi
|
||||
Reference in New Issue
Block a user