From 323d6fa521e388d3783659eebb83a867a4ca55f3 Mon Sep 17 00:00:00 2001 From: adam Date: Sun, 22 Jun 2025 00:04:51 -0400 Subject: [PATCH] webhooks aren't triggered by "!hook"; triggered by their own configured value --- Behavior/Webhook.cs | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/Behavior/Webhook.cs b/Behavior/Webhook.cs index 42e40d76..1c3c8322 100644 --- a/Behavior/Webhook.cs +++ b/Behavior/Webhook.cs @@ -69,22 +69,25 @@ public class Webhook : Behavior public override bool ShouldAct(Message message, List matchedUACs) { - if (!base.ShouldAct(message, matchedUACs)) - return false; - - Console.WriteLine("webhook checking"); - if (configuredWebhooks?.Count() < 1) { - Console.Error.WriteLine("no webhooks configured!"); + return false; } - var webhookableMessageContent = message.Content.Substring(message.Content.IndexOf(Trigger) + Trigger.Length + 1); - Console.WriteLine($"webhookable content: {webhookableMessageContent}"); foreach (var wh in configuredWebhooks) { - if (webhookableMessageContent.StartsWith(wh.Trigger)) + var triggerTarget = wh.Trigger; + foreach (var uacMatch in matchedUACs) { + foreach (var substitution in uacMatch.CommandAlterations) + { + triggerTarget = new Regex(substitution.Key).Replace(triggerTarget, substitution.Value); + } + } + if (Regex.IsMatch(message.TranslatedContent, $"\\b{triggerTarget}\\b", RegexOptions.IgnoreCase)) + { + var webhookableMessageContent = message.Content.Substring(message.Content.IndexOf(triggerTarget) + triggerTarget.Length + 1); + Console.WriteLine($"webhookable content: {webhookableMessageContent}"); var uacConf = Rememberer.SearchUAC(uac => uac.OwnerId == wh.uacID); if (uacConf.Users.Contains(message.Author.IsUser) || uacConf.Channels.Contains(message.Channel) || uacConf.AccountInChannels.Contains(message.Author)) { @@ -92,7 +95,7 @@ public class Webhook : Behavior authedCache.TryAdd(message.Id, new WebhookActionOrder() { Conf = wh, - webhookContent = webhookableMessageContent.Substring(wh.Trigger.Length + 1), + webhookContent = webhookableMessageContent, }); Console.WriteLine($"added {message.Id} to authedcache"); return true; @@ -164,7 +167,7 @@ public class Webhook : Behavior } else { - Behaver.Instance.Reply(message.Id, await response.Content.ReadAsStringAsync()); + Behaver.Instance.Reply(message.Id, await response.Content.ReadAsStringAsync()); } return true; }