fixed up the featured artist thing

This commit is contained in:
Connor Johnstone
2026-03-24 11:38:07 -04:00
parent 36345b12ee
commit 7c30f288cd
11 changed files with 258 additions and 107 deletions

View File

@@ -69,19 +69,32 @@ async fn get_album(
let mbid = path.into_inner();
// Try fetching as a release first
let mb_tracks = match state.mb_client.get_release_tracks(&mbid).await {
Ok(tracks) => tracks,
let (mb_tracks, _release_mbid) = match state.mb_client.get_release_tracks(&mbid).await {
Ok(tracks) => (tracks, mbid.clone()),
Err(_) => {
// Probably a release-group MBID. Browse releases for this group.
let release_mbid = resolve_release_from_group(&state, &mbid).await?;
state
let resolved = resolve_release_from_group(&state, &mbid).await?;
let tracks = state
.mb_client
.get_release_tracks(&release_mbid)
.get_release_tracks(&resolved)
.await
.map_err(|e| ApiError::Internal(format!("MusicBrainz error: {e}")))?
.map_err(|e| ApiError::Internal(format!("MusicBrainz error: {e}")))?;
(tracks, resolved)
}
};
// Get the album artist from the release's recording credits
let album_artist = if let Some(first_track) = mb_tracks.first() {
state
.mb_client
.get_recording(&first_track.recording_mbid)
.await
.ok()
.map(|r| r.artist)
} else {
None
};
// Get all wanted items to check local status
let all_wanted = queries::wanted::list(state.db.conn(), None, None).await?;
@@ -112,6 +125,7 @@ async fn get_album(
Ok(HttpResponse::Ok().json(serde_json::json!({
"mbid": mbid,
"artist": album_artist,
"tracks": tracks,
})))
}