optimize mention users(skype->matrix)

This commit is contained in:
zhaoYangguang 2021-01-18 15:35:43 +08:00
parent 9ca4638475
commit 2e904aa753
1 changed files with 12 additions and 10 deletions

View File

@ -158,8 +158,9 @@ func (formatter *Formatter) ParseSkype(content *event.MessageEventContent, RoomM
} }
// parse mention user message // parse mention user message
r := regexp.MustCompile(`<at[^>]+\bid="([^"]+)"(.*?)</at>*`) r := regexp.MustCompile(`(?m)<at[^>]+\bid="([^"]+)"(.*?)</at>`)
var originStr string var originStr string
var originBodyStr string
if len(backStr) == 0 { if len(backStr) == 0 {
originStr = content.Body originStr = content.Body
} else { } else {
@ -170,15 +171,16 @@ func (formatter *Formatter) ParseSkype(content *event.MessageEventContent, RoomM
for _, match := range matches { for _, match := range matches {
mxid, displayname := formatter.getMatrixInfoByJID(match[1] + skypeExt.NewUserSuffix) mxid, displayname := formatter.getMatrixInfoByJID(match[1] + skypeExt.NewUserSuffix)
number := "@" + strings.Replace(match[1], skypeExt.NewUserSuffix, "", 1) number := "@" + strings.Replace(match[1], skypeExt.NewUserSuffix, "", 1)
output = strings.ReplaceAll(originStr, match[0], fmt.Sprintf(`<a href="https://%s/#/%s">%s</a>:`, formatter.bridge.Config.Homeserver.Domain, mxid, displayname)) originStr = strings.ReplaceAll(originStr, match[0], fmt.Sprintf(`<a href="https://%s/#/%s">%s</a>:`, formatter.bridge.Config.Homeserver.Domain, mxid, displayname))
if len(backStr) == 0 { originBodyStr = strings.Replace(originStr, number, displayname, -1)
content.Format = event.FormatHTML }
content.Body = strings.Replace(originStr, number, displayname, -1) if len(backStr) == 0 {
content.FormattedBody = output content.Format = event.FormatHTML
} else { content.Body = originBodyStr
content.FormattedBody = content.FormattedBody + output content.FormattedBody = originStr
content.Body = content.Body + strings.Replace(backStr, number, displayname, -1) } else {
} content.Body = content.Body + originBodyStr
content.FormattedBody = content.FormattedBody + originStr
} }
} else { } else {
content.Body = content.Body + backStr content.Body = content.Body + backStr