From b156f6a9cb36538949d7c6b69123a1b0ab8ca65e Mon Sep 17 00:00:00 2001 From: Zoe Martin Date: Fri, 25 Jun 2021 12:34:44 +0200 Subject: [PATCH 1/5] fix: emotes being cut off in replies --- PluralKit.Bot/Proxy/ProxyService.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/PluralKit.Bot/Proxy/ProxyService.cs b/PluralKit.Bot/Proxy/ProxyService.cs index e2ef6dd8..31d86b70 100644 --- a/PluralKit.Bot/Proxy/ProxyService.cs +++ b/PluralKit.Bot/Proxy/ProxyService.cs @@ -177,6 +177,15 @@ namespace PluralKit.Bot if (msg.Length > 100) { msg = repliedTo.Content.Substring(0, 100); + var openedEmotesInTruncatedString = Regex.Matches(msg, @"").Count; + if (openedEmotesInTruncatedString != fullEmotesInTruncatedString) + { + var emoteTail = repliedTo.Content.Substring(100).Split(">")[0]; + if (Regex.IsMatch(msg + emoteTail, @""; + } + var spoilersInOriginalString = Regex.Matches(repliedTo.Content, @"\|\|").Count; var spoilersInTruncatedString = Regex.Matches(msg, @"\|\|").Count; if (spoilersInTruncatedString % 2 == 1 && spoilersInOriginalString % 2 == 0) From 2aac97d2a06c4d0dce9b5c16e1328fb00bd7afb9 Mon Sep 17 00:00:00 2001 From: Zoe Martin Date: Fri, 25 Jun 2021 12:54:49 +0200 Subject: [PATCH 2/5] fix: extended fix for emotes being cut off in replies to all mentions --- PluralKit.Bot/Proxy/ProxyService.cs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/PluralKit.Bot/Proxy/ProxyService.cs b/PluralKit.Bot/Proxy/ProxyService.cs index 31d86b70..90cf0e7e 100644 --- a/PluralKit.Bot/Proxy/ProxyService.cs +++ b/PluralKit.Bot/Proxy/ProxyService.cs @@ -177,13 +177,12 @@ namespace PluralKit.Bot if (msg.Length > 100) { msg = repliedTo.Content.Substring(0, 100); - var openedEmotesInTruncatedString = Regex.Matches(msg, @"").Count; - if (openedEmotesInTruncatedString != fullEmotesInTruncatedString) + var endsWithOpenMention = Regex.IsMatch(msg, @"<[at]?[@#:][!&]?(\w+:)?(\d+)?(:[tTdDfFR])?$"); + if (endsWithOpenMention) { - var emoteTail = repliedTo.Content.Substring(100).Split(">")[0]; - if (Regex.IsMatch(msg + emoteTail, @""; + var mentionTail = repliedTo.Content.Substring(100).Split(">")[0]; + if (Regex.IsMatch(msg + mentionTail, @"<[at]?[@#:][!&]?(\w+:)?\d+(:[tTdDfFR])?$")) + msg += mentionTail + ">"; } var spoilersInOriginalString = Regex.Matches(repliedTo.Content, @"\|\|").Count; From d1c67943308e6273e8fd9b988f1c048fe5190841 Mon Sep 17 00:00:00 2001 From: Zoe Martin Date: Fri, 25 Jun 2021 13:15:25 +0200 Subject: [PATCH 3/5] fix: inserting closing angle bracket in reply when not present in original issue --- PluralKit.Bot/Proxy/ProxyService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PluralKit.Bot/Proxy/ProxyService.cs b/PluralKit.Bot/Proxy/ProxyService.cs index 90cf0e7e..97df8667 100644 --- a/PluralKit.Bot/Proxy/ProxyService.cs +++ b/PluralKit.Bot/Proxy/ProxyService.cs @@ -181,7 +181,7 @@ namespace PluralKit.Bot if (endsWithOpenMention) { var mentionTail = repliedTo.Content.Substring(100).Split(">")[0]; - if (Regex.IsMatch(msg + mentionTail, @"<[at]?[@#:][!&]?(\w+:)?\d+(:[tTdDfFR])?$")) + if (repliedTo.Content.Contains(msg + mentionTail + ">")) msg += mentionTail + ">"; } From e9da1a80b711a278d4567bb14f9ebdea37a41338 Mon Sep 17 00:00:00 2001 From: Zoe Martin Date: Fri, 25 Jun 2021 15:05:25 +0200 Subject: [PATCH 4/5] =?UTF-8?q?fix:=20issues=20with=20urls=20being=20cut?= =?UTF-8?q?=20in=20half=20at=20the=20end=20of=20replies=20and=20"=E2=80=A6?= =?UTF-8?q?"=20unnecessarily=20being=20appended=20at=20the=20end?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PluralKit.Bot/Proxy/ProxyService.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/PluralKit.Bot/Proxy/ProxyService.cs b/PluralKit.Bot/Proxy/ProxyService.cs index 97df8667..a70322aa 100644 --- a/PluralKit.Bot/Proxy/ProxyService.cs +++ b/PluralKit.Bot/Proxy/ProxyService.cs @@ -184,12 +184,21 @@ namespace PluralKit.Bot if (repliedTo.Content.Contains(msg + mentionTail + ">")) msg += mentionTail + ">"; } + + var endsWithUrl = Regex.IsMatch(msg, + @"(http|https)?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)$"); + if (endsWithUrl) + { + var urlTail = repliedTo.Content.Substring(100).Split(" ")[0]; + msg += urlTail + " "; + } var spoilersInOriginalString = Regex.Matches(repliedTo.Content, @"\|\|").Count; var spoilersInTruncatedString = Regex.Matches(msg, @"\|\|").Count; if (spoilersInTruncatedString % 2 == 1 && spoilersInOriginalString % 2 == 0) msg += "||"; - msg += "…"; + if (msg != repliedTo.Content) + msg += "…"; } content.Append($"**[Reply to:]({jumpLink})** "); From 131ee8d87c641f1d6a80f3be5c11205e158e8b5d Mon Sep 17 00:00:00 2001 From: Zoe Martin Date: Fri, 25 Jun 2021 15:14:30 +0200 Subject: [PATCH 5/5] fix: improved url regex --- PluralKit.Bot/Proxy/ProxyService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PluralKit.Bot/Proxy/ProxyService.cs b/PluralKit.Bot/Proxy/ProxyService.cs index a70322aa..933b46cf 100644 --- a/PluralKit.Bot/Proxy/ProxyService.cs +++ b/PluralKit.Bot/Proxy/ProxyService.cs @@ -186,7 +186,7 @@ namespace PluralKit.Bot } var endsWithUrl = Regex.IsMatch(msg, - @"(http|https)?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)$"); + @"(http|https)(:\/\/)?(www\.)?([-a-zA-Z0-9@:%._\+~#=]{1,256})?\.?([a-zA-Z0-9()]{1,6})?\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)$"); if (endsWithUrl) { var urlTail = repliedTo.Content.Substring(100).Split(" ")[0];