buffer: Handle encrypted rooms in the state dict as well.

This commit is contained in:
Damir Jelić 2018-08-08 15:05:15 +02:00
parent 458f6580fb
commit 8d4415f873
2 changed files with 12 additions and 4 deletions

View file

@ -22,7 +22,7 @@ from builtins import super
from functools import partial from functools import partial
from typing import NamedTuple from typing import NamedTuple
from .globals import W, SERVERS, OPTIONS, SCRIPT_NAME, ENCRYPTION from .globals import W, SERVERS, OPTIONS, SCRIPT_NAME
from .utf import utf8_decode from .utf import utf8_decode
from .colors import Formatted from .colors import Formatted
from .utils import ( from .utils import (
@ -875,6 +875,11 @@ class RoomBuffer(object):
self._handle_topic(event, True) self._handle_topic(event, True)
elif isinstance(event, PowerLevelsEvent): elif isinstance(event, PowerLevelsEvent):
self._handle_power_level(event) self._handle_power_level(event)
elif isinstance(event, RoomEncryptionEvent):
message = ("This room is encrypted, encryption is "
"currently unsuported. Message sending is disabled for "
"this room.")
self.weechat_buffer.error(message)
def handle_timeline_event(self, event): def handle_timeline_event(self, event):
if isinstance(event, RoomMemberEvent): if isinstance(event, RoomMemberEvent):
@ -962,9 +967,6 @@ class RoomBuffer(object):
self._handle_redacted_message(event) self._handle_redacted_message(event)
elif isinstance(event, RoomEncryptionEvent): elif isinstance(event, RoomEncryptionEvent):
if ENCRYPTION:
return
message = ("This room is encrypted, encryption is " message = ("This room is encrypted, encryption is "
"currently unsuported. Message sending is disabled for " "currently unsuported. Message sending is disabled for "
"this room.") "this room.")

View file

@ -478,6 +478,9 @@ class MatrixServer(object):
W.prnt(self.server_buffer, msg) W.prnt(self.server_buffer, msg)
def room_send_state(self, room_buffer, body, event_type): def room_send_state(self, room_buffer, body, event_type):
if room_buffer.room.encrypted:
return
_, request = self.client.room_put_state( _, request = self.client.room_put_state(
room_buffer.room.room_id, room_buffer.room.room_id,
event_type, event_type,
@ -487,6 +490,9 @@ class MatrixServer(object):
def room_send_message(self, room_buffer, formatted, msgtype="m.text"): def room_send_message(self, room_buffer, formatted, msgtype="m.text"):
# type: (RoomBuffer, Formatted) -> None # type: (RoomBuffer, Formatted) -> None
if room_buffer.room.encrypted:
return
if msgtype == "m.emote": if msgtype == "m.emote":
message_class = OwnAction message_class = OwnAction
else: else: