python273 / vk_api

Модуль для создания скриптов для ВКонтакте | vk.com API wrapper
https://pypi.org/project/vk-api/
Apache License 2.0
1.33k stars 321 forks source link

Крашатся эвенты #188

Closed Andryshik345 closed 6 years ago

Andryshik345 commented 6 years ago

После обновления либы на версию 11.2 начали крашаться эвенты user_id и chat_id при получении событий лонгполла из бесед, причем не только в моем скрипте, но я специально даже проверил на вашем экзампле (example/longpoll.py) и там тоже вылетело(скрин как раз оттуда) default

python273 commented 6 years ago

Можешь проверить фикс в #189?

Andryshik345 commented 6 years ago

Сначала вроде работало, но потом снова крашнулось

Печатает  198280981 в беседе 38
Печатает  386277338 в беседе 30
Пользователь 62938995 оффлайн VkOfflineType.AWAY
Пользователь 192401668 оффлайн VkOfflineType.AWAY
Новое сообщение:
Для меня от: 386277338 в беседе 30
Текст:  Мне надо хотя бы это понять

Traceback (most recent call last):
  File "test.py", line 76, in <module>
    main()
  File "test.py", line 34, in main
    for event in longpoll.listen():
  File "C:\Users\Андрей\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk_api\longpoll.py", line 595, in listen
    for event in self.check():
  File "C:\Users\Андрей\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk_api\longpoll.py", line 544, in check
    for raw_event in response['updates']
  File "C:\Users\Андрей\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk_api\longpoll.py", line 544, in <listcomp>
    for raw_event in response['updates']
  File "C:\Users\Андрей\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk_api\longpoll.py", line 498, in _parse_event
    return self.DEFAULT_EVENT_CLASS(raw_event)
  File "C:\Users\Андрей\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk_api\longpoll.py", line 355, in __init__
    self._parse_peer_id()
  File "C:\Users\Андрей\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk_api\longpoll.py", line 404, in _parse_peer_id
    if 'from' in self.extra_values:
TypeError: argument of type 'NoneType' is not iterable
python273 commented 6 years ago

Можешь добавить

        print(event.type)
        print(event.raw)

После for event in longpoll.listen(): и скинуть когда еще раз упадет?

Andryshik345 commented 6 years ago

Держи

VkEventType.USER_OFFLINE
[9, -46003497, 1, 1538593005]
Пользователь 46003497 оффлайн VkOfflineType.AWAY
VkEventType.USER_OFFLINE
[9, -386277338, 0, 1538593290]
Пользователь 386277338 оффлайн VkOfflineType.EXIT
VkEventType.USER_OFFLINE
[9, -145170120, 0, 1538593304]
Пользователь 145170120 оффлайн VkOfflineType.EXIT
VkEventType.USER_ONLINE
[8, -386277338, 4, 1538593299]
Пользователь 386277338 онлайн VkPlatform.ANDROID
VkEventType.USER_TYPING_IN_CHAT
[62, 265762564, 30]
Печатает  265762564 в беседе 30
Traceback (most recent call last):
  File "test.py", line 79, in <module>
    main()
  File "test.py", line 34, in main
    for event in longpoll.listen():
  File "C:\Users\Андрей\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk_api\longpoll.py", line 595, in listen
    for event in self.check():
  File "C:\Users\Андрей\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk_api\longpoll.py", line 544, in check
    for raw_event in response['updates']
  File "C:\Users\Андрей\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk_api\longpoll.py", line 544, in <listcomp>
    for raw_event in response['updates']
  File "C:\Users\Андрей\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk_api\longpoll.py", line 498, in _parse_event
    return self.DEFAULT_EVENT_CLASS(raw_event)
  File "C:\Users\Андрей\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk_api\longpoll.py", line 355, in __init__
    self._parse_peer_id()
  File "C:\Users\Андрей\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk_api\longpoll.py", line 404, in _parse_peer_id
    if 'from' in self.extra_values:
TypeError: argument of type 'NoneType' is not iterable
python273 commented 6 years ago

Понял в чем проблема, сейчас должно быть окей в #189

Andryshik345 commented 6 years ago

Да, тестил несколько часов, больше не вылетало, можешь мерджить и закрывать