aboutsummaryrefslogtreecommitdiff
path: root/ui/messages/parser.go
diff options
context:
space:
mode:
authorTulir Asokan <tulir@maunium.net>2018-04-14 00:34:25 +0300
committerTulir Asokan <tulir@maunium.net>2018-04-14 00:34:25 +0300
commite7bf5bd59fc0a43172b6ab5b338e1d60bd4b3bbb (patch)
tree67aacbe31ba2d95fd7a648254f5173d7f46b4dc1 /ui/messages/parser.go
parent69c163cfe9d353060896403a3e844848d4fd54eb (diff)
Add basic HTML rendering (ref #16)
Diffstat (limited to 'ui/messages/parser.go')
-rw-r--r--ui/messages/parser.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/ui/messages/parser.go b/ui/messages/parser.go
index 263bced..d8069c6 100644
--- a/ui/messages/parser.go
+++ b/ui/messages/parser.go
@@ -56,8 +56,14 @@ func ParseMessage(gmx ifc.Gomuks, evt *gomatrix.Event) UIMessage {
ts := unixToTime(evt.Timestamp)
switch msgtype {
case "m.text", "m.notice", "m.emote":
- text, _ := evt.Content["body"].(string)
- return NewTextMessage(evt.ID, evt.Sender, msgtype, text, ts)
+ format, hasFormat := evt.Content["format"].(string)
+ if hasFormat && format == "org.matrix.custom.html" {
+ text := ParseHTMLMessage(evt)
+ return NewExpandedTextMessage(evt.ID, evt.Sender, msgtype, text, ts)
+ } else {
+ text, _ := evt.Content["body"].(string)
+ return NewTextMessage(evt.ID, evt.Sender, msgtype, text, ts)
+ }
case "m.image":
url, _ := evt.Content["url"].(string)
data, hs, id, err := gmx.Matrix().Download(url)