bot.message_handler Бот не считывает введенные пользователем данные
После команды "старт" в боте отображается 2 кнопки на выбор, после нажатия бот должен начать запрашивать данные для ввода, обрабатывать и выводить результат. По отдельности все работает, но как только я пытаюсь объединить все, то вводимые вручную данные бот не обрабатывает. Предполагаю, что в @bot.message_handler(content_types=['text']) заложена обработка только двух конкретных текстов, а другие данные не распознаются. Но не могу найти пути решения. Только вчера начал изучить питон, видимо, слишком глубоко залез без базовых знаний. Буду благодарен, если кто-то подскажет в каком направлении копать.
#бот обрабатывает нажатие на одну из кнопок, после запрашивает данные от пользователя
@bot.message_handler(content_types=['text'])
def bot_message(message):
if message.chat.type == 'private':
# Первый вариант вычислений
if message.text == 'Кнопка 1':
def first(pm):
sent_msg = bot.send_message(pm.chat.id, '<b>Введите первое число:</b>',
parse_mode='html')
bot.register_next_step_handler(sent_msg, n_handler)
def n_handler(pm):
n = pm.text
sent_msg = bot.send_message(pm.chat.id, '<b>Введите второе число:</b>', parse_mode='html')
bot.register_next_step_handler(sent_msg, average_handler,
n)
def average_handler(pm, n):
average = pm.text
bot.send_message(pm.chat.id, f'<b>Результат вычислений:</b>', parse_mode='html')
texts = list()
x = 4.0
while x < 5.01:
if float(average) >= x:
pass
else:
averageNew = x - 0.049
# min
average1 = float(average) + 0.049
n5 = (averageNew - float(average1)) * int(n) / (5 - averageNew)
if math.ceil(n5) < 1:
n5 = 1
else:
n5 = math.ceil(n5)
# max
average2 = float(average) - 0.049
nN = (averageNew - float(average2)) * int(n) / (5 - averageNew)
if math.ceil(nN) < 1:
pass
else:
nN = math.ceil(nN)
# запись расчетов
if nN == n5:
texts.append(f"{round(x, 2)} — {nN} шт.")
else:
texts.append(f"{round(x, 2)} — {n5}-{nN} шт.")
x += 0.1
bot.send_message(pm.chat.id, "\n".join(texts), parse_mode='html')
# Второй вариант вычислений
elif message.text == 'Кнопка 2':
bot.send_message(message.chat.id, '<b>В разработке.</b>', parse_mode='html')