From f98f9380c4bc8ac661ca75bc551fb68636b7c49d Mon Sep 17 00:00:00 2001 From: Deluan Date: Mon, 6 Jul 2026 10:00:11 -0400 Subject: [PATCH] fix(jellyfin): sort playlists by name (missing Playlist sort mapping) applySort had no sortColumnsByType entry for the Playlist type, so SortBy=SortName was ignored and the Playlists screen showed them in the repo's default order. Map SortName/Name -> name (as Subsonic does) and DateCreated -> created_at. Verified live: case-insensitive alphabetical. --- server/jellyfin/e2e/playlists_test.go | 8 ++++++++ server/jellyfin/items.go | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/server/jellyfin/e2e/playlists_test.go b/server/jellyfin/e2e/playlists_test.go index 0349d02db..c1448fdf6 100644 --- a/server/jellyfin/e2e/playlists_test.go +++ b/server/jellyfin/e2e/playlists_test.go @@ -94,6 +94,14 @@ var _ = Describe("Playlists", func() { Expect(q.Items[0].Name).To(Equal("Listed")) Expect(q.Items[0].ImageTags).To(HaveKey("Primary")) }) + + It("sorts playlists by name when SortBy=SortName", func() { + createPlaylist("Charlie", nil) + createPlaylist("Alpha", nil) + createPlaylist("Bravo", nil) + q := queryResult(get("/Items?IncludeItemTypes=Playlist&Recursive=true&SortBy=SortName")) + Expect(names(q.Items)).To(Equal([]string{"Alpha", "Bravo", "Charlie"})) + }) }) Describe("cover art", func() { diff --git a/server/jellyfin/items.go b/server/jellyfin/items.go index a2c84b19f..278fc3f48 100644 --- a/server/jellyfin/items.go +++ b/server/jellyfin/items.go @@ -457,6 +457,10 @@ var sortColumnsByType = map[string]map[string]string{ "MusicGenre": { "sortname": "name", "name": "name", }, + "Playlist": { + "sortname": "name", "name": "name", + "datecreated": "created_at", + }, } // sortColumn maps a single (non comma-list) Jellyfin SortBy key to the repo sort key for