diff --git a/src/handlers/starboard.rs b/src/handlers/starboard.rs index e19d07707a7d3993044df15ba640acd8a3c70f4c..d1316c880d058437b2f343e93139d472e82fe10b 100644 --- a/src/handlers/starboard.rs +++ b/src/handlers/starboard.rs @@ -94,6 +94,13 @@ impl StarboardHandler { .await .unwrap_or_else(|| msg.author.tag()); + let image = msg + .attachments + .iter() + .filter(|a| a.width.is_some()) + .map(|a| &a.url) + .next(); + let repost = ChannelId( gs.starboard_channel .to_u64() @@ -101,9 +108,20 @@ impl StarboardHandler { ) .send_message(ctx, |m| { m.embed(|e| { - e.description(format!("[Jump to source]({})\n{}", msg.link(), msg.content)) + let mut e = e + .description(format!( + "[Jump to source]({})\n{}", + msg.link(), + msg.content + )) .author(|a| a.name(&name).icon_url(msg.author.face())) - .timestamp(&msg.timestamp) + .timestamp(&msg.timestamp); + + if let Some(url) = image { + e = e.image(url); + } + + e }) }) .await?;