add some handler performance improvements

This commit is contained in:
sentriz
2019-07-08 15:43:45 +01:00
parent 5a1d262d6b
commit 22b53e8c17
2 changed files with 16 additions and 13 deletions

View File

@@ -147,9 +147,11 @@ func (c *Controller) GetAlbumList(w http.ResponseWriter, r *http.Request) {
Preload("Parent"). Preload("Parent").
Find(&folders) Find(&folders)
sub := subsonic.NewResponse() sub := subsonic.NewResponse()
sub.Albums = &subsonic.Albums{} sub.Albums = &subsonic.Albums{
for _, folder := range folders { List: make([]*subsonic.Album, len(folders)),
sub.Albums.List = append(sub.Albums.List, newAlbumByFolder(folder)) }
for i, folder := range folders {
sub.Albums.List[i] = newAlbumByFolder(folder)
} }
respond(w, r, sub) respond(w, r, sub)
} }

View File

@@ -61,9 +61,9 @@ func (c *Controller) GetArtist(w http.ResponseWriter, r *http.Request) {
First(artist, id) First(artist, id)
sub := subsonic.NewResponse() sub := subsonic.NewResponse()
sub.Artist = newArtistByTags(artist) sub.Artist = newArtistByTags(artist)
for _, album := range artist.Albums { sub.Artist.Albums = make([]*subsonic.Album, len(artist.Albums))
sub.Artist.Albums = append(sub.Artist.Albums, for i, album := range artist.Albums {
newAlbumByTags(album, artist)) sub.Artist.Albums[i] = newAlbumByTags(album, artist)
} }
respond(w, r, sub) respond(w, r, sub)
} }
@@ -88,9 +88,9 @@ func (c *Controller) GetAlbum(w http.ResponseWriter, r *http.Request) {
} }
sub := subsonic.NewResponse() sub := subsonic.NewResponse()
sub.Album = newAlbumByTags(album, album.TagArtist) sub.Album = newAlbumByTags(album, album.TagArtist)
for _, track := range album.Tracks { sub.Album.Tracks = make([]*subsonic.TrackChild, len(album.Tracks))
sub.Album.Tracks = append(sub.Album.Tracks, for i, track := range album.Tracks {
newTrackByTags(track, album)) sub.Album.Tracks[i] = newTrackByTags(track, album)
} }
respond(w, r, sub) respond(w, r, sub)
} }
@@ -149,10 +149,11 @@ func (c *Controller) GetAlbumListTwo(w http.ResponseWriter, r *http.Request) {
Preload("TagArtist"). Preload("TagArtist").
Find(&albums) Find(&albums)
sub := subsonic.NewResponse() sub := subsonic.NewResponse()
sub.AlbumsTwo = &subsonic.Albums{} sub.AlbumsTwo = &subsonic.Albums{
for _, album := range albums { List: make([]*subsonic.Album, len(albums)),
sub.AlbumsTwo.List = append(sub.AlbumsTwo.List, }
newAlbumByTags(album, album.TagArtist)) for i, album := range albums {
sub.AlbumsTwo.List[i] = newAlbumByTags(album, album.TagArtist)
} }
respond(w, r, sub) respond(w, r, sub)
} }