still working on lidarr endoints
This commit is contained in:
+28
-5
@@ -165,21 +165,44 @@ check_api "$LIDARR_URL" "Lidarr" || {
|
||||
|
||||
info "Querying Lidarr API: $LIDARR_URL"
|
||||
|
||||
TRACKFILE_RESPONSE=$(lidarr_api "trackFile") || {
|
||||
error "Failed to fetch track files from Lidarr — check URL and API key"
|
||||
notify "Lidarr cleanup failed on $(hostname) — API unreachable" "Lidarr Cleanup" "warning"
|
||||
# Lidarr requires artistId parameter for trackFile endpoint
|
||||
# Step 1: Get all artist IDs
|
||||
# Step 2: For each artist, get their track files
|
||||
ARTIST_RESPONSE=$(lidarr_api "artist") || {
|
||||
error "Failed to fetch artists from Lidarr — check URL and API key"
|
||||
notify "Lidarr cleanup failed on $(hostname) — could not fetch artists" "Lidarr Cleanup" "warning"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ARTIST_IDS=$(echo "$ARTIST_RESPONSE" | jq -r '.[].id' 2>/dev/null)
|
||||
ARTIST_COUNT=$(echo "$ARTIST_IDS" | grep -c "[0-9]" 2>/dev/null || echo 0)
|
||||
|
||||
if [[ "$ARTIST_COUNT" -eq 0 ]]; then
|
||||
warn "No artists found in Lidarr — library may be empty"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
info "Found $ARTIST_COUNT artists — fetching track files..."
|
||||
|
||||
TMP_DIR="/tmp/lidarr_cleanup_$$"
|
||||
mkdir -p "$TMP_DIR"
|
||||
trap "rm -rf $TMP_DIR" EXIT
|
||||
|
||||
TRACKED_FILE="$TMP_DIR/tracked_paths.txt"
|
||||
echo "$TRACKFILE_RESPONSE" | jq -r '.[].path' 2>/dev/null | sort > "$TRACKED_FILE"
|
||||
> "$TRACKED_FILE"
|
||||
|
||||
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"
|
||||
fi
|
||||
done <<< "$ARTIST_IDS"
|
||||
|
||||
sort -u "$TRACKED_FILE" -o "$TRACKED_FILE"
|
||||
|
||||
TRACKED_COUNT=$(wc -l < "$TRACKED_FILE")
|
||||
success "Lidarr tracks $TRACKED_COUNT files"
|
||||
success "Lidarr tracks $TRACKED_COUNT files across $ARTIST_COUNT artists"
|
||||
|
||||
if [[ "$TRACKED_COUNT" -eq 0 ]]; then
|
||||
warn "No tracked files returned — Lidarr may not have scanned yet or library is empty"
|
||||
|
||||
Reference in New Issue
Block a user