keepmeblind
@keepmeblind
Учусь писать хоть что-то

Бот перестаёт отвечать после возврата в главное меню, как исправить?

Здравствуйте, у меня возникла проблема с ботом, отвечает на команды, всё хорошо, но потом, после возврата к главному меню перестаёт отвечать, до тех пор, пока снова не пропишешь /start, подскажите, как исправить. Вот код

import telebot

from telebot import types

bot = telebot.TeleBot('токен')
to_chat_id = ([''id'])


@bot.message_handler(commands=['start'])
def start(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn1 = types.KeyboardButton("Поздороваться")
    btn2 = types.KeyboardButton('❓Задать вопрос')
    markup.add(btn1, btn2)
    bot.send_message(message.chat.id,
                     text="Привет, я - бот, созданный специально для тебя, выбери, чем я могу помочь сегодня",
                     reply_markup=markup)


@bot.message_handler(content_types=['text'])
def func(message):
    if message.text == "Поздороваться":
        bot.send_message(message.chat.id, text="Привеееет... Спасибо, что заглянул ко мне сегодня, я очень счастлив.")

    elif message.text == '❓Задать вопрос':
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        btn1 = types.KeyboardButton('Как тебя зовут ?')
        btn2 = types.KeyboardButton('Что ты умеешь делать ?')
        btn3 = types.KeyboardButton('Как твоё настроение ?')
        back = types.KeyboardButton('Вернуться в главное меню')
        markup.add(btn1, btn2, btn3, back)
        bot.send_message(message.chat.id, text='Я тебя внимательно слушаю', reply_markup=markup)


    elif message.text == 'Как тебя зовут ?':
        bot.send_message(message.chat.id,
                         text='К сожалению, разработчик мне не дал имени')

    elif message.text == 'Что ты умеешь делать ?':
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        btn1 = types.KeyboardButton('Прислать рандомную песню')
        btn2 = types.KeyboardButton('Прислать рандомное число')
        btn3 = types.KeyboardButton('Отправить рандомную фотографию')
        back = types.KeyboardButton('Вернуться в главное меню')
        markup.add(btn1, btn2, btn3, back)
        bot.send_message(message.chat.id, text='Вот пока что, то, что я умею', reply_markup=markup)

    elif message.text == 'Как твоё настроение ?':
        bot.send_message(message.chat.id,
                         text='У меня всегда хорошее настроение, так как на другое, я не запрограммирован')

    elif message.text == "Вернуться в главное меню":
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        button1 = types.KeyboardButton(" Поздороваться")
        button2 = types.KeyboardButton("❓ Задать вопрос")
        markup.add(button1, button2)
        bot.send_message(message.chat.id, text="Вы вернулись в главное меню", reply_markup=markup)





bot.polling(none_stop=True, interval=0)
  • Вопрос задан
  • 159 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
button1 = types.KeyboardButton(" Поздороваться")
button2 = types.KeyboardButton("❓ Задать вопрос")

Сравни это с реализацией команды /start. У тебя тут посторонние пробелы, а сравнение строк требует ТОЧНОГО совпадения. В твоём коде - вплоть до регистра букв.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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