телеграм бот на aiogram и telebot не ждет, пока пользователь введет данные
Я хочу, чтобы пользователь ввел число - допустим это обычный калькулятор(1 2 3 4 - это операции сложения, вычитания, умножения, деления), затем он должен ввести первое число, потом второе, но данный код не работает(так же пытался с while, тоже что-то шло не так). Суть в том, что всегда выполняется только первая функция, потому что они обе имеют одинаковый content_types = ['text']
@bot.message_handler(content_types=['text'])
def a(message):
@bot.message_handler(content_types=['text'])
def b(message):
....
Можно ли как-то обустроить логику бота на aiogram или телебот, чтобы при вводе определенной команды бот входил в какой-то цикл и уже не реагировал на все, что вне его
Ответы (1 шт):
Да. Вы можете воспользоваться методом:
bot.register_next_step_handler(message, func),
где func - функция, в которой будет выполняться определенная операция.
Пишите условие типа:
if message.text == 1:
return bot.register_next_step_handler(message, func_add)
Затем пользователь введет число, и оно будет передано в функцию func_add. А там уже следует модифицировать код - зависит от вас :)
Либо более альтернативный вариант - отслеживайте, какой знак передал пользователь, и выполняйте функцию-обработчик.