Merge branch 'develop' into server2server_tls
2 files changed, 14 insertions, 0 deletions
diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py
index c8ff34e5f5..4c74ce3eff 100644
--- a/synapse/handlers/message.py
+++ b/synapse/handlers/message.py
@@ -76,6 +76,10 @@ class MessageHandler(BaseRoomHandler):
Raises:
SynapseError if something went wrong.
"""
+ # TODO(paul): Why does 'event' not have a 'user' object?
+ user = self.hs.parse_userid(event.user_id)
+ assert(user.is_mine)
+
if stamp_event:
event.content["hsob_ts"] = int(self.clock.time_msec())
@@ -86,6 +90,10 @@ class MessageHandler(BaseRoomHandler):
yield self._on_new_room_event(event, snapshot)
+ self.hs.get_handlers().presence_handler.bump_presence_active_time(
+ user
+ )
+
@defer.inlineCallbacks
def get_messages(self, user_id=None, room_id=None, pagin_config=None,
feedback=False):
diff --git a/synapse/handlers/presence.py b/synapse/handlers/presence.py
index c1af07133f..f55bea58a5 100644
--- a/synapse/handlers/presence.py
+++ b/synapse/handlers/presence.py
@@ -266,6 +266,12 @@ class PresenceHandler(BaseHandler):
# we don't have to do this all the time
self.changed_presencelike_data(target_user, state)
+ def bump_presence_active_time(self, user, now=None):
+ if now is None:
+ now = self.clock.time_msec()
+
+ self.changed_presencelike_data(user, {"last_active": now})
+
def changed_presencelike_data(self, user, state):
statuscache = self._get_or_make_usercache(user)
|