diff --git a/PluralKit.Bot/Services/LoggerCleanService.cs b/PluralKit.Bot/Services/LoggerCleanService.cs index 72d0d599..fe813ccd 100644 --- a/PluralKit.Bot/Services/LoggerCleanService.cs +++ b/PluralKit.Bot/Services/LoggerCleanService.cs @@ -40,6 +40,7 @@ public class LoggerCleanService private static readonly Regex _ProBotRegex = new("\\*\\*Message sent by <@(\\d{17,19})> deleted in <#\\d{17,19}>.\\*\\*"); private static readonly Regex _DozerRegex = new("Message ID: (\\d{17,19}) - (\\d{17,19})\nUserID: (\\d{17,19})"); private static readonly Regex _SkyraRegex = new("https://discord.com/channels/(\\d{17,19})/(\\d{17,19})/(\\d{17,19})"); + private static readonly Regex _AnnabelleRegex = new("```\n(\\d{17,19})\n```"); private static readonly Regex _VortexRegex = new("`\\[(\\d\\d:\\d\\d:\\d\\d)\\]` .* \\(ID:(\\d{17,19})\\).* <#\\d{17,19}>:"); @@ -75,6 +76,7 @@ public class LoggerCleanService new LoggerBot("ProBot Prime", 567703512763334685, fuzzyExtractFunc: ExtractProBot), // webhook (?) new LoggerBot("Dozer", 356535250932858885, ExtractDozer), new LoggerBot("Skyra", 266624760782258186, ExtractSkyra), + new LoggerBot("Annabelle", 231241068383961088, ExtractAnnabelle), }.ToDictionary(b => b.Id); private static Dictionary _botsByApplicationId @@ -383,6 +385,14 @@ public class LoggerCleanService return match.Success ? ulong.Parse(match.Groups[3].Value) : null; } + private static ulong? ExtractAnnabelle(Message msg) + { + var embed = msg.Embeds?.FirstOrDefault(); + if (embed?.Author?.Name == null || !embed.Author.Name.EndsWith("Deleted Message")) return null; + var match = _AnnabelleRegex.Match(embed.Fields[2].Value); + return match.Success ? ulong.Parse(match.Groups[1].Value) : null; + } + public class LoggerBot { public ulong Id;