quintodrome/core
Deluan Quintão d28a282de4
fix(scanner): Apple Music playlists import for songs with accented characters (#4385)
* fix: resolve playlist import issues with Unicode character paths

Fixes #3332 where songs with accented characters failed to import from Apple Music M3U playlists. The issue occurred because Apple Music exports use NFC Unicode normalization while macOS filesystem stores paths in NFD normalization.

Added normalizePathForComparison() function that normalizes both filesystem and M3U playlist paths to NFC form before comparison. This ensures consistent path matching regardless of the Unicode normalization form used.

Changes include comprehensive test coverage for Unicode normalization scenarios with both NFC and NFD character representations.

* address comments

Signed-off-by: Deluan <deluan@navidrome.org>

* fix(tests): add check for unequal original Unicode paths in playlist normalization tests

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
2025-07-26 11:27:35 -04:00
..
agents refactor: streamline agents logic and remove unnecessary caching (#4298) 2025-07-05 10:11:35 -03:00
artwork feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
auth feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
external fix(server): ensure that similar artists retrieved from provider are no more than limit (#4267) 2025-06-29 12:19:29 -04:00
ffmpeg fix(server): better embedded artwork extraction with ffmpeg (#3860) 2025-03-20 19:26:40 -04:00
lyrics feat:(server): support reading lyrics from filesystem (#2897) 2025-04-30 08:10:19 -04:00
metrics fix(prometheus): report subsonic error code (#4282) 2025-06-30 11:54:02 -04:00
playback test: fix mpv tests on systems without /bin/bash installed - 4301 (#4302) 2025-07-02 21:55:55 -04:00
scrobbler feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
storage fix: improve URL path handling in local storage for special characters (#4378) 2025-07-23 20:46:47 -04:00
archiver.go feat(server): add M3U file to downloaded playlist 2025-05-27 20:13:37 -04:00
archiver_test.go feat(server): add M3U file to downloaded playlist 2025-05-27 20:13:37 -04:00
common.go feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
common_test.go test: add tests for userName and AbsolutePath in core/common.go 2025-04-18 11:53:47 -04:00
core_suite_test.go Rename log.LevelCritical to log.LevelFatal 2022-12-21 14:53:36 -05:00
inspect.go feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
library.go feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
library_test.go feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
media_streamer.go feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
media_streamer_Internal_test.go fix: forcing transcoding when client does not specify transcoding options (#3455) 2024-11-05 20:39:05 -05:00
media_streamer_test.go Add support for timeOffset in /stream endpoint 2023-12-02 13:10:36 -05:00
mock_library_service.go feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
players.go feat(server): group Subsonic config options together 2025-03-05 12:29:30 -08:00
players_test.go Use userId in player, other fixes (#3182) 2024-08-03 13:37:21 -04:00
playlists.go fix(scanner): Apple Music playlists import for songs with accented characters (#4385) 2025-07-26 11:27:35 -04:00
playlists_test.go fix(scanner): Apple Music playlists import for songs with accented characters (#4385) 2025-07-26 11:27:35 -04:00
share.go fix(server): headless library access improvements (#4362) 2025-07-20 15:58:21 -04:00
share_test.go Add option to allow share to be downloaded 2023-03-10 23:33:29 -05:00
wire_providers.go feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00