update radar and sonarr enpoints
This commit is contained in:
+30
-6
@@ -212,21 +212,45 @@ check_api "$RADARR_URL" "Radarr" || {
|
||||
|
||||
info "Querying Radarr API: $RADARR_URL"
|
||||
|
||||
MOVIEFILE_RESPONSE=$(radarr_api "moviefile") || {
|
||||
error "Failed to fetch movie files from Radarr — check URL and API key"
|
||||
# Step 1 — get all movies to extract IDs
|
||||
MOVIES_RESPONSE=$(radarr_api "movie") || {
|
||||
error "Failed to fetch movies from Radarr — check URL and API key"
|
||||
notify "Radarr cleanup failed on $(hostname) — API unreachable" "Radarr Cleanup" "warning"
|
||||
exit 1
|
||||
}
|
||||
|
||||
MOVIE_IDS=$(echo "$MOVIES_RESPONSE" | jq -r '.[].id' 2>/dev/null)
|
||||
MOVIE_COUNT=$(echo "$MOVIE_IDS" | grep -c . 2>/dev/null || echo 0)
|
||||
info "Movies in Radarr: $MOVIE_COUNT"
|
||||
|
||||
if [[ "$MOVIE_COUNT" -eq 0 ]]; then
|
||||
warn "No movies returned from Radarr — aborting to prevent mass deletion"
|
||||
notify "Radarr cleanup aborted on $(hostname) — no movies returned from API" "Radarr Cleanup" "warning"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TMP_DIR="/tmp/radarr_cleanup_$$"
|
||||
mkdir -p "$TMP_DIR"
|
||||
trap "rm -rf $TMP_DIR" EXIT
|
||||
|
||||
TRACKED_FILE="$TMP_DIR/tracked_paths.txt"
|
||||
while IFS= read -r api_path; do
|
||||
[[ -z "$api_path" ]] && continue
|
||||
translate_path "$api_path" >> "$TRACKED_FILE"
|
||||
done < <(echo "$MOVIEFILE_RESPONSE" | jq -r '.[].path' 2>/dev/null)
|
||||
> "$TRACKED_FILE"
|
||||
|
||||
# Step 2 — get movie files per movie ID
|
||||
MOVIE_INDEX=0
|
||||
while IFS= read -r movie_id; do
|
||||
[[ -z "$movie_id" ]] && continue
|
||||
((MOVIE_INDEX++))
|
||||
[[ $(( MOVIE_INDEX % 100 )) -eq 0 ]] && info "Fetching files: $MOVIE_INDEX/$MOVIE_COUNT movies..."
|
||||
MOVIE_FILES=$(radarr_api "moviefile?movieId=${movie_id}" 2>/dev/null)
|
||||
if [[ -n "$MOVIE_FILES" ]]; then
|
||||
while IFS= read -r api_path; do
|
||||
[[ -z "$api_path" ]] && continue
|
||||
translate_path "$api_path" >> "$TRACKED_FILE"
|
||||
done < <(echo "$MOVIE_FILES" | jq -r '.[].path // .path' 2>/dev/null)
|
||||
fi
|
||||
done <<< "$MOVIE_IDS"
|
||||
|
||||
sort -u "$TRACKED_FILE" -o "$TRACKED_FILE"
|
||||
|
||||
TRACKED_COUNT=$(wc -l < "$TRACKED_FILE")
|
||||
|
||||
Reference in New Issue
Block a user