@@ -256,7 +256,7 @@ class VkChatEventType(IntEnum):
256256
257257
258258MESSAGE_EXTRA_FIELDS = [
259- 'peer_id' , 'timestamp' , 'subject ' , 'text ' , 'attachments' , 'random_id'
259+ 'peer_id' , 'timestamp' , 'text ' , 'extra_values ' , 'attachments' , 'random_id'
260260]
261261MSGID = 'message_id'
262262
@@ -271,7 +271,7 @@ class VkChatEventType(IntEnum):
271271 VkEventType .READ_ALL_OUTGOING_MESSAGES : ['peer_id' , 'local_id' ],
272272
273273 VkEventType .USER_ONLINE : ['user_id' , 'extra' , 'timestamp' ],
274- VkEventType .USER_OFFLINE : ['user_id' , 'extra ' , 'timestamp' ],
274+ VkEventType .USER_OFFLINE : ['user_id' , 'flags ' , 'timestamp' ],
275275
276276 VkEventType .PEER_FLAGS_RESET : ['peer_id' , 'mask' ],
277277 VkEventType .PEER_FLAGS_REPLACE : ['peer_id' , 'flags' ],
@@ -339,10 +339,11 @@ def __init__(self, raw):
339339 self .peer_id = None
340340 self .flags = None
341341 self .extra = None
342+ self .extra_values = None
342343
343344 try :
344- self .type = VkEventType (raw [0 ])
345- self ._list_to_attr (raw [1 :], EVENT_ATTRS_MAPPING [self .type ])
345+ self .type = VkEventType (self . raw [0 ])
346+ self ._list_to_attr (self . raw [1 :], EVENT_ATTRS_MAPPING [self .type ])
346347 except ValueError :
347348 pass
348349
@@ -379,8 +380,10 @@ def __init__(self, raw):
379380 if self .timestamp :
380381 self .datetime = datetime .utcfromtimestamp (self .timestamp )
381382
382- def _list_to_attr (self , raw , attrs ):
383+ if self .extra_values :
384+ self ._dict_to_attr (self .extra_values )
383385
386+ def _list_to_attr (self , raw , attrs ):
384387 for i in range (min (len (raw ), len (attrs ))):
385388 self .__setattr__ (attrs [i ], raw [i ])
386389
@@ -389,7 +392,6 @@ def _dict_to_attr(self, values):
389392 self .__setattr__ (k , v )
390393
391394 def _parse_peer_id (self ):
392-
393395 if self .peer_id < 0 : # Сообщение от/для группы
394396 self .from_group = True
395397 self .group_id = abs (self .peer_id )
@@ -416,7 +418,6 @@ def _parse_peer_flags(self):
416418 )
417419
418420 def _parse_message (self ):
419-
420421 if self .flags & VkMessageFlag .OUTBOX :
421422 self .from_me = True
422423 else :
@@ -436,7 +437,6 @@ def _parse_online_status(self):
436437 pass
437438
438439 def _parse_chat_info (self ):
439-
440440 if self .type_id == VkChatEventType .ADMIN_ADDED .value :
441441 self .info = {'admin_id' : self .info }
442442
@@ -524,7 +524,7 @@ def check(self):
524524 'ts' : self .ts ,
525525 'wait' : self .wait ,
526526 'mode' : self .mode ,
527- 'version' : 1
527+ 'version' : 3
528528 }
529529
530530 response = self .session .get (
0 commit comments