[backend/libmfm] Fix broken rendering of mentions of local users in some circumstances (ISH-567)

This was caused because of an inconsistency of whether to set the account domain as a fallback value or not. Therefore, invocations with the mentioned local user host not having a fallback value would cause broken mention rendering, e.g. in bios/profile fields.
This commit is contained in:
Laura Hausmann 2024-10-31 21:20:16 +01:00
parent e61e3d2fde
commit 525bd02022
No known key found for this signature in database
GPG key ID: D044E84C5BE01605

View file

@ -246,9 +246,13 @@ public class MfmConverter(IOptions<Config.InstanceSection> config)
if (finalHost == config.Value.WebDomain) if (finalHost == config.Value.WebDomain)
finalHost = config.Value.AccountDomain; finalHost = config.Value.AccountDomain;
var mention = mentions.FirstOrDefault(p => p.Username.EqualsIgnoreCase(mentionNode.Username) && Func<Note.MentionedUser, bool> predicate = finalHost == config.Value.AccountDomain
p.Host.EqualsIgnoreCase(finalHost)); ? p => p.Username.EqualsIgnoreCase(mentionNode.Username) &&
if (mention == null) (p.Host.EqualsIgnoreCase(finalHost) || p.Host == null)
: p => p.Username.EqualsIgnoreCase(mentionNode.Username) &&
p.Host.EqualsIgnoreCase(finalHost);
if (mentions.FirstOrDefault(predicate) is not { } mention)
{ {
el.TextContent = $"@{mentionNode.Acct}"; el.TextContent = $"@{mentionNode.Acct}";
} }