Таймер для бота ВК

Хотел бы сделать некий таймер для своего бота для бесед ВК. Таймер в плане того, что если сообщением слишком часто флудят (к примеру по несколько раз в 10 секунд), то бот автоматически выключался (exit () )


Ответы (1 шт):

Автор решения: Hypick

можно реализовать таймер вот так:

messages = 0
t = time.time()

if (time.time() - t) >= 10: # за какое время будет проверять определенное кол-во смс
    t = time.time()
    messages = 0
elif messages >= 5: # за какое кол-во сообщений будет выключаться бот
    exit()
else:
    messages += 1

весь код:

import vk_api, traceback, time
from vk_api.bot_longpoll import VkBotEventType

vk_session = vk_api.VkApi(token='token')
vk = vk_session.get_api()
longpoll = vk_api.bot_longpoll.VkBotLongPoll(vk_session, id, wait=25)

messages = 0
t = time.time()
while True:
    try:
        print("Работаем")
        for event in longpoll.listen():
            if event.type == VkBotEventType.MESSAGE_NEW:
                if (time.time() - t) >= 10: # за какое время будет проверять определенное кол-во смс
                    t = time.time()
                    messages = 0
                elif messages >= 5: # за какое кол-во сообщений будет выключаться бот
                    exit()
                messages += 1

    except Exception:
        print(traceback.format_exc())
→ Ссылка