Try to prevent infinite loop of state changes with double puppeting

Fixes #464
This commit is contained in:
Tulir Asokan
2020-05-27 12:36:50 +03:00
parent 7f69e9f329
commit 2dd39fddf0
3 changed files with 24 additions and 20 deletions
+5
View File
@@ -392,6 +392,11 @@ class MatrixHandler(BaseMatrixHandler):
def filter_matrix_event(self, evt: Event) -> bool:
if not isinstance(evt, (RedactionEvent, MessageEvent, StateEvent, EncryptedEvent)):
return True
if evt.content.get("net.maunium.telegram.puppet", False):
puppet = pu.Puppet.get_by_custom_mxid(evt.sender)
if puppet:
self.log.debug("Ignoring puppet-sent event %s", evt.event_id)
return True
return evt.sender and (evt.sender == self.az.bot_mxid
or pu.Puppet.get_id_from_mxid(evt.sender) is not None)