diff --git a/shanty-data/src/mb_local.rs b/shanty-data/src/mb_local.rs index 5d281e4..82853f7 100644 --- a/shanty-data/src/mb_local.rs +++ b/shanty-data/src/mb_local.rs @@ -313,7 +313,6 @@ impl MetadataFetcher for LocalMusicBrainzFetcher { .unwrap_or_else(|| "Unknown Artist".into()), releases: vec![], genres: vec![], - secondary_artists: vec![], }) }, ); diff --git a/shanty-data/src/musicbrainz.rs b/shanty-data/src/musicbrainz.rs index 1b7d12f..06aee0a 100644 --- a/shanty-data/src/musicbrainz.rs +++ b/shanty-data/src/musicbrainz.rs @@ -251,7 +251,6 @@ impl MetadataFetcher for MusicBrainzFetcher { let r: MbRecordingDetail = self.get_json(&url).await?; let (artist_name, artist_mbid) = extract_artist_credit(&r.artist_credit); - let secondary_artists = extract_secondary_artists(&r.artist_credit); Ok(RecordingDetails { mbid: r.id, title: r.title, @@ -275,7 +274,6 @@ impl MetadataFetcher for MusicBrainzFetcher { .into_iter() .map(|g| g.name) .collect(), - secondary_artists, }) } @@ -388,32 +386,6 @@ fn extract_artist_credit(credits: &Option>) -> (String, Opti } } -/// Extract non-featuring secondary artists from MusicBrainz artist credits. -/// Returns (name, mbid) pairs for collaborators that aren't "featuring" credits. -fn extract_secondary_artists(credits: &Option>) -> Vec<(String, String)> { - let Some(credits) = credits else { - return vec![]; - }; - if credits.len() <= 1 { - return vec![]; - } - - // Walk credits after the first. Stop at any "feat"/"ft." joinphrase - // from the PREVIOUS credit (since joinphrase is on the credit BEFORE the next artist). - let mut result = Vec::new(); - for i in 0..credits.len() - 1 { - let jp = credits[i].joinphrase.as_deref().unwrap_or(""); - let lower = jp.to_lowercase(); - if lower.contains("feat") || lower.contains("ft.") { - break; - } - // The next credit is a non-featuring collaborator - let next = &credits[i + 1]; - result.push((next.artist.name.clone(), next.artist.id.clone())); - } - result -} - // --- MusicBrainz API response types --- #[derive(Deserialize)] @@ -513,7 +485,6 @@ struct MbRecordingDetail { #[derive(Deserialize)] struct MbArtistCredit { artist: MbArtist, - joinphrase: Option, } #[derive(Deserialize)] diff --git a/shanty-data/src/types.rs b/shanty-data/src/types.rs index c99267d..2bee891 100644 --- a/shanty-data/src/types.rs +++ b/shanty-data/src/types.rs @@ -43,9 +43,6 @@ pub struct RecordingDetails { pub releases: Vec, pub duration_ms: Option, pub genres: Vec, - /// Non-featuring collaborators beyond the primary artist. - #[serde(default)] - pub secondary_artists: Vec<(String, String)>, } /// Detailed artist info from a direct MBID lookup. diff --git a/shanty-db b/shanty-db index 1f983bb..e76b2fc 160000 --- a/shanty-db +++ b/shanty-db @@ -1 +1 @@ -Subproject commit 1f983bbecfc6e86945f396f6cd86ea67f0709b6f +Subproject commit e76b2fc575fdf014d0abc249ddb9554dfa3a4689 diff --git a/shanty-tag b/shanty-tag index 884b2e8..65c229e 160000 --- a/shanty-tag +++ b/shanty-tag @@ -1 +1 @@ -Subproject commit 884b2e8d52236522789a3b0c69182d6cc3088a78 +Subproject commit 65c229ee7fe43fa8e4455f211b2bec04c30576f0