Remove extras

This commit is contained in:
Eric Eastwood 2024-06-25 22:45:59 -05:00
parent fb8fbd489c
commit d91aa0018c
2 changed files with 21 additions and 34 deletions

View file

@ -427,7 +427,7 @@ class SlidingSyncHandler:
user_id, user_id,
from_key=to_token.room_key, from_key=to_token.room_key,
to_key=membership_snapshot_token, to_key=membership_snapshot_token,
excluded_rooms=self.rooms_to_exclude_globally, excluded_room_ids=self.rooms_to_exclude_globally,
) )
) )
@ -440,7 +440,7 @@ class SlidingSyncHandler:
for membership_change in current_state_delta_membership_changes_after_to_token: for membership_change in current_state_delta_membership_changes_after_to_token:
# Only set if we haven't already set it # Only set if we haven't already set it
first_membership_change_by_room_id_after_to_token.setdefault( first_membership_change_by_room_id_after_to_token.setdefault(
membership_change.room_id, membership_change membership_change.event.room_id, membership_change
) )
# 1) Fixup # 1) Fixup
@ -484,7 +484,7 @@ class SlidingSyncHandler:
user_id, user_id,
from_key=from_token.room_key, from_key=from_token.room_key,
to_key=to_token.room_key, to_key=to_token.room_key,
excluded_rooms=self.rooms_to_exclude_globally, excluded_room_ids=self.rooms_to_exclude_globally,
) )
) )
@ -498,19 +498,22 @@ class SlidingSyncHandler:
membership_change membership_change
) in current_state_delta_membership_changes_in_from_to_range: ) in current_state_delta_membership_changes_in_from_to_range:
last_membership_change_by_room_id_in_from_to_range[ last_membership_change_by_room_id_in_from_to_range[
membership_change.room_id membership_change.event.room_id
] = membership_change ] = membership_change
# 2) Fixup # 2) Fixup
for ( for (
last_membership_change_in_from_to_range last_membership_change_in_from_to_range
) in last_membership_change_by_room_id_in_from_to_range.values(): ) in last_membership_change_by_room_id_in_from_to_range.values():
room_id = last_membership_change_in_from_to_range.room_id room_id = last_membership_change_in_from_to_range.event.room_id
# 2) Add back newly_left rooms (> `from_token` and <= `to_token`). We # 2) Add back newly_left rooms (> `from_token` and <= `to_token`). We
# include newly_left rooms because the last event that the user should see # include newly_left rooms because the last event that the user should see
# is their own leave event # is their own leave event
if last_membership_change_in_from_to_range.membership == Membership.LEAVE: if (
last_membership_change_in_from_to_range.event.membership
== Membership.LEAVE
):
filtered_sync_room_id_set[room_id] = convert_event_to_rooms_for_user( filtered_sync_room_id_set[room_id] = convert_event_to_rooms_for_user(
last_membership_change_in_from_to_range.event last_membership_change_in_from_to_range.event
) )

View file

@ -120,13 +120,11 @@ class _CurrentStateDeltaMembershipReturn:
prev_event_id: The previous membership event in this room that was replaced by prev_event_id: The previous membership event in this room that was replaced by
the "current" one. May be `None` if there was no previous membership event. the "current" one. May be `None` if there was no previous membership event.
room_id: The room ID of the membership event. room_id: The room ID of the membership event.
membership: The membership state of the user in the room.
""" """
event_id: str event_id: str
prev_event_id: Optional[str] prev_event_id: Optional[str]
room_id: str room_id: str
membership: str
@attr.s(slots=True, frozen=True, auto_attribs=True) @attr.s(slots=True, frozen=True, auto_attribs=True)
@ -136,14 +134,10 @@ class CurrentStateDeltaMembership:
event: The "current" membership event in this room. event: The "current" membership event in this room.
prev_event: The previous membership event in this room that was replaced by prev_event: The previous membership event in this room that was replaced by
the "current" one. May be `None` if there was no previous membership event. the "current" one. May be `None` if there was no previous membership event.
room_id: The room ID of the membership event.
membership: The membership state of the user in the room.
""" """
event: EventBase event: EventBase
prev_event: Optional[EventBase] prev_event: Optional[EventBase]
room_id: str
membership: str
def generate_pagination_where_clause( def generate_pagination_where_clause(
@ -771,7 +765,7 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore):
user_id: str, user_id: str,
from_key: RoomStreamToken, from_key: RoomStreamToken,
to_key: RoomStreamToken, to_key: RoomStreamToken,
excluded_rooms: Optional[List[str]] = None, excluded_room_ids: Optional[List[str]] = None,
) -> List[CurrentStateDeltaMembership]: ) -> List[CurrentStateDeltaMembership]:
""" """
TODO TODO
@ -817,8 +811,7 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore):
s.room_id, s.room_id,
s.instance_name, s.instance_name,
s.stream_id, s.stream_id,
e.topological_ordering, e.topological_ordering
m.membership
FROM current_state_delta_stream AS s FROM current_state_delta_stream AS s
INNER JOIN events AS e ON e.stream_ordering = s.stream_id INNER JOIN events AS e ON e.stream_ordering = s.stream_id
INNER JOIN room_memberships AS m ON m.event_id = e.event_id INNER JOIN room_memberships AS m ON m.event_id = e.event_id
@ -837,7 +830,6 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore):
instance_name, instance_name,
stream_ordering, stream_ordering,
topological_ordering, topological_ordering,
membership,
) in txn: ) in txn:
assert event_id is not None assert event_id is not None
# `prev_event_id` can be `None` # `prev_event_id` can be `None`
@ -845,7 +837,6 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore):
assert instance_name is not None assert instance_name is not None
assert stream_ordering is not None assert stream_ordering is not None
assert topological_ordering is not None assert topological_ordering is not None
assert membership is not None
if _filter_results( if _filter_results(
from_key, from_key,
@ -859,46 +850,39 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore):
event_id=event_id, event_id=event_id,
prev_event_id=prev_event_id, prev_event_id=prev_event_id,
room_id=room_id, room_id=room_id,
membership=membership,
# event_pos=PersistedEventPosition(
# instance_name=instance_name,
# stream=stream_ordering,
# ),
) )
) )
return membership_changes return membership_changes
membership_changes = await self.db_pool.runInteraction( raw_membership_changes = await self.db_pool.runInteraction(
"get_current_state_delta_membership_changes_for_user", f "get_current_state_delta_membership_changes_for_user", f
) )
# Fetch all events in one go # Fetch all events in one go
event_ids = [] event_ids = []
for m in membership_changes: for m in raw_membership_changes:
event_ids.append(m.event_id) event_ids.append(m.event_id)
if m.prev_event_id is not None: if m.prev_event_id is not None:
event_ids.append(m.prev_event_id) event_ids.append(m.prev_event_id)
events = await self.get_events(event_ids, get_prev_content=False) events = await self.get_events(event_ids, get_prev_content=False)
rooms_to_exclude: AbstractSet[str] = set() room_ids_to_exclude: AbstractSet[str] = set()
if excluded_rooms is not None: if excluded_room_ids is not None:
rooms_to_exclude = set(excluded_rooms) room_ids_to_exclude = set(excluded_room_ids)
return [ return [
CurrentStateDeltaMembership( CurrentStateDeltaMembership(
event=events[membership_change.event_id], event=events[raw_membership_change.event_id],
prev_event=( prev_event=(
events[membership_change.prev_event_id] events[raw_membership_change.prev_event_id]
if membership_change.prev_event_id if raw_membership_change.prev_event_id
else None else None
), ),
room_id=membership_change.room_id,
membership=membership_change.membership,
) )
for membership_change in membership_changes for raw_membership_change in raw_membership_changes
if membership_change.room_id not in rooms_to_exclude if raw_membership_change.room_id not in room_ids_to_exclude
] ]
@cancellable @cancellable