From 2e904aa7532cab5943ef1c952b7ca25973b1fa53 Mon Sep 17 00:00:00 2001
From: zhaoYangguang <1163765691@qq.com>
Date: Mon, 18 Jan 2021 15:35:43 +0800
Subject: [PATCH] optimize mention users(skype->matrix)
---
formatting.go | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/formatting.go b/formatting.go
index 641ecfa..5d3c0fa 100644
--- a/formatting.go
+++ b/formatting.go
@@ -158,8 +158,9 @@ func (formatter *Formatter) ParseSkype(content *event.MessageEventContent, RoomM
}
// parse mention user message
- r := regexp.MustCompile(`]+\bid="([^"]+)"(.*?)*`)
+ r := regexp.MustCompile(`(?m)]+\bid="([^"]+)"(.*?)`)
var originStr string
+ var originBodyStr string
if len(backStr) == 0 {
originStr = content.Body
} else {
@@ -170,15 +171,16 @@ func (formatter *Formatter) ParseSkype(content *event.MessageEventContent, RoomM
for _, match := range matches {
mxid, displayname := formatter.getMatrixInfoByJID(match[1] + skypeExt.NewUserSuffix)
number := "@" + strings.Replace(match[1], skypeExt.NewUserSuffix, "", 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)
- }
+ originStr = strings.ReplaceAll(originStr, match[0], fmt.Sprintf(`%s:`, formatter.bridge.Config.Homeserver.Domain, mxid, displayname))
+ originBodyStr = strings.Replace(originStr, number, displayname, -1)
+ }
+ if len(backStr) == 0 {
+ content.Format = event.FormatHTML
+ content.Body = originBodyStr
+ content.FormattedBody = originStr
+ } else {
+ content.Body = content.Body + originBodyStr
+ content.FormattedBody = content.FormattedBody + originStr
}
} else {
content.Body = content.Body + backStr