Fix missing rooms and wrong avatars in initialsync

This commit is contained in:
miruka 2020-04-09 05:52:33 -04:00
parent fd8cf4ad8d
commit 6536f89507
2 changed files with 16 additions and 6 deletions

View File

@ -98,14 +98,16 @@ class MatrixClient(nio.AsyncClient):
}
limit_1_filter: ClassVar[Dict[str, Any]] = {
"presence": {"limit": 1},
"account_data": {"limit": 1},
"presence": {"limit": 1},
"room": {
"ephemeral": {"limit": 1},
"state": {"limit": 1},
"timeline": {"limit": 1},
"account_data": {"limit": 1},
"ephemeral": {"limit": 1},
"timeline": {
"limit": 1,
# This kind says another event was redacted, but we wouldn't
# have it in our model, so nothing would be shown
"not_types": ["m.room.redaction"],
},
},
}

View File

@ -56,7 +56,14 @@ class NioCallbacks:
# Response callbacks
async def onSyncResponse(self, resp: nio.SyncResponse) -> None:
room_model = self.client.models[self.client.user_id, "rooms"]
for room_id, info in resp.rooms.join.items():
if room_id not in room_model:
# Just in case we don't get any events for that room that
# triggers other callbacks
await self.client.register_nio_room(self.client.rooms[room_id])
if room_id not in self.client.past_tokens:
self.client.past_tokens[room_id] = info.timeline.prev_batch
@ -165,6 +172,7 @@ class NioCallbacks:
event and
(event.event_type is not nio.RedactedEvent or event.is_local_echo)
):
await self.client.register_nio_room(room)
return
event.source.source["content"] = {}