From e231c3ec9aa0e1cf4c10416e20d01c4d1ce816d8 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sat, 28 Apr 2018 19:21:50 +0300 Subject: [PATCH] Check prev_content before handling membership event Fixes #111, #102 not fully fixed, prev_content doesn't seem to exist every time even if it should --- mautrix_telegram/matrix.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mautrix_telegram/matrix.py b/mautrix_telegram/matrix.py index f5ae2ab2..9b8cb4bb 100644 --- a/mautrix_telegram/matrix.py +++ b/mautrix_telegram/matrix.py @@ -244,11 +244,16 @@ class MatrixHandler: self.log.debug("Received event: %s", evt) type = evt["type"] content = evt.get("content", {}) + prev_content = evt.get("unsigned", {}).get("prev_content", {}) if type == "m.room.member": membership = content.get("membership", "") - if membership == "invite": + prev_membership = prev_content.get("membership", "leave") + if membership == prev_membership: + # TODO handle displayname/avatar changes + pass + elif membership == "invite": await self.handle_invite(evt["room_id"], evt["state_key"], evt["sender"]) - elif membership == "leave": + elif prev_membership == "join" and membership == "leave": await self.handle_part(evt["room_id"], evt["state_key"], evt["sender"], evt["event_id"]) elif membership == "join":