From 074c512ac422dbd86527b943b54e33200784b478 Mon Sep 17 00:00:00 2001 From: alyx Date: Tue, 9 Apr 2024 17:10:27 -0400 Subject: Fixed backend API, again. Turns out track.getInfo just doesn't feel like serving image data anymore, even though the example response shows it. I love last.fm so much. --- src/ctx.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/ctx.rs') diff --git a/src/ctx.rs b/src/ctx.rs index 1b007ff..7c155b1 100644 --- a/src/ctx.rs +++ b/src/ctx.rs @@ -132,7 +132,18 @@ pub async fn get_ctx(api_result: Result, f // image_url: track.artist.images.iter().max_by(|a, b| a.size.cmp(&b.size)).map(|a| a.url.clone()).unwrap_or_else(|| "".into()), url: track.artist.url.clone().unwrap_or_else(|| "".into()) }, - image_url: track.images.iter().max_by(|a, b| a.size.cmp(&b.size)).map(|a| a.url.clone()).filter(|s| !s.is_empty()).unwrap_or_else(|| "https://lastfm.freetls.fastly.net/i/u/128s/4128a6eb29f94943c9d206c08e625904.jpg".into()), + image_url: { + let image_url = track.images.iter() + .chain(track.album.iter().flat_map(|x| &x.images)) + .chain(&trackstub.images) + .chain(trackstub.album.iter().flat_map(|x| &x.images)) + .inspect(|i| log::trace!("got: {i:?}")) + .max_by_key(|a| a.size) + .map(|a| a.url.clone()) + .unwrap_or_else(|| "https://lastfm.freetls.fastly.net/i/u/128s/4128a6eb29f94943c9d206c08e625904.jpg".into()); + + image_url + }, now_playing: trackstub.attr.nowplaying, url: track.url.clone(), loved: track.loved.unwrap_or(false) -- cgit v1.2.3-54-g00ecf