Skip to content

Commit

Permalink
Add support for images in jump link embeds
Browse files Browse the repository at this point in the history
  • Loading branch information
Naamloos committed Feb 13, 2024
1 parent 66a62b2 commit be76088
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 6 deletions.
31 changes: 26 additions & 5 deletions ModCore/Listeners/EmbedMessageLinks.cs
Expand Up @@ -12,6 +12,8 @@
using System;
using DSharpPlus.Entities;
using Humanizer;
using System.Linq;
using System.IO;

namespace ModCore.Listeners
{
Expand Down Expand Up @@ -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) { }
}
Expand Down
2 changes: 1 addition & 1 deletion ModCore/Listeners/StarboardListeners.cs
Expand Up @@ -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
Expand Down

0 comments on commit be76088

Please sign in to comment.