feat: enhance Discord embed with user avatar and author details #2

merged
opened by tsiry-sandratraina.com targeting main from feat/discord-embed
Changed files
+16 -1
crates
jetstream
src
webhook
discord
+1
crates/jetstream/src/repo.rs
···
did: did.to_string(),
display_name: users[0].display_name.clone(),
handle: users[0].handle.clone(),
+
avatar_url: users[0].avatar.clone(),
},
track: discord::model::Track {
title: scrobble_record.title.clone(),
+6 -1
crates/jetstream/src/webhook/discord/mod.rs
···
desc.push_str(&format!("\non *{}*", esc(&s.track.album)));
DiscordEmbed {
-
title: s.user.display_name.clone(),
+
title: String::new(),
url,
description: Some(desc),
timestamp: Some(s.played_at.clone()),
···
footer: Some(DiscordFooter {
text: format!("Rocksky • {}", s.user.handle.clone()),
}),
+
author: DiscordAuthor {
+
name: s.user.display_name.clone(),
+
url: format!("https://rocksky.app/profile/{}", s.user.handle),
+
icon_url: s.user.avatar_url.clone(),
+
},
}
}
+9
crates/jetstream/src/webhook/discord/model.rs
···
pub did: String,
pub display_name: String,
pub handle: String,
+
pub avatar_url: String,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
···
pub thumbnail: Option<DiscordThumb>,
#[serde(skip_serializing_if = "Option::is_none")]
pub footer: Option<DiscordFooter>,
+
pub author: DiscordAuthor,
+
}
+
+
#[derive(Debug, Serialize)]
+
pub struct DiscordAuthor {
+
pub name: String,
+
pub url: String,
+
pub icon_url: String,
}
#[derive(Debug, Serialize)]