Adds num_songs_by_genre to artist details

This commit is contained in:
Antoine Gersant 2024-09-07 15:37:17 -07:00
parent 54ce646931
commit 4072e3b07d
2 changed files with 11 additions and 1 deletions

View file

@ -33,6 +33,7 @@ pub struct Artist {
pub albums_as_additional_performer: Vec<Album>, // Albums where this artist shows up as `artist` without being `album_artist` pub albums_as_additional_performer: Vec<Album>, // Albums where this artist shows up as `artist` without being `album_artist`
pub albums_as_composer: Vec<Album>, pub albums_as_composer: Vec<Album>,
pub albums_as_lyricist: Vec<Album>, pub albums_as_lyricist: Vec<Album>,
pub num_songs_by_genre: HashMap<String, u32>,
} }
#[derive(Debug, Default, PartialEq, Eq)] #[derive(Debug, Default, PartialEq, Eq)]
@ -99,17 +100,24 @@ impl Collection {
albums albums
}; };
let name = strings.resolve(&a.name).to_owned();
let albums_as_performer = list_albums(&a.albums_as_performer); 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_additional_performer = list_albums(&a.albums_as_additional_performer);
let albums_as_composer = list_albums(&a.albums_as_composer); let albums_as_composer = list_albums(&a.albums_as_composer);
let albums_as_lyricist = list_albums(&a.albums_as_lyricist); 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 { Artist {
name: strings.resolve(&a.name).to_owned(), name,
albums_as_performer, albums_as_performer,
albums_as_additional_performer, albums_as_additional_performer,
albums_as_composer, albums_as_composer,
albums_as_lyricist, albums_as_lyricist,
num_songs_by_genre,
} }
}) })
} }

View file

@ -349,6 +349,7 @@ pub struct Artist {
pub albums_as_additional_performer: Vec<AlbumHeader>, pub albums_as_additional_performer: Vec<AlbumHeader>,
pub albums_as_composer: Vec<AlbumHeader>, pub albums_as_composer: Vec<AlbumHeader>,
pub albums_as_lyricist: Vec<AlbumHeader>, pub albums_as_lyricist: Vec<AlbumHeader>,
pub num_songs_by_genre: HashMap<String, u32>,
} }
impl From<index::Artist> for Artist { impl From<index::Artist> for Artist {
@ -360,6 +361,7 @@ impl From<index::Artist> for Artist {
albums_as_additional_performer: convert_albums(a.albums_as_additional_performer), albums_as_additional_performer: convert_albums(a.albums_as_additional_performer),
albums_as_composer: convert_albums(a.albums_as_composer), albums_as_composer: convert_albums(a.albums_as_composer),
albums_as_lyricist: convert_albums(a.albums_as_lyricist), albums_as_lyricist: convert_albums(a.albums_as_lyricist),
num_songs_by_genre: a.num_songs_by_genre,
} }
} }
} }