diff --git a/ModCore/Listeners/EmbedMessageLinks.cs b/ModCore/Listeners/EmbedMessageLinks.cs index ee2ac85..0953283 100644 --- a/ModCore/Listeners/EmbedMessageLinks.cs +++ b/ModCore/Listeners/EmbedMessageLinks.cs @@ -12,6 +12,8 @@ using System; using DSharpPlus.Entities; using Humanizer; +using System.Linq; +using System.IO; namespace ModCore.Listeners { @@ -54,11 +56,30 @@ public class EmbedMessageLinks { var message = await channel.GetMessageAsync(messageId); // no exception = exists - var truncatedText = message.Content.Length > 250? message.Content.Truncate(250) + "..." : message.Content; - embeds.Add(new DiscordEmbedBuilder() - .WithDescription($"{truncatedText}\n\n[Jump to message]({match.Value.Replace("!", "")})") - .WithAuthor(message.Author.GetDisplayUsername(), iconUrl: message.Author.GetAvatarUrl(ImageFormat.Png)) - .Build()); + + var truncatedText = message.Content.Length > 250 ? message.Content.Truncate(250) + "..." : message.Content; + var embed = new DiscordEmbedBuilder() + .WithDescription($"{truncatedText}\n") + .WithAuthor(message.Author.GetDisplayUsername(), iconUrl: message.Author.GetAvatarUrl(ImageFormat.Png)); + + var imageFiles = message.Attachments.Where(x => + { + var uri = new Uri(x.Url); + return StarboardListeners.validFileExts.Contains(Path.GetExtension(uri.AbsolutePath)); + }); + + if (imageFiles.Any()) + { + embed.WithThumbnail(imageFiles.First().Url); + var count = imageFiles.Count(); + if (count > 1) + { + embed.WithDescription(embed.Description + $"\n_Contains ({count - 1}) more attachments._"); + } + } + embed.WithDescription(embed.Description + $"\n[Jump to message]({match.Value.Replace("!", "")})"); + + embeds.Add(embed.Build()); } catch (Exception) { } } diff --git a/ModCore/Listeners/StarboardListeners.cs b/ModCore/Listeners/StarboardListeners.cs index 390f2ce..26b5514 100644 --- a/ModCore/Listeners/StarboardListeners.cs +++ b/ModCore/Listeners/StarboardListeners.cs @@ -503,7 +503,7 @@ public class StarboardListeners } } - private static readonly string[] validFileExts = { ".jpg", ".gif", ".png", ".jpeg", ".webp" }; + public static readonly string[] validFileExts = { ".jpg", ".gif", ".png", ".jpeg", ".webp" }; public static DiscordMessageBuilder buildStarboardMessage(DiscordMessage sourceMessage, long count, DiscordEmoji emoji) { // TODO cleanup