1.0.004 - Do not remove if episode failed to import due to TBA

The script will no longer auto-remove failed imports due to TBA titles, but instead, skip them and attempt to refresh the series to fix the missing title. That way the Sonarr can import automatically after it has been updated to the correct title.
pull/24/head
RandomNinjaAtk 2 years ago committed by GitHub
parent 946724bcef
commit 1f845b06fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
scriptVersion="1.0.003" scriptVersion="1.0.004"
if [ -z "$arrUrl" ] || [ -z "$arrApiKey" ]; then if [ -z "$arrUrl" ] || [ -z "$arrApiKey" ]; then
arrUrlBase="$(cat /config/config.xml | xq | jq -r .Config.UrlBase)" arrUrlBase="$(cat /config/config.xml | xq | jq -r .Config.UrlBase)"
@ -23,37 +23,31 @@ if [ -f "/config/logs/QueueCleaner.txt" ]; then
find /config/logs -type f -name "QueueCleaner.txt" -size +1024k -delete find /config/logs -type f -name "QueueCleaner.txt" -size +1024k -delete
fi fi
touch "/config/logs/QueueCleaner.txt" CleanerProcess () {
chmod 666 "/config/logs/QueueCleaner.txt" arrQueueData="$(curl -s "$arrUrl/api/v3/queue?page=1&pagesize=200&sortDirection=descending&sortKey=progress&includeUnknownSeriesItems=true&apikey=${arrApiKey}" | jq -r .records[])"
exec &> >(tee -a "/config/logs/QueueCleaner.txt") arrQueueIds=$(echo "$arrQueueData" | jq -r 'select(.status=="completed") | select(.trackedDownloadStatus=="warning") | .id')
arrQueueIdsCount=$(echo "$arrQueueData" | jq -r 'select(.status=="completed") | select(.trackedDownloadStatus=="warning") | .id' | wc -l)
arrQueueData="$(curl -s "$arrUrl/api/v3/queue?page=1&pagesize=200&sortDirection=descending&sortKey=progress&includeUnknownSeriesItems=true&apikey=${arrApiKey}" | jq -r .records[])" if [ $arrQueueIdsCount -eq 0 ]; then
arrQueueIds=$(echo "$arrQueueData" | jq -r 'select(.status=="completed") | select(.trackedDownloadStatus=="warning") | .id') log "No items in queue to clean up..."
arrQueueIdsCount=$(echo "$arrQueueData" | jq -r 'select(.status=="completed") | select(.trackedDownloadStatus=="warning") | .id' | wc -l) else
if [ $arrQueueIdsCount -eq 0 ]; then for queueId in $(echo $arrQueueIds); do
log "No items in queue to clean up..." arrQueueItemData="$(echo "$arrQueueData" | jq -r "select(.id==$queueId)")"
else arrQueueItemTitle="$(echo "$arrQueueItemData" | jq -r .title)"
for queueId in $(echo $arrQueueIds); do arrEpisodeData="$(curl -s "$arrUrl/api/v3/episode/$queueId?apikey=${arrApiKey}")"
arrQueueItemData="$(echo "$arrQueueData" | jq -r "select(.id==$queueId)")" arrEpisodeTitle="$(echo "$arrEpisodeData" | jq -r .title)"
arrQueueItemTitle="$(echo "$arrQueueItemData" | jq -r .title)" arrEpisodeSeriesId="$(echo "$arrEpisodeData" | jq -r .seriesId)"
log "Removing Failed Queue Item ID: $queueId ($arrQueueItemTitle) from Sonarr..." if [ "$arrEpisodeTitle" == "TBA" ]; then
curl -sX DELETE "$arrUrl/api/v3/queue/$queueId?removeFromClient=true&blocklist=true&apikey=${arrApiKey}" log "ERROR :: Episode title is \"$arrEpisodeTitle\" and prevents auto-import, refreshing series..."
done refreshSeries=$(curl -s "$arrUrl/api/v3/command" -X POST -H 'Content-Type: application/json' -H "X-Api-Key: $arrApiKey" --data-raw "{\"name\":\"RefreshSeries\",\"seriesId\":$arrEpisodeSeriesId}")
fi continue
else
arrQueueData="$(curl -s "$arrUrl/api/v3/queue?page=1&pagesize=200&sortDirection=descending&sortKey=progress&includeUnknownSeriesItems=true&apikey=${arrApiKey}" | jq -r .records[])" log "Removing Failed Queue Item ID: $queueId ($arrQueueItemTitle) from Sonarr..."
arrQueueIds=$(echo "$arrQueueData" | jq -r 'select(.status=="failed") | select(.trackedDownloadStatus=="warning") | .id') curl -sX DELETE "$arrUrl/api/v3/queue/$queueId?removeFromClient=true&blocklist=true&apikey=${arrApiKey}"
arrQueueIdsCount=$(echo "$arrQueueData" | jq -r 'select(.status=="failed") | select(.trackedDownloadStatus=="warning") | .id' | wc -l) fi
if [ $arrQueueIdsCount -eq 0 ]; then done
log "No items in queue to clean up..." fi
else }
for queueId in $(echo $arrQueueIds); do CleanerProcess
arrQueueItemData="$(echo "$arrQueueData" | jq -r "select(.id==$queueId)")"
arrQueueItemTitle="$(echo "$arrQueueItemData" | jq -r .title)"
log "Removing Failed Queue Item ID: $queueId ($arrQueueItemTitle) from Sonarr..."
curl -sX DELETE "$arrUrl/api/v3/queue/$queueId?removeFromClient=true&blocklist=true&apikey=${arrApiKey}"
done
fi
exit exit

Loading…
Cancel
Save