Skip to content

Commit 9fd2c69

Browse files
Igorpython273
authored andcommitted
Add chat event 4, fix NOTIFICATION_SETTINGS_UPDATE (#169)
* Add chat event 4, fix NOTIFICATION_SETTINGS_UPDATE
1 parent ab09080 commit 9fd2c69

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

vk_api/longpoll.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,9 @@ class VkChatEventType(IntEnum):
233233
#: Назначен новый администратор
234234
ADMIN_ADDED = 3
235235

236+
#: Изменены настройки беседы
237+
SETTINGS_CHANGED = 4
238+
236239
#: Закреплено сообщение
237240
MESSAGE_PINNED = 5
238241

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

285288
VkEventType.MESSAGES_COUNTER_UPDATE: ['count'],
286-
VkEventType.NOTIFICATION_SETTINGS_UPDATE: [
287-
'peer_id', 'sound', 'disabled_until'
288-
]
289+
VkEventType.NOTIFICATION_SETTINGS_UPDATE: ['values']
289290
}
290291

291292

@@ -350,7 +351,14 @@ def __init__(self, raw):
350351

351352
if self.type is VkEventType.CHAT_UPDATE:
352353
self._parse_chat_info()
353-
self.type = VkChatEventType(self.type_id)
354+
try:
355+
self.update_type = VkChatEventType(self.type_id)
356+
except ValueError:
357+
self.update_type = self.type_id
358+
359+
elif self.type is VkEventType.NOTIFICATION_SETTINGS_UPDATE:
360+
self._dict_to_attr(self.values)
361+
self._parse_peer_id()
354362

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

384+
def _dict_to_attr(self, values):
385+
for k, v in six.iteritems(values):
386+
self.__setattr__(k, v)
387+
376388
def _parse_peer_id(self):
377389

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

0 commit comments

Comments
 (0)