From 480aa5859b179ae8cebffdd5955f6f7551375dfe Mon Sep 17 00:00:00 2001 From: Markury Date: Sat, 4 Oct 2025 14:43:54 -0400 Subject: [PATCH] fix: path sanitization inconsistency in cover art lookup Cover art lookup was constructing paths from raw metadata without sanitization, causing "No such file or directory" errors for artists with special characters (e.g. "Au/Ra" looked for "Au/Ra/" but files were saved to "Au_Ra/"). Now uses sanitizeFilename() to match the actual on-disk folder structure created during downloads. --- src/lib/library/playlist.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/library/playlist.ts b/src/lib/library/playlist.ts index 59245f9..cae4a73 100644 --- a/src/lib/library/playlist.ts +++ b/src/lib/library/playlist.ts @@ -2,6 +2,7 @@ import { readTextFile, exists, readDir } from '@tauri-apps/plugin-fs'; import { invoke } from '@tauri-apps/api/core'; import type { Track, AudioFormat, PlaylistWithTracks, TrackMetadata } from '$lib/types/track'; import { findAlbumArt } from './album'; +import { sanitizeFilename } from '$lib/services/deezer/paths'; /** * Get audio format from file extension @@ -228,7 +229,8 @@ export async function findPlaylistCoverFallback( } // Construct album folder path following the same structure as downloader - const albumPath = `${musicFolder}/${albumArtist}/${album}`; + // Must use sanitized paths to match how files are actually saved on disk + const albumPath = `${musicFolder}/${sanitizeFilename(albumArtist)}/${sanitizeFilename(album)}`; try { // Check if album folder exists and has cover art