summary refs log tree commit diff
diff options
context:
space:
mode:
authorDavid Baker <dave@matrix.org>2016-04-28 15:55:53 +0100
committerDavid Baker <dave@matrix.org>2016-04-28 15:55:53 +0100
commit4845c7359de6c1ad1e7132653939e44ee8ff9156 (patch)
tree613021b7b17878bfeebe6b9b28d216e139864280
parentpep8 (diff)
downloadsynapse-4845c7359de6c1ad1e7132653939e44ee8ff9156.tar.xz
Support image notifs
-rw-r--r--res/templates/notif.html12
-rw-r--r--synapse/push/mailer.py36
2 files changed, 33 insertions, 15 deletions
diff --git a/res/templates/notif.html b/res/templates/notif.html
index aa6ed1e061..bdff2786ff 100644
--- a/res/templates/notif.html
+++ b/res/templates/notif.html
@@ -17,10 +17,14 @@
                 <div class="sender_name">{{ message.sender_name }}</div>
                 <div class="message_time">{{ message.ts|format_ts("%H:%M") }}</div>
                 <div class="message_body">
-                    {% if message.format == "org.matrix.custom.html" %}
-                        {{ message.body_text_html }}
-                    {% else %}
-                        {{ message.body_text_plain }}
+                    {% if message.msgtype == "m.text" %}
+                        {% if message.format == "org.matrix.custom.html" %}
+                            {{ message.body_text_html }}
+                        {% else %}
+                            {{ message.body_text_plain }}
+                        {% endif %}
+                    {% elif message.msgtype == "m.image" %}
+                        <img src="{{ message.image_url|mxc_to_http(640, 480, scale) }}" />
                     {% endif %}
                 </div>
             </div>
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