Return `AlbumID3` in `search3` results

This commit is contained in:
Deluan 2023-12-09 14:01:22 -05:00
parent 465cc091b0
commit aed0309161
3 changed files with 40 additions and 2 deletions

View File

@ -282,3 +282,41 @@ func buildDiscSubtitles(_ context.Context, a model.Album) responses.DiscTitles {
})
return discTitles
}
func buildAlbumsID3(ctx context.Context, albums model.Albums) []responses.AlbumID3 {
res := make([]responses.AlbumID3, len(albums))
for i, album := range albums {
res[i] = buildAlbumID3(ctx, album)
}
return res
}
func buildAlbumID3(ctx context.Context, album model.Album) responses.AlbumID3 {
dir := responses.AlbumID3{}
dir.Id = album.ID
dir.Name = album.Name
dir.Artist = album.AlbumArtist
dir.ArtistId = album.AlbumArtistID
dir.CoverArt = album.CoverArtID().String()
dir.SongCount = int32(album.SongCount)
dir.Duration = int32(album.Duration)
dir.PlayCount = album.PlayCount
if album.PlayCount > 0 {
dir.Played = album.PlayDate
}
dir.Year = int32(album.MaxYear)
dir.Genre = album.Genre
dir.Genres = buildItemGenres(album.Genres)
dir.DiscTitles = buildDiscSubtitles(ctx, album)
dir.UserRating = int32(album.Rating)
if !album.CreatedAt.IsZero() {
dir.Created = &album.CreatedAt
}
if album.Starred {
dir.Starred = album.StarredAt
}
dir.MusicBrainzId = album.MbzAlbumID
dir.IsCompilation = album.Compilation
dir.SortName = album.SortAlbumName
return dir
}

View File

@ -276,7 +276,7 @@ type SearchResult2 struct {
type SearchResult3 struct {
Artist []ArtistID3 `xml:"artist" json:"artist,omitempty"`
Album []Child `xml:"album" json:"album,omitempty"`
Album []AlbumID3 `xml:"album" json:"album,omitempty"`
Song []Child `xml:"song" json:"song,omitempty"`
}

View File

@ -133,7 +133,7 @@ func (api *Router) Search3(r *http.Request) (*responses.Subsonic, error) {
for i, artist := range as {
searchResult3.Artist[i] = toArtistID3(r, artist)
}
searchResult3.Album = childrenFromAlbums(ctx, als)
searchResult3.Album = buildAlbumsID3(ctx, als)
searchResult3.Song = childrenFromMediaFiles(ctx, mfs)
response.SearchResult3 = searchResult3
return response, nil