mirror of
https://mau.dev/maunium/synapse.git
synced 2024-12-14 19:13:51 +01:00
Mark all MSC2716 events as historical (#10537)
* Mark all MSC2716 events as historical
This commit is contained in:
parent
0cb4274dbf
commit
f5a368bb48
2 changed files with 11 additions and 5 deletions
1
changelog.d/10537.misc
Normal file
1
changelog.d/10537.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Mark all events stemming from the MSC2716 `/batch_send` endpoint as historical.
|
|
@ -458,6 +458,9 @@ class RoomBatchSendEventRestServlet(TransactionRestServlet):
|
||||||
"state_key": state_event["state_key"],
|
"state_key": state_event["state_key"],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Mark all events as historical
|
||||||
|
event_dict["content"][EventContentFields.MSC2716_HISTORICAL] = True
|
||||||
|
|
||||||
# Make the state events float off on their own
|
# Make the state events float off on their own
|
||||||
fake_prev_event_id = "$" + random_string(43)
|
fake_prev_event_id = "$" + random_string(43)
|
||||||
|
|
||||||
|
@ -562,7 +565,10 @@ class RoomBatchSendEventRestServlet(TransactionRestServlet):
|
||||||
"type": EventTypes.MSC2716_CHUNK,
|
"type": EventTypes.MSC2716_CHUNK,
|
||||||
"sender": requester.user.to_string(),
|
"sender": requester.user.to_string(),
|
||||||
"room_id": room_id,
|
"room_id": room_id,
|
||||||
"content": {EventContentFields.MSC2716_CHUNK_ID: chunk_id_to_connect_to},
|
"content": {
|
||||||
|
EventContentFields.MSC2716_CHUNK_ID: chunk_id_to_connect_to,
|
||||||
|
EventContentFields.MSC2716_HISTORICAL: True,
|
||||||
|
},
|
||||||
# Since the chunk event is put at the end of the chunk,
|
# Since the chunk event is put at the end of the chunk,
|
||||||
# where the newest-in-time event is, copy the origin_server_ts from
|
# where the newest-in-time event is, copy the origin_server_ts from
|
||||||
# the last event we're inserting
|
# the last event we're inserting
|
||||||
|
@ -589,10 +595,6 @@ class RoomBatchSendEventRestServlet(TransactionRestServlet):
|
||||||
for ev in events_to_create:
|
for ev in events_to_create:
|
||||||
assert_params_in_dict(ev, ["type", "origin_server_ts", "content", "sender"])
|
assert_params_in_dict(ev, ["type", "origin_server_ts", "content", "sender"])
|
||||||
|
|
||||||
# Mark all events as historical
|
|
||||||
# This has important semantics within the Synapse internals to backfill properly
|
|
||||||
ev["content"][EventContentFields.MSC2716_HISTORICAL] = True
|
|
||||||
|
|
||||||
event_dict = {
|
event_dict = {
|
||||||
"type": ev["type"],
|
"type": ev["type"],
|
||||||
"origin_server_ts": ev["origin_server_ts"],
|
"origin_server_ts": ev["origin_server_ts"],
|
||||||
|
@ -602,6 +604,9 @@ class RoomBatchSendEventRestServlet(TransactionRestServlet):
|
||||||
"prev_events": prev_event_ids.copy(),
|
"prev_events": prev_event_ids.copy(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Mark all events as historical
|
||||||
|
event_dict["content"][EventContentFields.MSC2716_HISTORICAL] = True
|
||||||
|
|
||||||
event, context = await self.event_creation_handler.create_event(
|
event, context = await self.event_creation_handler.create_event(
|
||||||
await self._create_requester_for_user_id_from_app_service(
|
await self._create_requester_for_user_id_from_app_service(
|
||||||
ev["sender"], requester.app_service
|
ev["sender"], requester.app_service
|
||||||
|
|
Loading…
Reference in a new issue