summary refs log tree commit diff
path: root/synapse/push
diff options
context:
space:
mode:
Diffstat (limited to 'synapse/push')
-rw-r--r--synapse/push/mailer.py36
1 files changed, 25 insertions, 11 deletions
diff --git a/synapse/push/mailer.py b/synapse/push/mailer.py
index ae3e41b8ce..e6554dc7fd 100644
--- a/synapse/push/mailer.py
+++ b/synapse/push/mailer.py
@@ -200,13 +200,6 @@ class Mailer(object):
     def get_message_vars(self, notif, event, room_state):
         if event.type != "m.room.message":
             return None
-        if event.content["msgtype"] != "m.text":
-            return None
-
-        if "format" in event.content:
-            msgformat = event.content["format"]
-        else:
-            msgformat = None
 
         sender_state_event = room_state[("m.room.member", event.sender)]
         sender_name = name_from_member_event(sender_state_event)
@@ -217,7 +210,7 @@ class Mailer(object):
         sender_hash = string_ordinal_total(event.sender)
 
         ret = {
-            "format": msgformat,
+            "msgtype": event.content["msgtype"],
             "is_historical": event.event_id != notif['event_id'],
             "ts": event.origin_server_ts,
             "sender_name": sender_name,
@@ -225,13 +218,34 @@ class Mailer(object):
             "sender_hash": sender_hash,
         }
 
-        if msgformat == "org.matrix.custom.html":
-            ret["body_text_html"] = safe_markup(event.content["formatted_body"])
+        if event.content["msgtype"] == "m.text":
+            self.add_text_message_vars(ret, event)
+        elif event.content["msgtype"] == "m.image":
+            self.add_image_message_vars(ret, event)
         else:
-            ret["body_text_html"] = safe_text(event.content["body"])
+            return None
 
         return ret
 
+    def add_text_message_vars(self, vars, event):
+        if "format" in event.content:
+            msgformat = event.content["format"]
+        else:
+            msgformat = None
+        vars["format"] = msgformat
+
+        if msgformat == "org.matrix.custom.html":
+            vars["body_text_html"] = safe_markup(event.content["formatted_body"])
+        else:
+            vars["body_text_html"] = safe_text(event.content["body"])
+
+        return vars
+
+    def add_image_message_vars(self, vars, event):
+        vars["image_url"] = event.content["url"]
+
+        return vars
+
     def make_summary_text(self, notifs_by_room, state_by_room, notif_events, user_id):
         if len(notifs_by_room) == 1:
             # Only one room has new stuff