imaginaryfriend/src/domain/status.py

31 lines
866 B
Python
Raw Normal View History

2016-11-12 23:55:48 +01:00
from .abstract_entity import AbstractEntity
2016-11-12 13:37:14 +01:00
from src.utils import deep_get_attr
2016-11-12 16:36:23 +01:00
from src.config import config
2016-11-12 13:37:14 +01:00
2016-11-12 23:55:48 +01:00
class Status(AbstractEntity):
2016-12-11 18:41:40 +01:00
"""
Special class for message which contains info about status change
"""
2016-12-01 22:01:04 +01:00
def __init__(self, message):
super(Status, self).__init__(message)
2016-12-11 18:41:40 +01:00
self.bot_name = config['bot']['name']
2016-11-12 13:37:14 +01:00
def is_bot_kicked(self):
2016-12-11 18:41:40 +01:00
"""
Returns True if the bot was kicked from group.
2016-11-12 13:37:14 +01:00
"""
user_name = deep_get_attr(self.message, 'left_chat_member.username')
2016-12-02 20:55:53 +01:00
return user_name == self.bot_name
2016-11-12 13:37:14 +01:00
def is_bot_added(self):
2016-12-11 18:41:40 +01:00
"""
Returns True if the bot was added to group.
2016-11-12 13:37:14 +01:00
"""
new_members = self.message.new_chat_members
if new_members is None:
return False
2016-11-12 13:37:14 +01:00
return any(self.bot_name == m.username for m in new_members)