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,
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
)

View file

@ -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