Skip to content

Commit

Permalink
Add chat event 4, fix NOTIFICATION_SETTINGS_UPDATE (#169)
Browse files Browse the repository at this point in the history
* Add chat event 4, fix NOTIFICATION_SETTINGS_UPDATE
  • Loading branch information
Igor authored and python273 committed Aug 28, 2018
1 parent ab09080 commit 9fd2c69
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions vk_api/longpoll.py
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,9 @@ class VkChatEventType(IntEnum):
#: Назначен новый администратор
ADMIN_ADDED = 3

#: Изменены настройки беседы
SETTINGS_CHANGED = 4

#: Закреплено сообщение
MESSAGE_PINNED = 5

Expand Down Expand Up @@ -283,9 +286,7 @@ class VkChatEventType(IntEnum):
VkEventType.USER_CALL: ['user_id', 'call_id'],

VkEventType.MESSAGES_COUNTER_UPDATE: ['count'],
VkEventType.NOTIFICATION_SETTINGS_UPDATE: [
'peer_id', 'sound', 'disabled_until'
]
VkEventType.NOTIFICATION_SETTINGS_UPDATE: ['values']
}


Expand Down Expand Up @@ -350,7 +351,14 @@ def __init__(self, raw):

if self.type is VkEventType.CHAT_UPDATE:
self._parse_chat_info()
self.type = VkChatEventType(self.type_id)
try:
self.update_type = VkChatEventType(self.type_id)
except ValueError:
self.update_type = self.type_id

elif self.type is VkEventType.NOTIFICATION_SETTINGS_UPDATE:
self._dict_to_attr(self.values)
self._parse_peer_id()

elif self.type is VkEventType.PEER_FLAGS_REPLACE:
self._parse_peer_flags()
Expand All @@ -373,6 +381,10 @@ def _list_to_attr(self, raw, attrs):
for i in range(min(len(raw), len(attrs))):
self.__setattr__(attrs[i], raw[i])

def _dict_to_attr(self, values):
for k, v in six.iteritems(values):
self.__setattr__(k, v)

def _parse_peer_id(self):

if self.peer_id < 0: # Сообщение от/для группы
Expand Down

0 comments on commit 9fd2c69

Please sign in to comment.