@YeaNot

Как ограничить отправку в боте Telegram?

@bot.message_handler принимает сообщение с текстом от пользователя, и бот присылает обратно некоторые сообщения.
Но если во время отправки пользователь что-то напишет, бот начнёт сходить с ума.
Можно ли ввести ограничение, чтобы бот обрабатывал любое другое сообщение лишь после того, как выполнить все необходимые алгоритмы по первому сообщению?

И если пользователь моментально отправит 2 сообщения, можно сделать так, чтобы бот обрабатывал либо только 1-е, либо только последнее?
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 1
@o5a
Без кода сложно что-то однозначное сказать, но можете выставлять статус по пользователям (хотя бы просто словарь с данными). Обработка началась - выставляете пользователю статус, что обрабатывается запрос. И пока статус стоит, другая команда не выполняется. По окончании обработки статус сбрасывается. Условно:
user_status = {}

@bot.message_handler ...
def process_something(message):
    if user_status.get(message.from_user.id, 0) == 0:
        user_status[message.from_user.id] == 1
        start_our_process()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы