aboutsummaryrefslogtreecommitdiffstats
path: root/src/ctx.rs
diff options
context:
space:
mode:
authoralyx <alyx@aleteoryx.me>2024-04-09 17:10:27 -0400
committeralyx <alyx@aleteoryx.me>2024-04-09 17:10:27 -0400
commit074c512ac422dbd86527b943b54e33200784b478 (patch)
tree51329f991ff4fdbacc9b2464e067ab0ef087ba7e /src/ctx.rs
parentf548d2d297bbf452aa206042f2029d7137df0477 (diff)
downloadlfm_embed-074c512ac422dbd86527b943b54e33200784b478.tar.gz
lfm_embed-074c512ac422dbd86527b943b54e33200784b478.tar.bz2
lfm_embed-074c512ac422dbd86527b943b54e33200784b478.zip
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.
Diffstat (limited to 'src/ctx.rs')
-rw-r--r--src/ctx.rs13
1 files changed, 12 insertions, 1 deletions
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<UserInfo, (StatusCode, &'static str)>, 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)