From 7c10b0011068b74b01473266e80031d22f8b0c4b Mon Sep 17 00:00:00 2001 From: adam Date: Thu, 15 May 2025 00:11:42 -0400 Subject: [PATCH] more replacements idk what else I would want --- Behavior/Webhook.cs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Behavior/Webhook.cs b/Behavior/Webhook.cs index 9567d97..575f121 100644 --- a/Behavior/Webhook.cs +++ b/Behavior/Webhook.cs @@ -100,6 +100,7 @@ public class Webhook : Behavior Console.Error.WriteLine($"{message.Id} was supposed to act, but authedCache doesn't have it! it has {authedCache?.Count()} other stuff, though."); return false; } + var msg = translate(actionOrder, message); var req = new HttpRequestMessage(new HttpMethod(actionOrder.Conf.Method.ToString()), actionOrder.Conf.Uri); var theContentHeader = actionOrder.Conf.Headers?.FirstOrDefault(h => h[0]?.ToLower() == "content-type"); if (theContentHeader != null) @@ -108,17 +109,17 @@ public class Webhook : Behavior { //json content is constructed some other weird way. case "multipart/form-data": - req.Content = new System.Net.Http.MultipartFormDataContent(translate(actionOrder)); + req.Content = new System.Net.Http.MultipartFormDataContent(msg); break; default: - req.Content = new System.Net.Http.StringContent(translate(actionOrder)); + req.Content = new System.Net.Http.StringContent(msg); break; } req.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(theContentHeader[1]?.ToLower()); } if (req.Content == null) { - req.Content = new System.Net.Http.StringContent(translate(actionOrder)); + req.Content = new System.Net.Http.StringContent(msg); } Console.WriteLine($"survived translating string content. request content: {req.Content}"); if (actionOrder.Conf.Headers?.ToList().Count > 0) @@ -157,10 +158,15 @@ public class Webhook : Behavior } return true; } - private string translate(WebhookActionOrder actionOrder) + private string translate(WebhookActionOrder actionOrder, Message message) { - //TODO: message author, etc. - return actionOrder.Conf.Content?.Replace("{text}", actionOrder.webhookContent); + if(string.IsNullOrWhiteSpace(actionOrder.Conf.Content)) + return ""; + var msgContent = actionOrder.Conf.Content.Replace("{text}", actionOrder.webhookContent); + msgContent = msgContent.Replace("{msgid}", message.Id.ToString()); + msgContent = msgContent.Replace("{account}", message.Author.DisplayName.ToString()); + msgContent = msgContent.Replace("{user}", message.Author.IsUser.DisplayName.ToString()); + return msgContent; } }