From e0f81a7b2198f85e65b1d79e1c07cedcdf8d109b Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Mon, 12 Feb 2024 22:13:54 +0100 Subject: [PATCH] [backend/services] Fix mentionsResolver loop (ISH-50) --- .../Core/Federation/ActivityPub/MentionsResolver.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Iceshrimp.Backend/Core/Federation/ActivityPub/MentionsResolver.cs b/Iceshrimp.Backend/Core/Federation/ActivityPub/MentionsResolver.cs index 426ea553..69f2073d 100644 --- a/Iceshrimp.Backend/Core/Federation/ActivityPub/MentionsResolver.cs +++ b/Iceshrimp.Backend/Core/Federation/ActivityPub/MentionsResolver.cs @@ -34,8 +34,14 @@ public class MentionsResolver( var nodesList = nodes.ToList(); // We need to call .ToList() on this so we can modify the collection in the loop - foreach (var mention in nodesList.SelectMany(p => p.Children.Append(p)).OfType().ToList()) - nodesList[nodesList.IndexOf(mention)] = ResolveMention(mention, host, mentionCache, splitDomainMapping); + foreach (var node in nodesList.ToList()) { + if (node is not MfmMentionNode mention) { + node.Children = ResolveMentions(node.Children, host, mentionCache, splitDomainMapping); + continue; + } + + nodesList[nodesList.IndexOf(node)] = ResolveMention(mention, host, mentionCache, splitDomainMapping); + } return nodesList; }