From e16217166dd39fe75a9dc995c2d4e77cb7485143 Mon Sep 17 00:00:00 2001 From: Saturnino Abril Date: Fri, 6 Apr 2018 21:41:45 +0800 Subject: fix out of channel mentions for mentioned word with valid punctuations (#8585) --- app/notification.go | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'app/notification.go') diff --git a/app/notification.go b/app/notification.go index 0ea03c9d9..5b7ed5ad2 100644 --- a/app/notification.go +++ b/app/notification.go @@ -897,7 +897,9 @@ func GetExplicitMentions(message string, keywords map[string][]string) *Explicit continue } - if strings.ContainsAny(word, ".-:") { + if _, ok := systemMentions[word]; !ok && strings.HasPrefix(word, "@") { + ret.OtherPotentialMentions = append(ret.OtherPotentialMentions, word[1:]) + } else if strings.ContainsAny(word, ".-:") { // This word contains a character that may be the end of a sentence, so split further splitWords := strings.FieldsFunc(word, func(c rune) bool { return c == '.' || c == '-' || c == ':' @@ -908,16 +910,10 @@ func GetExplicitMentions(message string, keywords map[string][]string) *Explicit continue } if _, ok := systemMentions[splitWord]; !ok && strings.HasPrefix(splitWord, "@") { - username := splitWord[1:] - ret.OtherPotentialMentions = append(ret.OtherPotentialMentions, username) + ret.OtherPotentialMentions = append(ret.OtherPotentialMentions, splitWord[1:]) } } } - - if _, ok := systemMentions[word]; !ok && strings.HasPrefix(word, "@") { - username := word[1:] - ret.OtherPotentialMentions = append(ret.OtherPotentialMentions, username) - } } } -- cgit v1.2.3-1-g7c22