From a30ee3d7f91ebf24f427e7f36b6b2830299935f9 Mon Sep 17 00:00:00 2001 From: sentriz Date: Wed, 8 Nov 2023 20:13:22 +0000 Subject: [PATCH] feat(subsonic): support getAlbumList/getAlbumList2 `type=highest` closes #404 --- server/ctrlsubsonic/handlers_by_folder.go | 3 +++ server/ctrlsubsonic/handlers_by_tags.go | 3 +++ 2 files changed, 6 insertions(+) diff --git a/server/ctrlsubsonic/handlers_by_folder.go b/server/ctrlsubsonic/handlers_by_folder.go index fa68dda..66f98e9 100644 --- a/server/ctrlsubsonic/handlers_by_folder.go +++ b/server/ctrlsubsonic/handlers_by_folder.go @@ -160,6 +160,9 @@ func (c *Controller) ServeGetAlbumList(r *http.Request) *spec.Response { case "starred": q = q.Joins("JOIN album_stars ON albums.id=album_stars.album_id AND album_stars.user_id=?", user.ID) q = q.Order("right_path") + case "highest": + q = q.Joins("JOIN album_ratings ON album_ratings.album_id=albums.id AND album_ratings.user_id=?", user.ID) + q = q.Order("album_ratings.rating DESC") default: return spec.NewError(10, "unknown value %q for parameter 'type'", v) } diff --git a/server/ctrlsubsonic/handlers_by_tags.go b/server/ctrlsubsonic/handlers_by_tags.go index f5b1950..9df24dd 100644 --- a/server/ctrlsubsonic/handlers_by_tags.go +++ b/server/ctrlsubsonic/handlers_by_tags.go @@ -175,6 +175,9 @@ func (c *Controller) ServeGetAlbumListTwo(r *http.Request) *spec.Response { case "starred": q = q.Joins("JOIN album_stars ON albums.id=album_stars.album_id AND album_stars.user_id=?", user.ID) q = q.Order("tag_title") + case "highest": + q = q.Joins("JOIN album_ratings ON album_ratings.album_id=albums.id AND album_ratings.user_id=?", user.ID) + q = q.Order("album_ratings.rating DESC") default: return spec.NewError(10, "unknown value %q for parameter 'type'", listType) }