From 28b6ce59d6e19603605f259317a9387db15505bb Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Thu, 30 Sep 2021 18:11:57 +0200 Subject: [PATCH] don't catch mentions within links (#257) --- internal/regexes/regexes.go | 4 ++-- internal/util/statustools_test.go | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/internal/regexes/regexes.go b/internal/regexes/regexes.go index 8ac31ef62..93d672d3c 100644 --- a/internal/regexes/regexes.go +++ b/internal/regexes/regexes.go @@ -52,8 +52,8 @@ var ( // such as @whatever_user@example.org, returning whatever_user and example.org (without the @ symbols) MentionName = regexp.MustCompile(mentionName) - // mention regex can be played around with here: https://regex101.com/r/qwM9D3/1 - mentionFinder = `(?:\B)(@\w+(?:@[a-zA-Z0-9_\-\.]+)?)(?:\B)?` + // mention regex can be played around with here: https://regex101.com/r/G1oGR0/1 + mentionFinder = `(?:^|\s)(@\w+(?:@[a-zA-Z0-9_\-\.]+)?)` // MentionFinder extracts mentions from a piece of text. MentionFinder = regexp.MustCompile(mentionFinder) diff --git a/internal/util/statustools_test.go b/internal/util/statustools_test.go index 447315b25..74e0e49fd 100644 --- a/internal/util/statustools_test.go +++ b/internal/util/statustools_test.go @@ -30,6 +30,17 @@ type StatusTestSuite struct { suite.Suite } +func (suite *StatusTestSuite) TestLinkNoMention() { + statusText := `here's a link to a post by zork: + +https://localhost:8080/@the_mighty_zork/statuses/01FGVP55XMF2K6316MQRX6PFG1 + +that link shouldn't come out formatted as a mention!` + + menchies := util.DeriveMentionsFromText(statusText) + suite.Empty(menchies) +} + func (suite *StatusTestSuite) TestDeriveMentionsOK() { statusText := `@dumpsterqueer@example.org testing testing