mirror of
https://github.com/element-hq/synapse
synced 2024-10-01 04:02:41 +00:00
Incorporate to_token
to filters
This commit is contained in:
parent
48eca7dbb7
commit
7aa0519589
2 changed files with 13 additions and 4 deletions
|
@ -335,11 +335,8 @@ class SlidingSyncHandler:
|
||||||
# Apply filters
|
# Apply filters
|
||||||
filtered_room_ids = room_id_set
|
filtered_room_ids = room_id_set
|
||||||
if list_config.filters is not None:
|
if list_config.filters is not None:
|
||||||
# TODO: To be absolutely correct, this could also take into account
|
|
||||||
# from/to tokens but some of the streams don't support looking back
|
|
||||||
# in time (like global account_data).
|
|
||||||
filtered_room_ids = await self.filter_rooms(
|
filtered_room_ids = await self.filter_rooms(
|
||||||
sync_config.user, room_id_set, list_config.filters
|
sync_config.user, room_id_set, list_config.filters, to_token
|
||||||
)
|
)
|
||||||
# TODO: Apply sorts
|
# TODO: Apply sorts
|
||||||
sorted_room_ids = sorted(filtered_room_ids)
|
sorted_room_ids = sorted(filtered_room_ids)
|
||||||
|
@ -618,9 +615,16 @@ class SlidingSyncHandler:
|
||||||
user: UserID,
|
user: UserID,
|
||||||
room_id_set: AbstractSet[str],
|
room_id_set: AbstractSet[str],
|
||||||
filters: SlidingSyncConfig.SlidingSyncList.Filters,
|
filters: SlidingSyncConfig.SlidingSyncList.Filters,
|
||||||
|
to_token: StreamToken,
|
||||||
) -> AbstractSet[str]:
|
) -> AbstractSet[str]:
|
||||||
"""
|
"""
|
||||||
Filter rooms based on the sync request.
|
Filter rooms based on the sync request.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
user: User to filter rooms for
|
||||||
|
room_id_set: Set of room IDs to filter down
|
||||||
|
filters: Filters to apply
|
||||||
|
to_token: We filter based on the state of the room at this token
|
||||||
"""
|
"""
|
||||||
user_id = user.to_string()
|
user_id = user.to_string()
|
||||||
|
|
||||||
|
|
|
@ -1140,6 +1140,7 @@ class FilterRoomsTestCase(HomeserverTestCase):
|
||||||
def prepare(self, reactor: MemoryReactor, clock: Clock, hs: HomeServer) -> None:
|
def prepare(self, reactor: MemoryReactor, clock: Clock, hs: HomeServer) -> None:
|
||||||
self.sliding_sync_handler = self.hs.get_sliding_sync_handler()
|
self.sliding_sync_handler = self.hs.get_sliding_sync_handler()
|
||||||
self.store = self.hs.get_datastores().main
|
self.store = self.hs.get_datastores().main
|
||||||
|
self.event_sources = hs.get_event_sources()
|
||||||
|
|
||||||
def _create_dm_room(
|
def _create_dm_room(
|
||||||
self,
|
self,
|
||||||
|
@ -1213,6 +1214,8 @@ class FilterRoomsTestCase(HomeserverTestCase):
|
||||||
invitee_tok=user2_tok,
|
invitee_tok=user2_tok,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
after_rooms_token = self.event_sources.get_current_token()
|
||||||
|
|
||||||
# TODO: Better way to avoid the circular import? (see
|
# TODO: Better way to avoid the circular import? (see
|
||||||
# https://github.com/element-hq/synapse/pull/17187#discussion_r1619492779)
|
# https://github.com/element-hq/synapse/pull/17187#discussion_r1619492779)
|
||||||
from synapse.handlers.sliding_sync import SlidingSyncConfig
|
from synapse.handlers.sliding_sync import SlidingSyncConfig
|
||||||
|
@ -1225,6 +1228,7 @@ class FilterRoomsTestCase(HomeserverTestCase):
|
||||||
SlidingSyncConfig.SlidingSyncList.Filters(
|
SlidingSyncConfig.SlidingSyncList.Filters(
|
||||||
is_dm=True,
|
is_dm=True,
|
||||||
),
|
),
|
||||||
|
after_rooms_token,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1238,6 +1242,7 @@ class FilterRoomsTestCase(HomeserverTestCase):
|
||||||
SlidingSyncConfig.SlidingSyncList.Filters(
|
SlidingSyncConfig.SlidingSyncList.Filters(
|
||||||
is_dm=False,
|
is_dm=False,
|
||||||
),
|
),
|
||||||
|
after_rooms_token,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue