lidarr-dl/sabnzbd/audiobook.bash

102 lines
2.6 KiB
Bash
Raw Normal View History

2023-07-19 13:22:02 +02:00
#!/usr/bin/with-contenv bash
ScriptVersion="1.0"
2023-07-19 13:22:02 +02:00
scriptName="Audiobook"
#### Import Settings
source /config/extended.conf
log () {
m_time=`date "+%F %T"`
2023-07-19 14:19:56 +02:00
echo $m_time" :: $scriptName :: $ScriptVersion :: "$1
2023-07-19 13:22:02 +02:00
}
set -e
set -o pipefail
touch "/config/scripts/audiobook.txt"
exec &> >(tee -a "/config/scripts/audiobook.txt")
2023-07-19 14:19:56 +02:00
SECONDS=0
log "Searching for audiobook (m4b) files in completed download..."
2023-07-19 14:19:56 +02:00
if [ $(find "$1" -type f -iname "*.m4b" | wc -l) -gt 0 ]; then
log "M4B files found, removing non m4b files..."
find "$1" -type f -not -iname "*.m4b" -delete
find "$1" -mindepth 2 -type f -exec mv "{}" "$1"/ \;
find "$1" -mindepth 1 -type d -delete
else
log "None found..."
2023-07-19 14:19:56 +02:00
fi
log "Searching for audiobook (m4b.mp4) files in completed download..."
2023-07-19 14:19:56 +02:00
if [ $(find "$1" -type f -iname "*.m4b.mp4" | wc -l) -gt 0 ]; then
log "M4B (m4b.mp4) files found, removing non m4b files..."
find "$1" -type f -not -iname "*.m4b.mp4" -delete
find "$1" -mindepth 2 -type f -exec mv "{}" "$1"/ \;
find "$1" -mindepth 1 -type d -delete
log "Renaming m4b.mp4 files to m4b..."
count=0
fileCount=$(find "$1" -type f -iname "*.m4b.mp4"| wc -l)
find "$1" -type f -iname "*.m4b.mp4" -print0 | while IFS= read -r -d '' file; do
count=$(($count+1))
baseFileName="${file%.*}"
fileName="$(basename "$file")"
extension="${fileName##*.}"
log "$count of $fileCount :: Processing $fileName"
if [ -f "$file" ]; then
mv "$file" "$1/${fileName%.*}"
2023-07-19 13:22:02 +02:00
fi
2023-07-19 14:19:56 +02:00
done
log "All files renamed"
else
log "None found..."
2023-07-19 14:19:56 +02:00
fi
log "Searching for audiobook (mp3) files in completed download..."
mp3Count=$(find "$1" -type f -iname "*.mp3" | wc -l)
if [ $mp3Count -gt 0 ]; then
log "MP3 files found, removing non mp3 files..."
find "$1" -type f -not -iname "*.mp3" -delete
find "$1" -mindepth 2 -type f -exec mv "{}" "$1"/ \;
find "$1" -mindepth 1 -type d -delete
if [ $mp3Count -gt 1 ]; then
log "ERROR: More than 1 MP3 file found, performing cleanup..."
find "$1" -type f -iname "*.mp3" -delete
fi
else
log "None found..."
fi
error="false"
bookfound="false"
m4bCount=$(find "$1" -type f -iname "*.m4b" | wc -l)
mp3Count=$(find "$1" -type f -iname "*.m4b" | wc -l)
if [ "$bookfound" == "false" ]; then
if [ $m4bCount -eq 0 ]; then
error="true"
else
bookfound="true"
fi
fi
if [ "$bookfound" == "false" ]; then
if [ $mp3Count -eq 0 ]; then
error="true"
else
bookfound="true"
fi
fi
if [ "$error" == "true" ]; then
echo "ERROR: No audiobook files found" && exit 1
2023-07-19 14:19:56 +02:00
fi
2023-07-19 13:22:02 +02:00
2023-07-19 14:19:56 +02:00
chmod 777 "$1"
chmod 666 "$1"/*
duration=$SECONDS
echo "Post Processing Completed in $(($duration / 60 )) minutes and $(($duration % 60 )) seconds!"
2023-07-19 13:22:02 +02:00
exit