diff --git a/src/BirdsiteLive.Domain/Tools/StatusExtractor.cs b/src/BirdsiteLive.Domain/Tools/StatusExtractor.cs index 2e8d7a3..ed401a6 100644 --- a/src/BirdsiteLive.Domain/Tools/StatusExtractor.cs +++ b/src/BirdsiteLive.Domain/Tools/StatusExtractor.cs @@ -44,6 +44,8 @@ namespace BirdsiteLive.Domain.Tools // Replace return lines messageContent = Regex.Replace(messageContent, @"\r\n\r\n?|\n\n", "
");
messageContent = Regex.Replace(messageContent, @"\r\n?|\n", "
");
+ messageContent = Regex.Replace(messageContent, @"\(@", "( @");
+ messageContent = Regex.Replace(messageContent, @"\(#", "( #");
// Secure emojis
var emojiMatch = _emojiRegex.Matches(messageContent);
@@ -83,7 +85,7 @@ namespace BirdsiteLive.Domain.Tools
// Extract Hashtags
var hashtagMatch = OrderByLength(_hastagRegex.Matches(messageContent));
- foreach (Match m in hashtagMatch)
+ foreach (Match m in hashtagMatch.OrderByDescending(x => x.Length))
{
var tag = m.ToString().Replace("#", string.Empty).Replace("\n", string.Empty).Trim();
var url = $"https://{_instanceSettings.Domain}/tags/{tag}";
@@ -101,7 +103,7 @@ namespace BirdsiteLive.Domain.Tools
// Extract Mentions
var mentionMatch = OrderByLength(_mentionRegex.Matches(messageContent));
- foreach (Match m in mentionMatch)
+ foreach (Match m in mentionMatch.OrderByDescending(x => x.Length))
{
var mention = m.ToString().Replace("@", string.Empty).Replace("\n", string.Empty).Trim();
var url = $"https://{_instanceSettings.Domain}/users/{mention}";
diff --git a/src/BirdsiteLive/BirdsiteLive.csproj b/src/BirdsiteLive/BirdsiteLive.csproj
index f38be3b..ea56b70 100644
--- a/src/BirdsiteLive/BirdsiteLive.csproj
+++ b/src/BirdsiteLive/BirdsiteLive.csproj
@@ -4,7 +4,7 @@