ekonda / sketal

Бот для ВКонтакте. Беседы / группы / развлечения.
MIT License
119 stars 64 forks source link

KeyError #81

Open Noneeer opened 6 years ago

Noneeer commented 6 years ago

Ожидаемый результат (что должно было произойти, чего вы ожидали)

Фактический результат (что произошло на самом деле, что не должно было произойти или должно было произойти иначе)

Traceback (most recent call last):
  File "bot.py", line 397, in <module>
    bot.longpoll_run()
  File "bot.py", line 255, in longpoll_run
    self.loop.run_until_complete(self.main_task)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\asyncio\base_events.py", line 466, in run_u
ntil_complete
    return future.result()
  File "bot.py", line 212, in longpoll_processor
    self.values['ts'] = events['ts']
KeyError: 'ts'

Как повторить эту ошибку? (код, который вызвал ошибку, настройки)

Само собой, через некоторое время работы

Дополнительная информация (лог ошибок, какие настройки использовались, какую версию python используете)

python 3.6

astrdark commented 6 years ago

Ошибка возникает когда бот простаивает или кто-то пишет?

Noneeer commented 6 years ago

@SevastyanDark Когда простаивает (вроде)

astrdark commented 6 years ago

Это на heroku? Вполне возможно завис сервер ВК

Noneeer commented 6 years ago

@SevastyanDark Нет, это на моем сервере, еще я запускал у себя на компьютере было тоже самое.

astrdark commented 6 years ago

Попробуй запускать

python bot_runner.py

astrdark commented 6 years ago

И да, с инетом все ок?

Noneeer commented 6 years ago

@SevastyanDark С инетом все просто идеально, не может же он 10 раз подряд пропасть. Через bot_runner тоже самое.

astrdark commented 6 years ago

Ок, завтра сделаю PR

astrdark commented 6 years ago

Будет ещё плагин

astrdark commented 6 years ago

И фикс этого

astrdark commented 6 years ago

Попробуй с этими изменениями

Noneeer commented 6 years ago

@SevastyanDark Сделал все как ты сказал, тоже самое, только ошибка другая

Traceback (most recent call last):
  File "bot.py", line 400, in <module>
    bot.longpoll_run()
  File "bot.py", line 258, in longpoll_run
    self.loop.run_until_complete(self.main_task)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\asyncio\base_events.py", line 466, in run_until_complete
    return future.result()
  File "bot.py", line 216, in longpoll_processor
    for event in events['updates']:
KeyError: 'updates'
michaelkryukov commented 6 years ago

Проблема в том, что от вк пришёл пустой запрос или что-то такое. Надо узнать, что пришло и почему пустое.

Noneeer commented 6 years ago

@SevastyanDark @michaelkrukov В немного старой версии кстати такой ошибки не возникает. (Хотя работает она от токена сообщества так что не знаю)

astrdark commented 6 years ago

@michaelkrukov @Noneeer Скорее всего ВК вернул ошибку 2

"failed":2 — истекло время действия ключа, нужно заново получить key методом messages.getLongPollServer.
michaelkryukov commented 6 years ago

@SevastyanDark Это и есть обработка ответов от ВК с ошибками 1-3 https://github.com/vk-brain/sketal/blob/master/bot.py#L199