fixed up the featured artist thing
This commit is contained in:
@@ -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,
|
||||
})))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user