When there is a valid HTML formatting then remove this in the cleartext field of the matrix client. This leads to nicer push messages on smartphone apps. Fix #1188
This commit is contained in:
parent
4e50fd8649
commit
63a1847cdc
|
@ -21,12 +21,14 @@ type Bmatrix struct {
|
||||||
RoomMap map[string]string
|
RoomMap map[string]string
|
||||||
sync.RWMutex
|
sync.RWMutex
|
||||||
htmlTag *regexp.Regexp
|
htmlTag *regexp.Regexp
|
||||||
|
htmlReplacementTag *regexp.Regexp
|
||||||
*bridge.Config
|
*bridge.Config
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(cfg *bridge.Config) bridge.Bridger {
|
func New(cfg *bridge.Config) bridge.Bridger {
|
||||||
b := &Bmatrix{Config: cfg}
|
b := &Bmatrix{Config: cfg}
|
||||||
b.htmlTag = regexp.MustCompile("</.*?>")
|
b.htmlTag = regexp.MustCompile("</.*?>")
|
||||||
|
b.htmlReplacementTag = regexp.MustCompile("<[^>]*>")
|
||||||
b.RoomMap = make(map[string]string)
|
b.RoomMap = make(map[string]string)
|
||||||
return b
|
return b
|
||||||
}
|
}
|
||||||
|
@ -132,13 +134,20 @@ func (b *Bmatrix) Send(msg config.Message) (string, error) {
|
||||||
return resp.EventID, err
|
return resp.EventID, err
|
||||||
}
|
}
|
||||||
|
|
||||||
username := html.EscapeString(msg.Username)
|
var username string
|
||||||
|
var plainUsername string
|
||||||
// check if we have a </tag>. if we have, we don't escape HTML. #696
|
// check if we have a </tag>. if we have, we don't escape HTML. #696
|
||||||
if b.htmlTag.MatchString(msg.Username) {
|
if b.htmlTag.MatchString(msg.Username) {
|
||||||
username = msg.Username
|
username = msg.Username
|
||||||
|
// remove the HTML formatting for beautiful push messages #1188
|
||||||
|
plainUsername = b.htmlReplacementTag.ReplaceAllString(msg.Username, "")
|
||||||
|
} else {
|
||||||
|
username = html.EscapeString(msg.Username)
|
||||||
|
plainUsername = msg.Username
|
||||||
}
|
}
|
||||||
|
|
||||||
// Post normal message with HTML support (eg riot.im)
|
// Post normal message with HTML support (eg riot.im)
|
||||||
resp, err := b.mc.SendHTML(channel, msg.Username+msg.Text, username+helper.ParseMarkdown(msg.Text))
|
resp, err := b.mc.SendHTML(channel, plainUsername+msg.Text, username+helper.ParseMarkdown(msg.Text))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue