From fdd063c846561c93944b3f7b7dea3cebc57bf0ce Mon Sep 17 00:00:00 2001 From: RandomNinjaAtk Date: Wed, 9 Nov 2022 08:53:51 -0500 Subject: [PATCH] 1.0.007 - Bug fix, new feature requires the "episodeId" --- root/scripts/QueueCleaner.bash | 45 +++++++++++++++++----------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/root/scripts/QueueCleaner.bash b/root/scripts/QueueCleaner.bash index fa8cb56..4b09f30 100644 --- a/root/scripts/QueueCleaner.bash +++ b/root/scripts/QueueCleaner.bash @@ -1,5 +1,5 @@ #!/usr/bin/env bash -scriptVersion="1.0.006" +scriptVersion="1.0.007" if [ -z "$arrUrl" ] || [ -z "$arrApiKey" ]; then arrUrlBase="$(cat /config/config.xml | xq | jq -r .Config.UrlBase)" @@ -28,28 +28,29 @@ chmod 666 "/config/logs/QueueCleaner.txt" exec &> >(tee -a "/config/logs/QueueCleaner.txt") CleanerProcess () { - arrQueueData="$(curl -s "$arrUrl/api/v3/queue?page=1&pagesize=200&sortDirection=descending&sortKey=progress&includeUnknownSeriesItems=true&apikey=${arrApiKey}" | jq -r .records[])" - 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) - if [ $arrQueueIdsCount -eq 0 ]; then + arrQueueData="$(curl -s "$arrUrl/api/v3/queue?page=1&pagesize=200&sortDirection=descending&sortKey=progress&includeUnknownSeriesItems=true&apikey=${arrApiKey}" | jq -r .records[])" + 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) + if [ $arrQueueIdsCount -eq 0 ]; then log "No items in queue to clean up..." - else - for queueId in $(echo $arrQueueIds); do - arrQueueItemData="$(echo "$arrQueueData" | jq -r "select(.id==$queueId)")" - arrQueueItemTitle="$(echo "$arrQueueItemData" | jq -r .title)" - arrEpisodeData="$(curl -s "$arrUrl/api/v3/episode/$queueId?apikey=${arrApiKey}")" - arrEpisodeTitle="$(echo "$arrEpisodeData" | jq -r .title)" - arrEpisodeSeriesId="$(echo "$arrEpisodeData" | jq -r .seriesId)" - if [ "$arrEpisodeTitle" == "TBA" ]; then - log "ERROR :: Episode title is \"$arrEpisodeTitle\" and prevents auto-import, refreshing series..." - 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}") - continue - else - log "Removing Failed Queue Item ID: $queueId ($arrQueueItemTitle) from Sonarr..." - curl -sX DELETE "$arrUrl/api/v3/queue/$queueId?removeFromClient=true&blocklist=true&apikey=${arrApiKey}" - fi - done - fi + else + for queueId in $(echo $arrQueueIds); do + arrQueueItemData="$(echo "$arrQueueData" | jq -r "select(.id==$queueId)")" + arrQueueItemTitle="$(echo "$arrQueueItemData" | jq -r .title)" + arrEpisodeId="$(echo "$arrQueueItemData" | jq -r .episodeId)" + arrEpisodeData="$(curl -s "$arrUrl/api/v3/episode/$arrEpisodeId?apikey=${arrApiKey}")" + arrEpisodeTitle="$(echo "$arrEpisodeData" | jq -r .title)" + arrEpisodeSeriesId="$(echo "$arrEpisodeData" | jq -r .seriesId)" + if [ "$arrEpisodeTitle" == "TBA" ]; then + log "ERROR :: Episode title is \"$arrEpisodeTitle\" and prevents auto-import, refreshing series..." + 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}") + continue + else + log "Removing Failed Queue Item ID: $queueId ($arrQueueItemTitle) from Sonarr..." + curl -sX DELETE "$arrUrl/api/v3/queue/$queueId?removeFromClient=true&blocklist=true&apikey=${arrApiKey}" + fi + done + fi } CleanerProcess