diff --git a/server/handler/handler_sub_by_folder.go b/server/handler/handler_sub_by_folder.go index 2d1ef40..f004d7b 100644 --- a/server/handler/handler_sub_by_folder.go +++ b/server/handler/handler_sub_by_folder.go @@ -147,9 +147,11 @@ func (c *Controller) GetAlbumList(w http.ResponseWriter, r *http.Request) { Preload("Parent"). Find(&folders) sub := subsonic.NewResponse() - sub.Albums = &subsonic.Albums{} - for _, folder := range folders { - sub.Albums.List = append(sub.Albums.List, newAlbumByFolder(folder)) + sub.Albums = &subsonic.Albums{ + List: make([]*subsonic.Album, len(folders)), + } + for i, folder := range folders { + sub.Albums.List[i] = newAlbumByFolder(folder) } respond(w, r, sub) } diff --git a/server/handler/handler_sub_by_tags.go b/server/handler/handler_sub_by_tags.go index 3ae66ce..be23275 100644 --- a/server/handler/handler_sub_by_tags.go +++ b/server/handler/handler_sub_by_tags.go @@ -61,9 +61,9 @@ func (c *Controller) GetArtist(w http.ResponseWriter, r *http.Request) { First(artist, id) sub := subsonic.NewResponse() sub.Artist = newArtistByTags(artist) - for _, album := range artist.Albums { - sub.Artist.Albums = append(sub.Artist.Albums, - newAlbumByTags(album, artist)) + sub.Artist.Albums = make([]*subsonic.Album, len(artist.Albums)) + for i, album := range artist.Albums { + sub.Artist.Albums[i] = newAlbumByTags(album, artist) } respond(w, r, sub) } @@ -88,9 +88,9 @@ func (c *Controller) GetAlbum(w http.ResponseWriter, r *http.Request) { } sub := subsonic.NewResponse() sub.Album = newAlbumByTags(album, album.TagArtist) - for _, track := range album.Tracks { - sub.Album.Tracks = append(sub.Album.Tracks, - newTrackByTags(track, album)) + sub.Album.Tracks = make([]*subsonic.TrackChild, len(album.Tracks)) + for i, track := range album.Tracks { + sub.Album.Tracks[i] = newTrackByTags(track, album) } respond(w, r, sub) } @@ -149,10 +149,11 @@ func (c *Controller) GetAlbumListTwo(w http.ResponseWriter, r *http.Request) { Preload("TagArtist"). Find(&albums) sub := subsonic.NewResponse() - sub.AlbumsTwo = &subsonic.Albums{} - for _, album := range albums { - sub.AlbumsTwo.List = append(sub.AlbumsTwo.List, - newAlbumByTags(album, album.TagArtist)) + sub.AlbumsTwo = &subsonic.Albums{ + List: make([]*subsonic.Album, len(albums)), + } + for i, album := range albums { + sub.AlbumsTwo.List[i] = newAlbumByTags(album, album.TagArtist) } respond(w, r, sub) }