@Jjran

Как боту отправить сообщение если пользователь ничего не ввел?

Есть вот такой вопрос от бота
mes = bot.send_message(call.chat.id, text="Введите запрос:")
bot.register_next_step_handler(mes, get_data_func)

Как сделать так, что если пользователь не ввел ничего к примеру за 10 часов, то ему отправляется сообщение? Куда тут if подвязать?
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
@twistfire92
Python backend developer
Стандартными средствами этой библиотеки так не сделать.
Могу предложить альтернативу:
При регистрации register_next_step_handler передавать еще один параметр, который будет равен дате сообщения mes.date и в функцию get_data_func передавать этот параметр. В самой get_data_func проверять разницу между датой нового сообщения пользователя и датой предыдущего сообщения. Если больше 10 часов - обрывать текущий скрипт и выдавать новое сообщение.
...
    mes = bot.send_message(call.chat.id, text="Введите запрос:")
    bot.register_next_step_handler(mes, get_data_func, mes.date)
...
def get_data_func(message, date):
    if message.date-date > 36000: # 10 часов в секундах
        <тут уже ваши действия>


Минус такого подхода в том, что если пользователь забьет на бота, никакого сообщения ему не придет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы