add some handler performance improvements
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user