Thumbnail

rani/matterbridge.git

Clone URL: https://git.buni.party/rani/matterbridge.git

commit 0f1fb698469a013f7f58c210e2b838ae4b4e5f2c Author: Wim <wim@42.be> Date: Sun Feb 06 20:58:13 2022 +0000 Make HTMLDisable work correct (matrix) (#1716) diff --git a/bridge/matrix/matrix.go b/bridge/matrix/matrix.go index 739a792..706ae30 100644 --- a/bridge/matrix/matrix.go +++ b/bridge/matrix/matrix.go @@ -488 +4810 @@ type matrixUsername struct {    // SubTextMessage represents the new content of the message in edit messages.  type SubTextMessage struct { - MsgType string `json:"msgtype"` - Body string `json:"body"` + MsgType string `json:"msgtype"` + Body string `json:"body"` + FormattedBody string `json:"formatted_body,omitempty"` + Format string `json:"format,omitempty"`  }    // MessageRelation explains how the current message relates to a previous message. @@ -1517 +15313 @@ func (b *Bmatrix) Send(msg config.Message) (string, error) {   m := matrix.TextMessage{   MsgType: "m.emote",   Body: username.plain + msg.Text, - FormattedBody: username.formatted + msg.Text, + FormattedBody: username.formatted + helper.ParseMarkdown(msg.Text), + Format: "org.matrix.custom.html", + } + + if b.GetBool("HTMLDisable") { + m.Format = "" + m.FormattedBody = ""   }     msgID := "" @@ -21420 +22229 @@ func (b *Bmatrix) Send(msg config.Message) (string, error) {     // Edit message if we have an ID   if msg.ID != "" { - rmsg := EditedMessage{TextMessage: matrix.TextMessage{ - Body: username.plain + msg.Text, - MsgType: "m.text", - }} - if b.GetBool("HTMLDisable") { - rmsg.TextMessage.FormattedBody = username.formatted + "* " + msg.Text - } else { - rmsg.Format = "org.matrix.custom.html" - rmsg.TextMessage.FormattedBody = username.formatted + "* " + helper.ParseMarkdown(msg.Text) + rmsg := EditedMessage{ + TextMessage: matrix.TextMessage{ + Body: username.plain + msg.Text, + MsgType: "m.text", + Format: "org.matrix.custom.html", + FormattedBody: username.formatted + helper.ParseMarkdown(msg.Text), + },   } +   rmsg.NewContent = SubTextMessage{ - Body: rmsg.TextMessage.Body, - MsgType: "m.text", + Body: rmsg.TextMessage.Body, + FormattedBody: rmsg.TextMessage.FormattedBody, + Format: rmsg.TextMessage.Format, + MsgType: "m.text", + } + + if b.GetBool("HTMLDisable") { + rmsg.TextMessage.Format = "" + rmsg.TextMessage.FormattedBody = "" + rmsg.NewContent.Format = "" + rmsg.NewContent.FormattedBody = ""   } +   rmsg.RelatedTo = MessageRelation{   EventID: msg.ID,   Type: "m.replace", @@ -25133 +26821 @@ func (b *Bmatrix) Send(msg config.Message) (string, error) {   MsgType: "m.notice",   Body: username.plain + msg.Text,   FormattedBody: username.formatted + msg.Text, + Format: "org.matrix.custom.html",   }   - var ( - resp *matrix.RespSendEvent - err error - ) - - err = b.retry(func() error { - resp, err = b.mc.SendMessageEvent(channel, "m.room.message", m) - - return err - }) - if err != nil { - return "", err + if b.GetBool("HTMLDisable") { + m.Format = "" + m.FormattedBody = ""   }   - return resp.EventID, err - } - - if b.GetBool("HTMLDisable") {   var (   resp *matrix.RespSendEvent   err error   )     err = b.retry(func() error { - resp, err = b.mc.SendText(channel, username.plain+msg.Text) + resp, err = b.mc.SendMessageEvent(channel, "m.room.message", m)     return err   }) @@ -2949 +29915 @@ func (b *Bmatrix) Send(msg config.Message) (string, error) {   MsgType: "m.text",   Body: username.plain + msg.Text,   FormattedBody: username.formatted + helper.ParseMarkdown(msg.Text), + Format: "org.matrix.custom.html",   },   }   + if b.GetBool("HTMLDisable") { + m.TextMessage.Format = "" + m.TextMessage.FormattedBody = "" + } +   m.RelatedTo = InReplyToRelation{   InReplyTo: InReplyToRelationContent{   EventID: msg.ParentID, @@ -3206 +33124 @@ func (b *Bmatrix) Send(msg config.Message) (string, error) {   return resp.EventID, err   }   + if b.GetBool("HTMLDisable") { + var ( + resp *matrix.RespSendEvent + err error + ) + + err = b.retry(func() error { + resp, err = b.mc.SendText(channel, username.plain+msg.Text) + + return err + }) + if err != nil { + return "", err + } + + return resp.EventID, err + } +   // Post normal message with HTML support (eg riot.im)   var (   resp *matrix.RespSendEvent