mirror of
https://github.com/element-hq/synapse
synced 2024-07-04 08:43:29 +00:00
Remove extras
This commit is contained in:
parent
fb8fbd489c
commit
d91aa0018c
|
@ -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
|
||||||
)
|
)
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue