From d91aa0018ca082cc88a3b3bfb7e06d1becb74227 Mon Sep 17 00:00:00 2001 From: Eric Eastwood Date: Tue, 25 Jun 2024 22:45:59 -0500 Subject: [PATCH] Remove extras --- synapse/handlers/sliding_sync.py | 15 +++++---- synapse/storage/databases/main/stream.py | 40 +++++++----------------- 2 files changed, 21 insertions(+), 34 deletions(-) diff --git a/synapse/handlers/sliding_sync.py b/synapse/handlers/sliding_sync.py index 5d63099499..fed663ac36 100644 --- a/synapse/handlers/sliding_sync.py +++ b/synapse/handlers/sliding_sync.py @@ -427,7 +427,7 @@ class SlidingSyncHandler: user_id, from_key=to_token.room_key, 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: # Only set if we haven't already set it 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 @@ -484,7 +484,7 @@ class SlidingSyncHandler: user_id, from_key=from_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 ) in current_state_delta_membership_changes_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 # 2) Fixup for ( last_membership_change_in_from_to_range ) 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 # include newly_left rooms because the last event that the user should see # 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( last_membership_change_in_from_to_range.event ) diff --git a/synapse/storage/databases/main/stream.py b/synapse/storage/databases/main/stream.py index ce135ededc..efc0b88797 100644 --- a/synapse/storage/databases/main/stream.py +++ b/synapse/storage/databases/main/stream.py @@ -120,13 +120,11 @@ class _CurrentStateDeltaMembershipReturn: 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. room_id: The room ID of the membership event. - membership: The membership state of the user in the room. """ event_id: str prev_event_id: Optional[str] room_id: str - membership: str @attr.s(slots=True, frozen=True, auto_attribs=True) @@ -136,14 +134,10 @@ class CurrentStateDeltaMembership: event: The "current" membership event in this room. 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. - room_id: The room ID of the membership event. - membership: The membership state of the user in the room. """ event: EventBase prev_event: Optional[EventBase] - room_id: str - membership: str def generate_pagination_where_clause( @@ -771,7 +765,7 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore): user_id: str, from_key: RoomStreamToken, to_key: RoomStreamToken, - excluded_rooms: Optional[List[str]] = None, + excluded_room_ids: Optional[List[str]] = None, ) -> List[CurrentStateDeltaMembership]: """ TODO @@ -817,8 +811,7 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore): s.room_id, s.instance_name, s.stream_id, - e.topological_ordering, - m.membership + e.topological_ordering FROM current_state_delta_stream AS s 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 @@ -837,7 +830,6 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore): instance_name, stream_ordering, topological_ordering, - membership, ) in txn: assert event_id is not None # `prev_event_id` can be `None` @@ -845,7 +837,6 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore): assert instance_name is not None assert stream_ordering is not None assert topological_ordering is not None - assert membership is not None if _filter_results( from_key, @@ -859,46 +850,39 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore): event_id=event_id, prev_event_id=prev_event_id, room_id=room_id, - membership=membership, - # event_pos=PersistedEventPosition( - # instance_name=instance_name, - # stream=stream_ordering, - # ), ) ) 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 ) # Fetch all events in one go event_ids = [] - for m in membership_changes: + for m in raw_membership_changes: event_ids.append(m.event_id) if m.prev_event_id is not None: event_ids.append(m.prev_event_id) events = await self.get_events(event_ids, get_prev_content=False) - rooms_to_exclude: AbstractSet[str] = set() - if excluded_rooms is not None: - rooms_to_exclude = set(excluded_rooms) + room_ids_to_exclude: AbstractSet[str] = set() + if excluded_room_ids is not None: + room_ids_to_exclude = set(excluded_room_ids) return [ CurrentStateDeltaMembership( - event=events[membership_change.event_id], + event=events[raw_membership_change.event_id], prev_event=( - events[membership_change.prev_event_id] - if membership_change.prev_event_id + events[raw_membership_change.prev_event_id] + if raw_membership_change.prev_event_id else None ), - room_id=membership_change.room_id, - membership=membership_change.membership, ) - for membership_change in membership_changes - if membership_change.room_id not in rooms_to_exclude + for raw_membership_change in raw_membership_changes + if raw_membership_change.room_id not in room_ids_to_exclude ] @cancellable