summary refs log tree commit diff
path: root/synapse/notifier.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2017-03-15 14:27:34 +0000
committerErik Johnston <erik@matrix.org>2017-03-15 14:27:34 +0000
commit6c82de51002575e974907ab0a7d4fc6b0123bc8f (patch)
tree7338a0d9c64ae83255404a7527bbdf90705a1a44 /synapse/notifier.py
parentMerge pull request #1997 from matrix-org/dbkr/cas_partialdownload (diff)
downloadsynapse-6c82de51002575e974907ab0a7d4fc6b0123bc8f.tar.xz
Format presence events on the edges instead of reformatting them multiple times
Diffstat (limited to 'synapse/notifier.py')
-rw-r--r--synapse/notifier.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/synapse/notifier.py b/synapse/notifier.py
index 2657dcd8dc..31f723d94d 100644
--- a/synapse/notifier.py
+++ b/synapse/notifier.py
@@ -16,6 +16,7 @@
 from twisted.internet import defer
 from synapse.api.constants import EventTypes, Membership
 from synapse.api.errors import AuthError
+from synapse.handlers.presence import format_user_presence_state
 
 from synapse.util import DeferredTimedOutError
 from synapse.util.logutils import log_function
@@ -412,6 +413,15 @@ class Notifier(object):
                         new_events,
                         is_peeking=is_peeking,
                     )
+                elif name == "presence":
+                    now = self.clock.time_msec()
+                    new_events[:] = [
+                        {
+                            "type": "m.presence",
+                            "content": format_user_presence_state(event, now),
+                        }
+                        for event in new_events
+                    ]
 
                 events.extend(new_events)
                 end_token = end_token.copy_and_replace(keyname, new_key)