From 43b937d645ac948471a8e86d1a388d3ca13fa268 Mon Sep 17 00:00:00 2001 From: zhaoYangguang <1163765691@qq.com> Date: Fri, 15 Jan 2021 20:29:17 +0800 Subject: [PATCH] fix mention user bug --- formatting.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/formatting.go b/formatting.go index 5572247..641ecfa 100644 --- a/formatting.go +++ b/formatting.go @@ -159,14 +159,26 @@ func (formatter *Formatter) ParseSkype(content *event.MessageEventContent, RoomM // parse mention user message r := regexp.MustCompile(`]+\bid="([^"]+)"(.*?)*`) - matches := r.FindAllStringSubmatch(backStr, -1) + var originStr string + if len(backStr) == 0 { + originStr = content.Body + } else { + originStr = backStr + } + matches := r.FindAllStringSubmatch(originStr, -1) if len(matches) > 0 { for _, match := range matches { mxid, displayname := formatter.getMatrixInfoByJID(match[1] + skypeExt.NewUserSuffix) number := "@" + strings.Replace(match[1], skypeExt.NewUserSuffix, "", 1) - output = strings.ReplaceAll(backStr, match[0], fmt.Sprintf(`%s:`, formatter.bridge.Config.Homeserver.Domain, mxid, displayname)) - content.FormattedBody = content.FormattedBody + output - content.Body = content.Body + strings.Replace(backStr, number, displayname, -1) + output = strings.ReplaceAll(originStr, match[0], fmt.Sprintf(`%s:`, formatter.bridge.Config.Homeserver.Domain, mxid, displayname)) + if len(backStr) == 0 { + content.Format = event.FormatHTML + content.Body = strings.Replace(originStr, number, displayname, -1) + content.FormattedBody = output + } else { + content.FormattedBody = content.FormattedBody + output + content.Body = content.Body + strings.Replace(backStr, number, displayname, -1) + } } } else { content.Body = content.Body + backStr