Как сделать ввод данных в pyTelegramBotAPI
Нужно что бы функция продолжила выполнение, только при условии того, что пользователь отправил сообщение. Заранее спасибо!
Ответы (2 шт):
Автор решения: shalor1k
→ Ссылка
bot = telebot.TeleBot(config.token)
car_list = ['toyota', 'mazda']
#Список возможных машин
@bot.message_handler(commands=['start'])
def answer(message):
if message.text == '/start':
bot.send_message(message.chat.id, 'Введите марку машины:')
else:
bot.send_message(message.chat.id, 'Я вас не понимаю')
@bot.message_handler(content_types=["text"])
if message.text in car_list:
bot.send_message(message.chat.id, 'Информация о вашей машине:...')
else:
bot.send_message(message.chat.id, 'Укажите модель машины , а не вашего НЛО')
Автор решения: betepok
→ Ссылка
Может вы и решили проблему, но попробую помочь.
Вкратце, у бота есть функция bot.register_next_step_handler() которая используется для построения цепей.
Разработчик включил в список этот пример https://github.com/eternnoir/pyTelegramBotAPI/blob/master/examples/step_example.py
Оставлю пример как в вашем случае.
def answer(message):
if message.text == '/start':
bot.send_message(message.chat.id, 'Введите марку машины:')
bot.register_next_step_handler(message, car_name)
def car_name(message):
text = message.text
if text == "lada":
bot.send_message(message.chat.id, "Неплохой выбор)")