Working typing users bar

This commit is contained in:
miruka
2019-07-05 19:54:16 -04:00
parent d28b95f7b7
commit 4c4603691f
8 changed files with 75 additions and 48 deletions

View File

@@ -11,12 +11,13 @@ from .event import AutoStrEnum, Event
@dataclass
class RoomUpdated(Event):
user_id: str = field()
category: str = field()
room_id: str = field()
display_name: str = ""
avatar_url: str = ""
topic: str = ""
user_id: str = field()
category: str = field()
room_id: str = field()
display_name: str = ""
avatar_url: str = ""
topic: str = ""
typing_members: Sequence[str] = ()
inviter_id: str = ""
left_event: Dict[str, str] = field(default_factory=dict)

View File

@@ -7,7 +7,7 @@ import platform
from contextlib import suppress
from datetime import datetime
from types import ModuleType
from typing import DefaultDict, Dict, Optional, Type
from typing import DefaultDict, Dict, List, Optional, Type
from uuid import uuid4
import nio
@@ -216,13 +216,19 @@ class MatrixClient(nio.AsyncClient):
if room_id not in self.backend.past_tokens:
self.backend.past_tokens[room_id] = info.timeline.prev_batch
typing: List[str] = []
for ev in info.ephemeral:
if isinstance(ev, nio.TypingNoticeEvent):
typing = ev.users
rooms.RoomUpdated(
user_id = self.user_id,
category = "Rooms",
room_id = room_id,
display_name = self._get_room_name(room) or "",
avatar_url = room.gen_avatar_url or "",
topic = room.topic or "",
user_id = self.user_id,
category = "Rooms",
room_id = room_id,
display_name = self._get_room_name(room) or "",
avatar_url = room.gen_avatar_url or "",
topic = room.topic or "",
typing_members = typing,
)
for room_id, _ in resp.rooms.leave.items():