diff options
author | Mark Haines <mjark@negativecurvature.net> | 2016-03-01 15:08:24 +0000 |
---|---|---|
committer | Mark Haines <mjark@negativecurvature.net> | 2016-03-01 15:08:24 +0000 |
commit | a612ce66597f2d3837c468803044e0400e385fe6 (patch) | |
tree | 0b5734ff804d1b7e24ea0039783695055f49f556 /synapse/handlers/presence.py | |
parent | Merge pull request #613 from matrix-org/markjh/yield (diff) | |
parent | Add a /replication API for extracting the updates that happened on (diff) | |
download | synapse-a612ce66597f2d3837c468803044e0400e385fe6.tar.xz |
Merge pull request #489 from matrix-org/markjh/replication
Add a /replication API for extracting the updates that happened on synapse.
Diffstat (limited to 'synapse/handlers/presence.py')
-rw-r--r-- | synapse/handlers/presence.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/synapse/handlers/presence.py b/synapse/handlers/presence.py index 08e38cdd25..d98e80086e 100644 --- a/synapse/handlers/presence.py +++ b/synapse/handlers/presence.py @@ -774,6 +774,25 @@ class PresenceHandler(BaseHandler): defer.returnValue(observer_user.to_string() in accepted_observers) + @defer.inlineCallbacks + def get_all_presence_updates(self, last_id, current_id): + """ + Gets a list of presence update rows from between the given stream ids. + Each row has: + - stream_id(str) + - user_id(str) + - state(str) + - last_active_ts(int) + - last_federation_update_ts(int) + - last_user_sync_ts(int) + - status_msg(int) + - currently_active(int) + """ + # TODO(markjh): replicate the unpersisted changes. + # This could use the in-memory stores for recent changes. + rows = yield self.store.get_all_presence_updates(last_id, current_id) + defer.returnValue(rows) + def should_notify(old_state, new_state): """Decides if a presence state change should be sent to interested parties. |