Create InvalidMoviesAutoCleaner.bash
This commit is contained in:
parent
16c1581e25
commit
c188e3e90a
1 changed files with 81 additions and 0 deletions
81
radarr/InvalidMoviesAutoCleaner.bash
Normal file
81
radarr/InvalidMoviesAutoCleaner.bash
Normal file
|
@ -0,0 +1,81 @@
|
|||
#!/usr/bin/env bash
|
||||
scriptVersion="1.0"
|
||||
scriptName="InvalidMoviesAutoCleaner"
|
||||
|
||||
#### Import Settings
|
||||
source /config/extended.conf
|
||||
#### Import Functions
|
||||
source /config/extended/functions
|
||||
#### Create Log File
|
||||
logfileSetup
|
||||
#### Check Arr App
|
||||
getArrAppInfo
|
||||
verifyApiAccess
|
||||
|
||||
verifyConfig () {
|
||||
|
||||
if [ "$enableInvalidMoviesAutoCleaner" != "true" ]; then
|
||||
log "Script is not enabled, enable by setting enableInvalidSeriesAutoCleaner to \"true\" by modifying the \"/config/extended.conf\" config file..."
|
||||
log "Sleeping (infinity)"
|
||||
#sleep infinity
|
||||
fi
|
||||
|
||||
if [ -z "$invalidMoviesAutoCleanerScriptInterval" ]; then
|
||||
invalidMoviesAutoCleanerScriptInterval="1h"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
InvalidMovieAutoCleanerProcess () {
|
||||
|
||||
# Get invalid series tmdbid id's
|
||||
movieTmdbid="$(curl -s --header "X-Api-Key:"$arrApiKey --request GET "$arrUrl/api/v3/health" | jq -r '.[] | select(.source=="RemovedMovieCheck") | select(.type=="error")' | grep -o 'tmdbid [0-9]*' | grep -o '[[:digit:]]*')"
|
||||
|
||||
if [ -z "$movieTmdbid" ]; then
|
||||
log "No invalid movies (tmdbid) reported by Radarr health check, skipping..."
|
||||
return
|
||||
fi
|
||||
|
||||
|
||||
# Process each invalid series tmdb id
|
||||
moviesData="$(curl -s --header "X-Api-Key:"$arrApiKey --request GET "$arrUrl/api/v3/movie")"
|
||||
for tmdbid in $(echo $movieTmdbid); do
|
||||
movieData="$(echo "$moviesData" | jq -r ".[] | select(.tmdbId==$tmdbid)")"
|
||||
movieId="$(echo "$movieData" | jq -r .id)"
|
||||
movieTitle="$(echo "$movieData" | jq -r .title)"
|
||||
moviePath="$(echo "$movieData" | jq -r .path)"
|
||||
notifyPlex="false"
|
||||
if [ -d "$moviePath" ]; then
|
||||
notifyPlex="true"
|
||||
else
|
||||
notifyPlex="false"
|
||||
fi
|
||||
|
||||
log "$movieId :: $movieTitle :: $moviePath :: Removing and deleting invalid movie (tmdbid: $tmdbid) based on Radarr Health Check error..."
|
||||
# Send command to Sonarr to delete series and files
|
||||
arrCommand=$(curl -s --header "X-Api-Key:"$arrApiKey --request DELETE "$arrUrl/api/v3/movie/$movieId?deleteFiles=true")
|
||||
|
||||
|
||||
if [ "$notifyPlex" == "true" ]; then
|
||||
# trigger a plex scan to remove the deleted movie
|
||||
folderToScan="$(dirname "$moviePath")"
|
||||
log "Using PlexNotify.bash to update Plex.... ($folderToScan)"
|
||||
bash /config/extended/PlexNotify.bash "$folderToScan" "true"
|
||||
fi
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
for (( ; ; )); do
|
||||
let i++
|
||||
logfileSetup
|
||||
log "Script starting..."
|
||||
verifyConfig
|
||||
getArrAppInfo
|
||||
verifyApiAccess
|
||||
InvalidMovieAutoCleanerProcess
|
||||
log "Script sleeping for $invalidMoviesAutoCleanerScriptInterval..."
|
||||
sleep $invalidMoviesAutoCleanerScriptInterval
|
||||
done
|
||||
|
||||
exit
|
Loading…
Reference in a new issue