diff --git a/server/ctrlsubsonic/handlers_by_folder.go b/server/ctrlsubsonic/handlers_by_folder.go index 2ad2e0e..988e8fe 100644 --- a/server/ctrlsubsonic/handlers_by_folder.go +++ b/server/ctrlsubsonic/handlers_by_folder.go @@ -131,7 +131,7 @@ func (c *Controller) ServeGetAlbumList(r *http.Request) *spec.Response { // TODO: think about removing this extra join to count number // of children. it might make sense to store that in the db q. - Select("albums.*, count(tracks.id) child_count"). + Select("albums.*, count(tracks.id) child_count, sum(tracks.length) duration"). Joins("LEFT JOIN tracks ON tracks.album_id=albums.id"). Group("albums.id"). Where("albums.tag_artist_id IS NOT NULL"). diff --git a/server/ctrlsubsonic/spec/construct_by_folder.go b/server/ctrlsubsonic/spec/construct_by_folder.go index 0002109..6e3c9f8 100644 --- a/server/ctrlsubsonic/spec/construct_by_folder.go +++ b/server/ctrlsubsonic/spec/construct_by_folder.go @@ -14,6 +14,7 @@ func NewAlbumByFolder(f *db.Album) *Album { ParentID: f.ParentSID(), Title: f.RightPath, TrackCount: f.ChildCount, + Duration: f.Duration, } if f.Cover != "" { a.CoverID = f.SID()