From bca7339e4ccb410a1aa048842074af9518198b9e Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Tue, 5 Jun 2018 13:34:21 -0400 Subject: MM-10597 Improved handling of punctuation around notifications (#8901) --- app/notification.go | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'app/notification.go') diff --git a/app/notification.go b/app/notification.go index 401675f4e..741dadd9a 100644 --- a/app/notification.go +++ b/app/notification.go @@ -1004,23 +1004,24 @@ func GetExplicitMentions(message string, keywords map[string][]string) *Explicit continue } + word = strings.TrimLeft(word, ":.-_") + if checkForMention(word) { continue } - // remove trailing '.', as that is the end of a sentence - foundWithSuffix := false - for _, suffixPunctuation := range []string{".", ":"} { - for strings.HasSuffix(word, suffixPunctuation) { - word = strings.TrimSuffix(word, suffixPunctuation) - if checkForMention(word) { - foundWithSuffix = true - break - } + foundWithoutSuffix := false + wordWithoutSuffix := word + for strings.LastIndexAny(wordWithoutSuffix, ".-:_") != -1 { + wordWithoutSuffix = wordWithoutSuffix[0 : len(wordWithoutSuffix)-1] + + if checkForMention(wordWithoutSuffix) { + foundWithoutSuffix = true + break } } - if foundWithSuffix { + if foundWithoutSuffix { continue } -- cgit v1.2.3-1-g7c22