From baab93b0dd686966b62f4fb3d27aaae1a49ba7e5 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Wed, 22 Jun 2016 11:40:06 +0100 Subject: [PATCH] Implement 'synced' flag --- synapse/handlers/sync.py | 16 +++++++++++----- synapse/rest/client/v2_alpha/sync.py | 1 + 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py index 625f2f2583..2a8e6e7efd 100644 --- a/synapse/handlers/sync.py +++ b/synapse/handlers/sync.py @@ -97,6 +97,7 @@ class JoinedSyncResult(collections.namedtuple("JoinedSyncResult", [ "ephemeral", "account_data", "unread_notifications", + "synced", # bool ])): __slots__ = [] @@ -781,13 +782,16 @@ class SyncHandler(object): continue if r.room_id in include_map: since = include_map[r.room_id].get("since", None) - r.since_token = since - if not since: + if since: + tok = SyncNextBatchToken.from_string(since) + r.since_token = tok.stream_token + else: + r.since_token = None r.always_include = True r.full_state = True r.would_require_resync = True - r.events = None - r.upto_token = now_token + r.events = None + r.synced = False else: r.full_state = True r.would_require_resync = True @@ -1201,6 +1205,7 @@ class SyncHandler(object): ephemeral=ephemeral, account_data=account_data_events, unread_notifications=unread_notifications, + synced=room_builder.synced, ) if room_sync or always_include: @@ -1391,7 +1396,7 @@ class RoomSyncResultBuilder(object): __slots__ = ( "room_id", "rtype", "events", "newly_joined", "full_state", "since_token", - "upto_token", "always_include", "would_require_resync", + "upto_token", "always_include", "would_require_resync", "synced", ) def __init__(self, room_id, rtype, events, newly_joined, full_state, @@ -1416,3 +1421,4 @@ class RoomSyncResultBuilder(object): self.upto_token = upto_token self.always_include = False self.would_require_resync = False + self.synced = True diff --git a/synapse/rest/client/v2_alpha/sync.py b/synapse/rest/client/v2_alpha/sync.py index e690e74a22..abf22e4dc1 100644 --- a/synapse/rest/client/v2_alpha/sync.py +++ b/synapse/rest/client/v2_alpha/sync.py @@ -335,6 +335,7 @@ class SyncRestServlet(RestServlet): joined[room.room_id] = self.encode_room( room, time_now, token_id ) + joined[room.room_id]["synced"] = room.synced return joined