diff --git a/server/ctrlsubsonic/spec/construct_by_tags.go b/server/ctrlsubsonic/spec/construct_by_tags.go index 38e53bd..974211e 100644 --- a/server/ctrlsubsonic/spec/construct_by_tags.go +++ b/server/ctrlsubsonic/spec/construct_by_tags.go @@ -44,7 +44,7 @@ func NewAlbumByTags(a *db.Album, artists []*db.Artist) *Album { ret.Genre = a.Genres[0].Name } for _, g := range a.Genres { - ret.Genres = append(ret.Genres, g.Name) + ret.Genres = append(ret.Genres, &GenreRef{Name: g.Name}) } return ret } diff --git a/server/ctrlsubsonic/spec/spec.go b/server/ctrlsubsonic/spec/spec.go index 2ef1ce5..2e228d6 100644 --- a/server/ctrlsubsonic/spec/spec.go +++ b/server/ctrlsubsonic/spec/spec.go @@ -116,6 +116,10 @@ type ArtistRef struct { Name string `xml:"name,attr" json:"name"` } +type GenreRef struct { + Name string `xml:"name,attr" json:"name"` +} + type Album struct { // common ID *specid.ID `xml:"id,attr,omitempty" json:"id"` @@ -134,7 +138,7 @@ type Album struct { TrackCount int `xml:"songCount,attr" json:"songCount"` Duration int `xml:"duration,attr" json:"duration"` Genre string `xml:"genre,attr,omitempty" json:"genre,omitempty"` - Genres []string `xml:"genres,omitempty" json:"genres,omitempty"` + Genres []*GenreRef `xml:"genres,omitempty" json:"genres,omitempty"` Year int `xml:"year,attr,omitempty" json:"year,omitempty"` Tracks []*TrackChild `xml:"song,omitempty" json:"song,omitempty"` // star / rating diff --git a/server/ctrlsubsonic/testdata/test_get_album_with_cover b/server/ctrlsubsonic/testdata/test_get_album_with_cover index f065f17..2070248 100644 --- a/server/ctrlsubsonic/testdata/test_get_album_with_cover +++ b/server/ctrlsubsonic/testdata/test_get_album_with_cover @@ -17,7 +17,7 @@ "songCount": 3, "duration": 300, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021, "song": [ { diff --git a/server/ctrlsubsonic/testdata/test_get_artist_id_one b/server/ctrlsubsonic/testdata/test_get_artist_id_one index 0bc3012..a957779 100644 --- a/server/ctrlsubsonic/testdata/test_get_artist_id_one +++ b/server/ctrlsubsonic/testdata/test_get_artist_id_one @@ -22,7 +22,7 @@ "songCount": 3, "duration": 300, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 }, { @@ -38,7 +38,7 @@ "songCount": 3, "duration": 300, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 }, { @@ -54,7 +54,7 @@ "songCount": 3, "duration": 300, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 } ] diff --git a/server/ctrlsubsonic/testdata/test_get_artist_id_three b/server/ctrlsubsonic/testdata/test_get_artist_id_three index 7667dde..57cfea8 100644 --- a/server/ctrlsubsonic/testdata/test_get_artist_id_three +++ b/server/ctrlsubsonic/testdata/test_get_artist_id_three @@ -22,7 +22,7 @@ "songCount": 3, "duration": 300, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 }, { @@ -38,7 +38,7 @@ "songCount": 3, "duration": 300, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 }, { @@ -54,7 +54,7 @@ "songCount": 3, "duration": 300, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 } ] diff --git a/server/ctrlsubsonic/testdata/test_get_artist_id_two b/server/ctrlsubsonic/testdata/test_get_artist_id_two index 1722eb4..f66c35f 100644 --- a/server/ctrlsubsonic/testdata/test_get_artist_id_two +++ b/server/ctrlsubsonic/testdata/test_get_artist_id_two @@ -22,7 +22,7 @@ "songCount": 3, "duration": 300, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 }, { @@ -38,7 +38,7 @@ "songCount": 3, "duration": 300, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 }, { @@ -54,7 +54,7 @@ "songCount": 3, "duration": 300, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 } ] diff --git a/server/ctrlsubsonic/testdata/test_search_three_q_alb b/server/ctrlsubsonic/testdata/test_search_three_q_alb index 1db3507..9bb65b6 100644 --- a/server/ctrlsubsonic/testdata/test_search_three_q_alb +++ b/server/ctrlsubsonic/testdata/test_search_three_q_alb @@ -19,7 +19,7 @@ "songCount": 0, "duration": 0, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 }, { @@ -35,7 +35,7 @@ "songCount": 0, "duration": 0, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 }, { @@ -51,7 +51,7 @@ "songCount": 0, "duration": 0, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 }, { @@ -67,7 +67,7 @@ "songCount": 0, "duration": 0, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 }, { @@ -83,7 +83,7 @@ "songCount": 0, "duration": 0, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 }, { @@ -99,7 +99,7 @@ "songCount": 0, "duration": 0, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 }, { @@ -115,7 +115,7 @@ "songCount": 0, "duration": 0, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 }, { @@ -131,7 +131,7 @@ "songCount": 0, "duration": 0, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 }, { @@ -147,7 +147,7 @@ "songCount": 0, "duration": 0, "genre": "Unknown Genre", - "genres": ["Unknown Genre"], + "genres": [{ "name": "Unknown Genre" }], "year": 2021 } ]