From 1c6ab2d75994bb0b50d7c31a508c4e5a088feb15 Mon Sep 17 00:00:00 2001
From: "Paul \"LeoNerd\" Evans" <paul@matrix.org>
Date: Mon, 1 Sep 2014 16:16:35 +0100
Subject: [PATCH] Bump a user's presence last_active time every time they send
 a message to a room

---
 synapse/handlers/message.py  | 4 ++++
 synapse/handlers/presence.py | 6 ++++++
 2 files changed, 10 insertions(+)

diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py
index f133458b91..4c74ce3eff 100644
--- a/synapse/handlers/message.py
+++ b/synapse/handlers/message.py
@@ -90,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)
 
-- 
GitLab