diff --git a/gateway/gateway.go b/gateway/gateway.go index e221b21e..20e2a3ac 100644 --- a/gateway/gateway.go +++ b/gateway/gateway.go @@ -298,9 +298,11 @@ func (gw *Gateway) handleMessage(msg config.Message, dest *bridge.Bridge) []*BrM defer client.Close() text := msg.Text + var results [][]string + // @usernames - results := regexp.MustCompile(`(@[a-zA-Z0-9-]+)`).FindAllStringSubmatch(text, -1) + results = regexp.MustCompile(`(@[a-zA-Z0-9-]+)`).FindAllStringSubmatch(text, -1) for _, r := range results { text = strings.Replace(text, r[1], ""+r[1]+"", -1) } @@ -312,16 +314,10 @@ func (gw *Gateway) handleMessage(msg config.Message, dest *bridge.Bridge) []*BrM } // :emoji: - results = regexp.MustCompile(`(:[a-z0-9-_]+?:)`).FindAllStringSubmatch(text, -1) - for _, r := range results { - text = strings.Replace(text, r[1], ""+r[1]+"", -1) - } + text = regexp.MustCompile(`:[a-z0-9-_]+?:`).ReplaceAllString(text, "$0") // :emoji: codepoints, ie. 💎 - results = emoji.NewEmojiParser().FindAllStringSubmatch(text, -1) - for _, r := range results { - text = strings.Replace(text, r[0], " "+r[0]+" ", -1) - } + text = emoji.NewEmojiParser().ReplaceAllString(text, "$0") resp, _ := client.Translate(ctx, []string{text}, lang, &translate.Options{ Format: "html",