From fd2ae7f35878d14a85ca64c70962b330bbedb126 Mon Sep 17 00:00:00 2001 From: "Adam R. Grey" Date: Wed, 17 Nov 2021 21:28:26 -0500 Subject: [PATCH] image magick, to convert heic --- Program.cs | 43 +++++++++++++++++++++++++++++++++++++ silverworker-discord.csproj | 1 + 2 files changed, 44 insertions(+) diff --git a/Program.cs b/Program.cs index 8741247..21bdd48 100644 --- a/Program.cs +++ b/Program.cs @@ -10,6 +10,8 @@ using Discord.WebSocket; using Microsoft.Extensions.Configuration; using Newtonsoft.Json; using System.Text; +using ImageMagick; +using ImageMagick.Formats; namespace silverworker_discord { @@ -109,10 +111,51 @@ namespace silverworker_discord } } } + + if (message.Attachments?.Count > 0) + { + Console.WriteLine($"{message.Attachments.Count} attachments"); + var appleReactions = false; + foreach (var att in message.Attachments) + { + if (att.Filename?.EndsWith(".heic") == true) + { + deheic(message, att); + appleReactions = true; + } + } + if (appleReactions) + { + #pragma warning disable 4014 + message.AddReactionAsync(new Emoji("\U0001F34F")); + #pragma warning restore 4014 + } + } } } } + private async void deheic(SocketUserMessage message, Attachment att) + { + try + { + var request = WebRequest.Create(att.Url); + HttpWebResponse response = request.GetResponse() as HttpWebResponse; + using (var convertedStream = new MemoryStream()) + using (var image = new MagickImage(response.GetResponseStream())) + { + image.Write(convertedStream, MagickFormat.Jpeg); + convertedStream.Position = 0; + Console.WriteLine($"converted to stream {convertedStream.Length} bytes long"); + await message.Channel.SendFileAsync(convertedStream, "heiccup.jpg", "converted from jpeg-but-apple to jpeg"); + } + } + catch (Exception e) + { + await message.Channel.SendMessageAsync("¯\\_(ツ)_/¯"); + Console.Error.Write(e); + } + } private async void detiktokify(Uri link, SocketUserMessage message) { var ytdl = new YoutubeDLSharp.YoutubeDL(); diff --git a/silverworker-discord.csproj b/silverworker-discord.csproj index 9b37191..3b4c268 100644 --- a/silverworker-discord.csproj +++ b/silverworker-discord.csproj @@ -8,6 +8,7 @@ +