still working on lidarr endoints

This commit is contained in:
2026-04-23 16:17:59 -04:00
parent 36c7bb66dc
commit 8f60e5dde4
+28 -5
View File
@@ -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"