@@ -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