From 6d253225de088e27f9a191d6bcedcb2e68b123fa Mon Sep 17 00:00:00 2001 From: Deluan Date: Thu, 15 Feb 2024 21:52:00 -0500 Subject: [PATCH] Use order/sort album/artist when sorting tracks in playlists. Fixes #2819 --- persistence/playlist_track_repository.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/persistence/playlist_track_repository.go b/persistence/playlist_track_repository.go index 484e6fd0..24a73f63 100644 --- a/persistence/playlist_track_repository.go +++ b/persistence/playlist_track_repository.go @@ -5,6 +5,7 @@ import ( . "github.com/Masterminds/squirrel" "github.com/deluan/rest" + "github.com/navidrome/navidrome/conf" "github.com/navidrome/navidrome/log" "github.com/navidrome/navidrome/model" "github.com/navidrome/navidrome/utils/slice" @@ -26,8 +27,15 @@ func (r *playlistRepository) Tracks(playlistId string, refreshSmartPlaylist bool p.db = r.db p.tableName = "playlist_tracks" p.sortMappings = map[string]string{ - "id": "playlist_tracks.id", + "id": "playlist_tracks.id", + "artist": "order_artist_name asc", + "album": "order_album_name asc, order_album_artist_name asc", } + if conf.Server.PreferSortTags { + p.sortMappings["artist"] = "COALESCE(NULLIF(sort_artist_name,''),order_artist_name) asc" + p.sortMappings["album"] = "COALESCE(NULLIF(sort_album_name,''),order_album_name)" + } + pls, err := r.Get(playlistId) if err != nil { log.Error(r.ctx, "Error getting playlist's tracks - THIS SHOULD NOT HAPPEN!", "playlistId", playlistId, err)