некорректная работа телеграм-бота

Задумка: Вводишь дату, бот выводит праздник в этот день. При открытии бота должен появляться следующий текст:

Введите дату в формате Д.ММ и нажмите ENTER

Список праздников находится в отдельном файле. Не могу понять, что не таквведите сюда описание изображения

@bot.message_handler(content_types=['text'])
def get_text_messages(message):
    bot.send_message(message.from_user.id, "Введите дату в формате Д.ММ и нажмите ENTER")
    data = input()
    if message.text == data:
       bot.send_message(message.from_user.id, slovar.data_year.get(data))
    else:
        bot.send_message(message.from_user.id, "В этот день праздников нет. Иди работать!")


bot.polling(none_stop=True, interval=0)
import telebot
import slovar

bot = telebot.TeleBot('1770077388:AAHQa8lA-Qh1VX9X1xUJm1KRoaxwFk7uia0')
data = input()


def func(message):
    if message.text == data:
       bot.send_message(message.from_user.id, slovar.data_year.get(data))
    else:
        bot.send_message(message.from_user.id, "В этот день праздников нет. Иди работать!")


@bot.message_handler(content_types=['text'])
def get_text_messages(message):
    data = bot.send_message(message.from_user.id, "Введите дату в формате Д.ММ и нажмите ENTER")
    bot.register_next_step_handler(data, func)


bot.polling(none_stop=True, interval=0)

введите сюда описание изображения


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

Автор решения: Іван Шнір

data = input() считывает текст с командной строки, а не текст который вы вводите боту
Для того чтобы правильно всё реализовать надо использовать
bot.register_next_step_handler - эта функция ждёт ответ от пользователя

Как применить в вашем случае

Вам надо немного подправить код:

def func(message):
    try:
        bot.send_message(message.from_user.id, slovar.data_year.get(data))
    except as Exception:
        bot.send_message(message.from_user.id, "В этот день праздников нет. Иди работать!")
        print(Exception)

@bot.message_handler(content_types=['text'])
def get_text_messages(message):
    data = bot.send_message(message.from_user.id, "Введите дату в формате Д.ММ и нажмите ENTER")
    bot.register_next_step_handler(data, func)

bot.polling(none_stop=True, interval=0)

С этого выходит что bot.register_next_step_handler применяет 2 аргумента

  1. Это сообщение на которое должен ответить юзер
  2. Функция которую надо выполнить после ответа.
→ Ссылка