diff --git a/root/scripts/ERA.sh b/root/scripts/ERA.sh index 1fef348..58a1039 100644 --- a/root/scripts/ERA.sh +++ b/root/scripts/ERA.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -scriptVersion="1.0.4" +scriptVersion="1.0.5" agent="ERA ( https://github.com/Makario1337/ExtendedReleaseAdder )" ArtistsJSON=$(jq '.artists[]' /config/artists.json) @@ -8,6 +8,14 @@ log () { echo $m_time" :: Extended Release Adder :: "$1 } +# auto-clean up log file to reduce space usage +if [ -f "/config/logs/ExtendedReleaseAdder.txt" ]; then + find /config/logs -type f -name "ExtendedReleaseAdder.txt" -size +1024k -delete +fi + +exec &>> "/config/logs/ExtendedReleaseAdder.txt" +chmod 666 "/config/logs/ExtendedReleaseAdder.txt" + if [ -z "$lidarrUrl" ] || [ -z "$lidarrApiKey" ]; then lidarrUrlBase="$(cat /config/config.xml | xq | jq -r .Config.UrlBase)" if [ "$lidarrUrlBase" = "null" ]; then @@ -20,7 +28,6 @@ if [ -z "$lidarrUrl" ] || [ -z "$lidarrApiKey" ]; then lidarrUrl="http://127.0.0.1:${lidarrPort}${lidarrUrlBase}" fi - log "-----------------------------------------------------------------------------" log " |\/| _ | _ ._o _ '|~/~/~/" log " | |(_||<(_|| |(_) |_)_)/ " @@ -50,9 +57,7 @@ if [ ! -d "$lidarrAudiobookRootFolder" ]; then log "ERROR :: Exiting ERA..." exit fi - lidarrAudiobookRootFolderCheck=$(curl -s GET "$lidarrUrl/api/v1/rootFolder" -H "X-Api-Key: ${lidarrApiKey}" | grep "$lidarrAudiobookRootFolder") - if [ -z "$lidarrAudiobookRootFolderCheck" ]; then log "ERROR :: Audiobooks \"$lidarrAudiobookRootFolder\" is not added to Lidarr as a root folder... " log "ERROR :: Add \"$lidarrAudiobookRootFolder\" to Lidarr as a root folder" @@ -61,7 +66,11 @@ if [ -z "$lidarrAudiobookRootFolderCheck" ]; then fi AddReleaseToLidarr() { - lidarrAlbumSearch=$(curl -X GET "$lidarrUrl/api/v1/album/lookup?term="lidarr%3A%20$1"" -H "accept: */*" -H "X-Api-Key: "$lidarrApiKey"" | jq '.') +lidarrAlbumSearch=$(curl -s -X GET "$lidarrUrl/api/v1/album/lookup?term="lidarr%3A%20$1"" -H "accept: */*" -H "X-Api-Key: "$lidarrApiKey"" | jq '.') +CheckIfAlreadyAdded=$(echo $lidarrAlbumSearch | tr -d ' ' | sed 's/^.*,"grabbed":*false,"id"://g' | sed 's/}]//g' ) +if [[ $CheckIfAlreadyAdded =~ ^[0-9]+$ ]]; then + log "Adding :: $2 :: $3 :: Alreaddy Added, skipping...." +else lidarrAlbumSearch=$(echo $lidarrAlbumSearch | sed 's/"monitored": false/"monitored": true/g'| sed 's/"qualityProfileId": 0/"qualityProfileId": 1/g' | @@ -73,11 +82,13 @@ AddReleaseToLidarr() { cut -c 2- | head -c -2) curl -X POST "$lidarrUrl/api/v1/album?apikey="$lidarrApiKey"" -H "accept: text/plain" -H "Content-Type: application/json" -d "$lidarrAlbumSearch" + log "Adding :: $2 :: $3 :: Release Added..." +fi } SearchRelease(){ ReleaseName=$(wget -U "$agent" --timeout=0 -q -O - "https://musicbrainz.org/ws/2/release-group/$1" | grep -o ".*" | sed 's///g' | head -c -9 | sed 's/\&/\&/g' | sed 's/???/???‎/g') log "Adding :: $artist :: $ReleaseName" - AddReleaseToLidarr $1 &> /dev/null + AddReleaseToLidarr $1 "$artist" "$ReleaseName" } SearchAllReleasesForArtist() { offset=0 @@ -104,7 +115,7 @@ SearchAllReleasesForArtist() { } ArtistLookup() { search=$(echo $1 | sed 's/\"//g') - artist=$(wget -U "$agent" --timeout=0 -q -O - "https://musicbrainz.org/ws/2/artist/$search" | grep -o "<name>.*</name>" | sed 's/<name>//' | sed 's/<\/name>.*//' | sed 's/???/???‎/g' ) + artist=$(wget -U "$agent" --timeout=0 -q -O - "https://musicbrainz.org/ws/2/artist/$search" | grep -o "<name>.*</name>" | sed 's/<name>//' | sed 's/<\/name>.*//' | sed 's/???/???‎/g' | sed 's/\&/\&/g') log "Adding :: $artist" sleep 1.5 SearchAllReleasesForArtist $search