From 57c392a643608b91087ee2666d25a48e3a353618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Mon, 27 Aug 2018 20:48:20 +0200 Subject: [PATCH] server: Handle invites. --- matrix/server.py | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/matrix/server.py b/matrix/server.py index 1661b38..142ed7b 100644 --- a/matrix/server.py +++ b/matrix/server.py @@ -334,7 +334,7 @@ class MatrixServer(object): # type: (MatrixServer) -> None self.send_buffer = b"" - def error(self, message): + def info(self, message): buf = "" if self.server_buffer: buf = self.server_buffer @@ -342,6 +342,14 @@ class MatrixServer(object): msg = "{}{}: {}".format(W.prefix("network"), SCRIPT_NAME, message) W.prnt(buf, msg) + def error(self, message): + buf = "" + if self.server_buffer: + buf = self.server_buffer + + msg = "{}{}: {}".format(W.prefix("error"), SCRIPT_NAME, message) + W.prnt(buf, msg) + def send(self, data): # type: (bytes) -> bool self.try_send(data) @@ -625,6 +633,30 @@ class MatrixServer(object): self.sync(timeout=0, filter=sync_filter) def _handle_room_info(self, response): + for room_id, info in response.rooms.invite.items(): + room = self.client.invited_rooms.get(room_id, None) + + if room: + if room.inviter: + inviter_msg = " by {}{}".format( + W.color("chat_nick_other"), + room.inviter) + else: + inviter_msg = "" + + self.info("You have been invited to {} {}({}{}{}){}" + "{}".format( + room.display_name(), + W.color("chat_delimiters"), + W.color("chat_channel"), + room_id, + W.color("chat_delimiters"), + W.color("reset"), + inviter_msg + )) + else: + self.info("You have been invited to {}.".format(room_id)) + for room_id, info in response.rooms.leave.items(): if room_id not in self.buffers: continue