From 56e4f68a839f6d647f4a9d21109abd65f4e69017 Mon Sep 17 00:00:00 2001 From: SwissCorePy <51398037+SwissCorePy@users.noreply.github.com> Date: Wed, 30 Jun 2021 14:16:38 +0200 Subject: [PATCH] added the property `difference` to ChatMemberUpdated --- telebot/types.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/telebot/types.py b/telebot/types.py index aed2e92..61ac414 100644 --- a/telebot/types.py +++ b/telebot/types.py @@ -148,6 +148,23 @@ class ChatMemberUpdated(JsonDeserializable): self.old_chat_member: ChatMember = old_chat_member self.new_chat_member: ChatMember = new_chat_member self.invite_link: Optional[ChatInviteLink] = invite_link + + @property + def difference(self) -> Dict[str, List]: + """ + Get the difference between `old_chat_member` and `new_chat_member` + as a dict in the following format {'parameter': [old_value, new_value]} + E.g {'status': ['member', 'kicked'], 'until_date': [None, 1625055092]} + """ + old: Dict = self.old_chat_member.__dict__ + new: Dict = self.new_chat_member.__dict__ + old.pop('user') # User should always be the same + new.pop('user') # No need to include + dif = {} + for key in new: + if new[key] != old[key]: + dif[key] = [old[key], new[key]] + return dif class WebhookInfo(JsonDeserializable):