From a703fc9587750b12b030f7ff349533e181035be2 Mon Sep 17 00:00:00 2001 From: Alex Root Junior Date: Fri, 26 May 2017 04:54:38 +0300 Subject: [PATCH] Add ChatMember --- aiogram/types/chat_member.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 aiogram/types/chat_member.py diff --git a/aiogram/types/chat_member.py b/aiogram/types/chat_member.py new file mode 100644 index 00000000..f7e1ecf7 --- /dev/null +++ b/aiogram/types/chat_member.py @@ -0,0 +1,34 @@ +from . import Deserializable + + +class ChatMember(Deserializable): + __slots__ = ('user', 'status') + + def __init__(self, user, status): + self.user = user + self.status = status + + @classmethod + def de_json(cls, raw_data): + raw_data = cls.check_json(raw_data) + + user = raw_data.get('user') + status = raw_data.get('status') + + return ChatMember(user, status) + + +class ChatMemberStatus: + CREATOR = 'creator' + ADMINISTRATOR = 'administrator' + MEMBER = 'member' + LEFT = 'left' + KICKED = 'kicked' + + @classmethod + def is_admin(cls, role): + return role in [cls.ADMINISTRATOR, cls.CREATOR] + + @classmethod + def is_member(cls, role): + return role in [cls.MEMBER, cls.ADMINISTRATOR, cls.CREATOR]