diff --git a/crates/jetstream/src/repo.rs b/crates/jetstream/src/repo.rs --- a/crates/jetstream/src/repo.rs +++ b/crates/jetstream/src/repo.rs @@ -116,6 +116,7 @@ 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(), diff --git a/crates/jetstream/src/webhook/discord/mod.rs b/crates/jetstream/src/webhook/discord/mod.rs --- a/crates/jetstream/src/webhook/discord/mod.rs +++ b/crates/jetstream/src/webhook/discord/mod.rs @@ -10,7 +10,7 @@ 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()), @@ -18,6 +18,11 @@ 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(), + }, } } diff --git a/crates/jetstream/src/webhook/discord/model.rs b/crates/jetstream/src/webhook/discord/model.rs --- a/crates/jetstream/src/webhook/discord/model.rs +++ b/crates/jetstream/src/webhook/discord/model.rs @@ -22,6 +22,7 @@ pub did: String, pub display_name: String, pub handle: String, + pub avatar_url: String, } #[derive(Debug, Deserialize, Serialize, Clone)] @@ -62,6 +63,14 @@ pub thumbnail: Option, #[serde(skip_serializing_if = "Option::is_none")] pub footer: Option, + pub author: DiscordAuthor, +} + +#[derive(Debug, Serialize)] +pub struct DiscordAuthor { + pub name: String, + pub url: String, + pub icon_url: String, } #[derive(Debug, Serialize)]