diff --git a/CHANGELOG.md b/CHANGELOG.md index ed9a9d9..e1e14a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,8 @@ ## Next version -- add ALIASES variable to Bot +- add `ALIASES` variable to `Bot` +- add `on_connected` function to `Client` ## 0.1.0 (2019-04-12) diff --git a/yaboli/client.py b/yaboli/client.py index e937a82..5117c45 100644 --- a/yaboli/client.py +++ b/yaboli/client.py @@ -56,6 +56,8 @@ class Client: nick = self._default_nick room = Room(room_name, password=password, target_nick=nick) + room.register_event("connected", + functools.partial(self.on_connected, room)) room.register_event("snapshot", functools.partial(self.on_snapshot, room)) room.register_event("send", @@ -102,6 +104,9 @@ class Client: # Event stuff - overwrite these functions + async def on_connected(self, room: Room) -> None: + pass + async def on_snapshot(self, room: Room, messages: List[LiveMessage]) -> None: pass diff --git a/yaboli/room.py b/yaboli/room.py index 458cdea..4196d5f 100644 --- a/yaboli/room.py +++ b/yaboli/room.py @@ -19,6 +19,10 @@ class Room: """ Events and parameters: + "connected" - fired after the Room has authenticated, joined and set its + nick, meaning that now, messages can be sent + no parameters + "snapshot" - snapshot of the room's messages at the time of joining messages: List[LiveMessage] @@ -207,6 +211,7 @@ class Room: if self._target_nick and nick_needs_updating: await self._nick(self._target_nick) + self._events.fire("connected") return True async def disconnect(self) -> None: