diff --git a/LightlessSyncServer/LightlessSyncServices/Discord/MareModule.cs b/LightlessSyncServer/LightlessSyncServices/Discord/MareModule.cs index c38ed04..bdb4e2e 100644 --- a/LightlessSyncServer/LightlessSyncServices/Discord/MareModule.cs +++ b/LightlessSyncServer/LightlessSyncServices/Discord/MareModule.cs @@ -56,18 +56,17 @@ public class LightlessModule : InteractionModuleBase if (profileData != null) { _logger.LogWarning("Fetching profile image for UID: {uid}", uidToGet); - byte[] profileImage = await GetProfileImage(profileData).ConfigureAwait(false); + byte[] profileImage = GetProfileImage(profileData); + byte[] bannerImage = GetBannerImage(profileData); _logger.LogWarning("Image in Bytes: {img}", profileImage); - MemoryStream ms = new(profileImage); - await using (ms.ConfigureAwait(false)) - { - eb.WithImageUrl("attachment://profileimage.png"); - await RespondWithFileAsync( - fileStream: ms, - fileName: "profileimage.png", - embeds: new[] { eb.Build() }, - ephemeral: true).ConfigureAwait(false); - } + using MemoryStream profileImgStream = new(profileImage); + using MemoryStream bannerImgStream = new(bannerImage); + eb.WithThumbnailUrl("attachment://profileimage.png"); + eb.WithImageUrl("attachment://bannerimage.png"); + await RespondWithFilesAsync( + new[] { new FileAttachment(profileImgStream, "profileimage.png"), new FileAttachment(bannerImgStream, "bannerimage.png") }, + embeds: new[] { eb.Build() }, + ephemeral: true).ConfigureAwait(false); } else { @@ -601,7 +600,7 @@ public class LightlessModule : InteractionModuleBase } return dbUser.UID; } - private async Task GetProfileImage(UserProfileData profile) + private byte[] GetProfileImage(UserProfileData profile) { _logger.LogWarning("Fetching image: {img}", profile.Base64ProfileImage); if (profile != null && profile.Base64ProfileImage != null && profile.Base64ProfileImage.Length > 0) @@ -612,6 +611,17 @@ public class LightlessModule : InteractionModuleBase return Array.Empty(); } + private byte[] GetBannerImage(UserProfileData profile) + { + _logger.LogWarning("Fetching image: {img}", profile.Base64BannerImage); + if (profile != null && profile.Base64BannerImage != null && profile.Base64BannerImage.Length > 0) + { + _logger.LogWarning("Fetching image complete"); + return Convert.FromBase64String(profile.Base64BannerImage); + } + return Array.Empty(); + } + private async Task GetUserProfileData(LightlessDbContext db, string uid) { var profile = await db.UserProfileData.Where(u => u.UserUID == uid).SingleOrDefaultAsync().ConfigureAwait(false);