Show LeftBanner with a generic left text
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from datetime import datetime
|
||||
from enum import auto
|
||||
from typing import Dict, List, Optional, Sequence, Type, Union
|
||||
from typing import List, Sequence, Type, Union
|
||||
|
||||
from dataclasses import dataclass, field
|
||||
|
||||
@@ -19,9 +19,7 @@ class RoomUpdated(Event):
|
||||
avatar_url: str = ""
|
||||
topic: str = ""
|
||||
typing_members: Sequence[str] = ()
|
||||
|
||||
inviter_id: str = ""
|
||||
left_event: Optional[nio.RoomMemberEvent] = None
|
||||
inviter_id: str = ""
|
||||
|
||||
|
||||
@classmethod
|
||||
@@ -29,8 +27,7 @@ class RoomUpdated(Event):
|
||||
user_id: str,
|
||||
category: str,
|
||||
room: MatrixRoom,
|
||||
info: nio.RoomInfo,
|
||||
**fields) -> "RoomUpdated":
|
||||
info: nio.RoomInfo) -> "RoomUpdated":
|
||||
|
||||
typing: List[str] = []
|
||||
|
||||
@@ -54,7 +51,6 @@ class RoomUpdated(Event):
|
||||
topic = room.topic or "",
|
||||
inviter_id = getattr(room, "inviter", "") or "",
|
||||
typing_members = typing,
|
||||
**fields
|
||||
)
|
||||
|
||||
|
||||
|
@@ -198,15 +198,17 @@ class MatrixClient(nio.AsyncClient):
|
||||
up(self.user_id, "Rooms", self.rooms[room_id], info)
|
||||
|
||||
for room_id, info in resp.rooms.leave.items():
|
||||
lev = None
|
||||
# TODO: handle in nio, these are rooms that were left before
|
||||
# starting the client.
|
||||
if room_id not in self.rooms:
|
||||
continue
|
||||
|
||||
# TODO: handle left events in nio async client
|
||||
for ev in info.timeline.events:
|
||||
is_member_ev = isinstance(ev, nio.RoomMemberEvent)
|
||||
if isinstance(ev, nio.RoomMemberEvent):
|
||||
await self.onRoomMemberEvent(self.rooms[room_id], ev)
|
||||
|
||||
if is_member_ev and ev.membership in ("leave", "ban"):
|
||||
lev = ev
|
||||
|
||||
up(self.user_id, "Left", self.rooms[room_id], info, left_event=lev)
|
||||
up(self.user_id, "Left", self.rooms[room_id], info)
|
||||
|
||||
|
||||
async def onErrorResponse(self, resp: nio.ErrorResponse) -> None:
|
||||
@@ -273,7 +275,7 @@ class MatrixClient(nio.AsyncClient):
|
||||
TimelineEventReceived.from_nio(room, ev, content=co)
|
||||
|
||||
|
||||
async def _get_room_member_event_content(self, ev) -> Optional[str]:
|
||||
async def get_room_member_event_content(self, ev) -> Optional[str]:
|
||||
prev = ev.prev_content
|
||||
now = ev.content
|
||||
membership = ev.membership
|
||||
@@ -345,7 +347,7 @@ class MatrixClient(nio.AsyncClient):
|
||||
status_message = "", # TODO
|
||||
)
|
||||
|
||||
co = await self._get_room_member_event_content(ev)
|
||||
co = await self.get_room_member_event_content(ev)
|
||||
|
||||
if co is not None:
|
||||
TimelineEventReceived.from_nio(room, ev, content=co)
|
||||
|
Reference in New Issue
Block a user