Пишу бота на питоне, на pytelegrambotapi

Проблема не решается мной на протяжении уже месяца. После команды /start выводит нужное сообщение, но потом не выводит нужную кнопку для ответа боту, я попытался это решить тем, что можно написать что-нибудь, а бот в ответ будет присылать следующее сообщение и выводить кнопки с выбором нужного жанра фильма, но всё стопорится на первом сообщении. Различные гайды, видео на ютубе, документация не помогают. Могу прислать дополнительный код и другую информацию.

btn1 = types.KeyboardButton('Привет')
@bot.message_handler(commands=['start'])
def start(message):
    markup1 = types.ReplyKeyboardMarkup(resize_keyboard=True)
    bot.send_message(message.chat.id, "Привет, я бот, который может помочь тебе выбрать фильм",
                     reply_markup=markup1)
    markup1.add(btn1)

@bot.message_handler(content_types=['text'])
def text(message):
    if message.text:
        markup2 = types.ReplyKeyboardMarkup(resize_keyboard=True)
        bot.send_message(message.from_user.id, "Выбери жанр фильма", reply_markup=markup2)
        markup2.add(btn3, btn4, btn5, btn6, btn7, btn8)

    elif message.text == 'Комедия':
        img = open(f'.\\{next(phototosend_comedy)}.jpg', 'rb')
        bot.send_photo(message.chat.id, img)
        bot.send_message(message.from_user.id, f'{next(filmtosend_comedy)}')

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

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

Добавлять кнопки на клавиатуру нужно ДО отправки сообщения

btn1 = types.KeyboardButton('Привет')
@bot.message_handler(commands=['start'])
def start(message):
    markup1 = types.ReplyKeyboardMarkup(resize_keyboard=True)
    markup1.add(btn1)
    bot.send_message(message.chat.id, "Привет, я бот, который может помочь тебе выбрать фильм",
                     reply_markup=markup1)

@bot.message_handler(content_types=['text'])
def text(message):
    if message.text:
        markup2 = types.ReplyKeyboardMarkup(resize_keyboard=True)
        markup2.add(btn3, btn4, btn5, btn6, btn7, btn8)
        bot.send_message(message.from_user.id, "Выбери жанр фильма", reply_markup=markup2)

    elif message.text == 'Комедия':
        img = open(f'.\\{next(phototosend_comedy)}.jpg', 'rb')
        bot.send_photo(message.chat.id, img)      
        bot.send_message(message.from_user.id, f'{next(filmtosend_comedy)}')
→ Ссылка