now i fixed arrs ckean, maybe?
This commit is contained in:
+20
-3
@@ -90,7 +90,19 @@ fi
|
||||
LIDARR_URL="$HOST1_LIDARR_URL"
|
||||
LIDARR_API_KEY="$HOST1_LIDARR_API_KEY"
|
||||
LIDARR_MUSIC_ROOT="$HOST1_LIDARR_MUSIC_ROOT"
|
||||
LIDARR_CONTAINER="Lidarr" # Docker container name for health check
|
||||
LIDARR_CONTAINER="Lidarr"
|
||||
|
||||
# Load path map — translates container paths from API to host paths on disk
|
||||
declare -A ARR_PATH_MAP
|
||||
if [[ "$LOCAL_SERVER_NAME" == "$HOST1" ]]; then
|
||||
for key in "${!HOST1_LIDARR_PATH_MAP[@]}"; do
|
||||
ARR_PATH_MAP["$key"]="${HOST1_LIDARR_PATH_MAP[$key]}"
|
||||
done
|
||||
else
|
||||
for key in "${!HOST2_LIDARR_PATH_MAP[@]}"; do
|
||||
ARR_PATH_MAP["$key"]="${HOST2_LIDARR_PATH_MAP[$key]}"
|
||||
done
|
||||
fi
|
||||
|
||||
info "Lidarr instance: $LOCAL_SERVER_NAME → $LIDARR_URL"
|
||||
info "Music root: $LIDARR_MUSIC_ROOT"
|
||||
@@ -253,7 +265,12 @@ while IFS= read -r artist_id; do
|
||||
[[ -z "$artist_id" ]] && continue
|
||||
ARTIST_TRACKS=$(lidarr_api "trackFile?artistId=${artist_id}" 2>/dev/null)
|
||||
if [[ -n "$ARTIST_TRACKS" ]]; then
|
||||
echo "$ARTIST_TRACKS" | jq -r '.[].path' 2>/dev/null >> "$TRACKED_FILE"
|
||||
if [[ -n "$ARTIST_TRACKS" ]]; then
|
||||
while IFS= read -r api_path; do
|
||||
[[ -z "$api_path" ]] && continue
|
||||
translate_path "$api_path" >> "$TRACKED_FILE"
|
||||
done < <(echo "$ARTIST_TRACKS" | jq -r '.[].path' 2>/dev/null)
|
||||
fi
|
||||
fi
|
||||
done <<< "$ARTIST_IDS"
|
||||
|
||||
@@ -321,7 +338,7 @@ while IFS= read -r filepath; do
|
||||
fi
|
||||
|
||||
if is_protected_file "$filepath"; then
|
||||
log "PROTECTED: $filepath"
|
||||
log "$ICON_PROTECTED PROTECTED: $filepath"
|
||||
((PROTECTED_COUNT++))
|
||||
continue
|
||||
fi
|
||||
|
||||
@@ -70,14 +70,14 @@ else
|
||||
fi
|
||||
|
||||
# Load path map for this host
|
||||
declare -A PATH_MAP
|
||||
declare -A ARR_PATH_MAP
|
||||
if [[ "$LOCAL_SERVER_NAME" == "$HOST1" ]]; then
|
||||
for key in "${!HOST1_RADARR_PATH_MAP[@]}"; do
|
||||
PATH_MAP["$key"]="${HOST1_RADARR_PATH_MAP[$key]}"
|
||||
ARR_PATH_MAP["$key"]="${HOST1_RADARR_PATH_MAP[$key]}"
|
||||
done
|
||||
else
|
||||
for key in "${!HOST2_RADARR_PATH_MAP[@]}"; do
|
||||
PATH_MAP["$key"]="${HOST2_RADARR_PATH_MAP[$key]}"
|
||||
ARR_PATH_MAP["$key"]="${HOST2_RADARR_PATH_MAP[$key]}"
|
||||
done
|
||||
fi
|
||||
|
||||
@@ -188,7 +188,7 @@ 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" PATH_MAP >> "$TRACKED_FILE"
|
||||
translate_path "$api_path" >> "$TRACKED_FILE"
|
||||
done < <(echo "$MOVIEFILE_RESPONSE" | jq -r '.[].path' 2>/dev/null)
|
||||
sort -u "$TRACKED_FILE" -o "$TRACKED_FILE"
|
||||
|
||||
@@ -232,7 +232,7 @@ while IFS= read -r filepath; do
|
||||
fi
|
||||
|
||||
if is_protected_file "$filepath"; then
|
||||
log "PROTECTED: $filepath"
|
||||
log "$ICON_PROTECTED PROTECTED: $filepath"
|
||||
((PROTECTED_COUNT++))
|
||||
continue
|
||||
fi
|
||||
@@ -273,8 +273,8 @@ while IFS= read -r filepath; do
|
||||
fi
|
||||
|
||||
done < <(
|
||||
# Scan all host paths defined in PATH_MAP — covers all root folders managed by Radarr
|
||||
for host_path in "${PATH_MAP[@]}" "$RADARR_MOVIES_ROOT"; do
|
||||
# Scan all host paths defined in ARR_PATH_MAP — covers all root folders managed by Radarr
|
||||
for host_path in "${ARR_PATH_MAP[@]}" "$RADARR_MOVIES_ROOT"; do
|
||||
[[ -d "$host_path" ]] && find "$host_path" -type f 2>/dev/null
|
||||
done | sort -u
|
||||
)
|
||||
@@ -282,7 +282,7 @@ done < <(
|
||||
if [[ "$DRY_RUN" == false ]]; then
|
||||
echo ""
|
||||
info "Cleaning up empty folders..."
|
||||
for host_path in "${PATH_MAP[@]}" "$RADARR_MOVIES_ROOT"; do
|
||||
for host_path in "${ARR_PATH_MAP[@]}" "$RADARR_MOVIES_ROOT"; do
|
||||
[[ -d "$host_path" ]] && \
|
||||
find "$host_path" -mindepth 1 -type d -empty -delete 2>/dev/null
|
||||
done
|
||||
|
||||
@@ -70,14 +70,14 @@ else
|
||||
fi
|
||||
|
||||
# Load path map for this host
|
||||
declare -A PATH_MAP
|
||||
declare -A ARR_PATH_MAP
|
||||
if [[ "$LOCAL_SERVER_NAME" == "$HOST1" ]]; then
|
||||
for key in "${!HOST1_SONARR_PATH_MAP[@]}"; do
|
||||
PATH_MAP["$key"]="${HOST1_SONARR_PATH_MAP[$key]}"
|
||||
ARR_PATH_MAP["$key"]="${HOST1_SONARR_PATH_MAP[$key]}"
|
||||
done
|
||||
else
|
||||
for key in "${!HOST2_SONARR_PATH_MAP[@]}"; do
|
||||
PATH_MAP["$key"]="${HOST2_SONARR_PATH_MAP[$key]}"
|
||||
ARR_PATH_MAP["$key"]="${HOST2_SONARR_PATH_MAP[$key]}"
|
||||
done
|
||||
fi
|
||||
|
||||
@@ -188,7 +188,7 @@ 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" PATH_MAP >> "$TRACKED_FILE"
|
||||
translate_path "$api_path" >> "$TRACKED_FILE"
|
||||
done < <(echo "$EPISODEFILE_RESPONSE" | jq -r '.[].path' 2>/dev/null)
|
||||
sort -u "$TRACKED_FILE" -o "$TRACKED_FILE"
|
||||
|
||||
@@ -232,7 +232,7 @@ while IFS= read -r filepath; do
|
||||
fi
|
||||
|
||||
if is_protected_file "$filepath"; then
|
||||
log "PROTECTED: $filepath"
|
||||
log "$ICON_PROTECTED PROTECTED: $filepath"
|
||||
((PROTECTED_COUNT++))
|
||||
continue
|
||||
fi
|
||||
@@ -273,8 +273,8 @@ while IFS= read -r filepath; do
|
||||
fi
|
||||
|
||||
done < <(
|
||||
# Scan all host paths defined in PATH_MAP — covers all root folders managed by Sonarr
|
||||
for host_path in "${PATH_MAP[@]}" "$SONARR_TV_ROOT"; do
|
||||
# Scan all host paths defined in ARR_PATH_MAP — covers all root folders managed by Sonarr
|
||||
for host_path in "${ARR_PATH_MAP[@]}" "$SONARR_TV_ROOT"; do
|
||||
[[ -d "$host_path" ]] && find "$host_path" -type f 2>/dev/null
|
||||
done | sort -u
|
||||
)
|
||||
@@ -282,7 +282,7 @@ done < <(
|
||||
if [[ "$DRY_RUN" == false ]]; then
|
||||
echo ""
|
||||
info "Cleaning up empty folders..."
|
||||
for host_path in "${PATH_MAP[@]}" "$SONARR_TV_ROOT"; do
|
||||
for host_path in "${ARR_PATH_MAP[@]}" "$SONARR_TV_ROOT"; do
|
||||
[[ -d "$host_path" ]] && \
|
||||
find "$host_path" -mindepth 1 -type d -empty -delete 2>/dev/null
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user