diff --git a/src/app/index/collection.rs b/src/app/index/collection.rs index 713e918..180fff2 100644 --- a/src/app/index/collection.rs +++ b/src/app/index/collection.rs @@ -33,6 +33,7 @@ pub struct Artist { pub albums_as_additional_performer: Vec, // Albums where this artist shows up as `artist` without being `album_artist` pub albums_as_composer: Vec, pub albums_as_lyricist: Vec, + pub num_songs_by_genre: HashMap, } #[derive(Debug, Default, PartialEq, Eq)] @@ -99,17 +100,24 @@ impl Collection { albums }; + let name = strings.resolve(&a.name).to_owned(); let albums_as_performer = list_albums(&a.albums_as_performer); let albums_as_additional_performer = list_albums(&a.albums_as_additional_performer); let albums_as_composer = list_albums(&a.albums_as_composer); let albums_as_lyricist = list_albums(&a.albums_as_lyricist); + let num_songs_by_genre = a + .num_songs_by_genre + .iter() + .map(|(genre, num)| (strings.resolve(genre).to_string(), *num)) + .collect(); Artist { - name: strings.resolve(&a.name).to_owned(), + name, albums_as_performer, albums_as_additional_performer, albums_as_composer, albums_as_lyricist, + num_songs_by_genre, } }) } diff --git a/src/server/dto/v8.rs b/src/server/dto/v8.rs index a7a8452..11337f2 100644 --- a/src/server/dto/v8.rs +++ b/src/server/dto/v8.rs @@ -349,6 +349,7 @@ pub struct Artist { pub albums_as_additional_performer: Vec, pub albums_as_composer: Vec, pub albums_as_lyricist: Vec, + pub num_songs_by_genre: HashMap, } impl From for Artist { @@ -360,6 +361,7 @@ impl From for Artist { albums_as_additional_performer: convert_albums(a.albums_as_additional_performer), albums_as_composer: convert_albums(a.albums_as_composer), albums_as_lyricist: convert_albums(a.albums_as_lyricist), + num_songs_by_genre: a.num_songs_by_genre, } } }