server: Handle invites.

This commit is contained in:
Damir Jelić 2018-08-27 20:48:20 +02:00
parent cca6464cc7
commit 57c392a643

View file

@ -334,7 +334,7 @@ class MatrixServer(object):
# type: (MatrixServer) -> None # type: (MatrixServer) -> None
self.send_buffer = b"" self.send_buffer = b""
def error(self, message): def info(self, message):
buf = "" buf = ""
if self.server_buffer: if self.server_buffer:
buf = self.server_buffer buf = self.server_buffer
@ -342,6 +342,14 @@ class MatrixServer(object):
msg = "{}{}: {}".format(W.prefix("network"), SCRIPT_NAME, message) msg = "{}{}: {}".format(W.prefix("network"), SCRIPT_NAME, message)
W.prnt(buf, msg) 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): def send(self, data):
# type: (bytes) -> bool # type: (bytes) -> bool
self.try_send(data) self.try_send(data)
@ -625,6 +633,30 @@ class MatrixServer(object):
self.sync(timeout=0, filter=sync_filter) self.sync(timeout=0, filter=sync_filter)
def _handle_room_info(self, response): 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(): for room_id, info in response.rooms.leave.items():
if room_id not in self.buffers: if room_id not in self.buffers:
continue continue