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").
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)
}

View File

@@ -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)
}