mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-06 14:24:58 -04:00
Various clean ups to room stream tokens. (#8423)
This commit is contained in:
parent
8238b55e08
commit
ea70f1c362
16 changed files with 96 additions and 76 deletions
|
@ -519,7 +519,7 @@ class SyncHandler:
|
|||
if len(recents) > timeline_limit:
|
||||
limited = True
|
||||
recents = recents[-timeline_limit:]
|
||||
room_key = RoomStreamToken.parse(recents[0].internal_metadata.before)
|
||||
room_key = recents[0].internal_metadata.before
|
||||
|
||||
prev_batch_token = now_token.copy_and_replace("room_key", room_key)
|
||||
|
||||
|
@ -1595,16 +1595,24 @@ class SyncHandler:
|
|||
|
||||
if leave_events:
|
||||
leave_event = leave_events[-1]
|
||||
leave_stream_token = await self.store.get_stream_token_for_event(
|
||||
leave_position = await self.store.get_position_for_event(
|
||||
leave_event.event_id
|
||||
)
|
||||
leave_token = since_token.copy_and_replace(
|
||||
"room_key", leave_stream_token
|
||||
)
|
||||
|
||||
if since_token and since_token.is_after(leave_token):
|
||||
# If the leave event happened before the since token then we
|
||||
# bail.
|
||||
if since_token and not leave_position.persisted_after(
|
||||
since_token.room_key
|
||||
):
|
||||
continue
|
||||
|
||||
# We can safely convert the position of the leave event into a
|
||||
# stream token as it'll only be used in the context of this
|
||||
# room. (c.f. the docstring of `to_room_stream_token`).
|
||||
leave_token = since_token.copy_and_replace(
|
||||
"room_key", leave_position.to_room_stream_token()
|
||||
)
|
||||
|
||||
# If this is an out of band message, like a remote invite
|
||||
# rejection, we include it in the recents batch. Otherwise, we
|
||||
# let _load_filtered_recents handle fetching the correct
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue