Изучаю pyletelegrambotapi. При написании бота столкнулся с проблемой. Я создал несколько if в message_handler и мне надо чтобы пользователь при попадании в один из них мог набирать текст с клавиатуры. Я попробовал написать это через else. То есть пользователь попадет в if через кнопки, вместо клавиатуры, затем в нужном месте кнопки пропадают и появляется клавиатура. И весь текст набранный с клавиатуры обрабатывается через else в message_handler. Сама проблема заключается в том, что пользователь может на любом этапе убрать кнопки и отправить текст и он обработается будто пользователь находится в определенном месте if. Мне же надо чтобы бот мог обработать введеный текст с клавиатуры только на определенном этапе (Когда он попадает в elif message.text == 'Хорошо':)
Бот:
https://t.me/lestex_bot (Чтобы перейти в нужный if надо нажать "Оставить заявку на выполнение работы" И нажать "Хорошо")
PS. Код может быть очень колхозный, только изучаю все это
@bot.message_handler(content_types=['text'])
def otvet(message):
if message.text == "Привет":
user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
user_markup.row('Чат с работами', 'Показать новости')
user_markup.row('Оставить заявку на выполнение работы')
bot.send_message(message.from_user.id, "Выбери, что ты хочешь сделать.", reply_markup=user_markup)
elif message.text == 'Чат с работами':
markup = types.InlineKeyboardMarkup()
btn_my_site = types.InlineKeyboardButton(text='Чат с работами', url='https://t.me/AnonChanBot?start=-1001502978392')
markup.add(btn_my_site)
bot.send_message(message.chat.id, "Здесь вы можете присылать работы, которые давали вам преподаватели, чтобы облегчить жизнь тем, кому их ещё не давали. Ваши сообщения АНОНИМНЫ.", reply_markup=markup)
elif message.text == "Показать новости":
bot.send_message(message.from_user.id, "Тут будут показываться новости")
elif message.text == 'Оставить заявку на выполнение работы':
user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
user_markup.row('Хорошо','Назад')
bot.send_message(message.from_user.id, "Опишите какую работу вы хотите заказать, после этого с вами свяжутся. Для связи укажите ваш номер телефона в осписании работы", reply_markup=user_markup)
elif message.text == 'Хорошо':
markup = types.ReplyKeyboardRemove(selective=False)
bot.send_message(message.from_user.id, " Пример: \nРеферат \nФилософия \nПреподователь \n1 курс \n+78007005060", reply_markup = markup)
elif message.text == 'Назад':
user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
user_markup.row('Чат с работами', 'Показать новости')
user_markup.row('Оставить заявку на выполнение работы')
bot.send_message(message.from_user.id, "Выбери, что ты хочешь сделать.", reply_markup=user_markup)
else:
bot.send_message(message.from_user.id,"Мы приняли ваши заявку✅")
user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
user_markup.row('Чат с работами', 'Показать новости')
user_markup.row('Оставить заявку на выполнение работы')
bot.send_message(message.from_user.id, "Выбери, что ты хочешь сделать.", reply_markup=user_markup)