Не получается определить функцию в телеграм боте на python

Суть такова: при вводе определенной команды бот должен запросить у пользователя данные и в последующим их посчитать. Я сделал второй бот с ответом на сообщения, там все работает но интегрировать в "комплексный" бот не получается. После первого запроса данных функция не запускается. Эмпирическим путем пришёл к выводу что это может быть либо из-за того что у меня if и elif понапихано либо я как-то не так использую register_next_step_handler. Объясните пожалуйста что я делаю не так. Интересует все то что должно выполняться после ввода /calls

storage = {}
def init_storage(user_id):
    storage[user_id] = dict(first_number=None, second_number=None)


def store_number(user_id, key, value):
    storage[user_id][key] = dict(value=value)


def get_number(user_id, key):
    return storage[user_id][key].get('value')
    
bot = telebot.TeleBot(config.token)

@bot.message_handler(content_types= ['text'])
@bot.message_handler(func=lambda m: True)
def start(message):
    if message.text == 'Привет' or message.text == 'привет':
        bot.send_message(message.from_user.id, 'Привет! Я бот, пока у меня мало функций, но я обязательно научусь делать что-то полезное. Напиши /help чтобы узнать мои функции')
    elif message.text == '/help':
        bot.send_message(message.from_user.id, 'Узнать погоду - /weather \n Узнать график ВК на сегодня - /chart \n Посчитать процент от поступивших - /calls')
    elif message.text == '/weather':
        bot.send_message(message.from_user.id, "Привет, погода на сегодня:\n" + voxys);
    elif message.text == '/calls':
        bot.register_next_step_handler(message, plus)


def plus(message):
    if message.text == "/calls":
       msg = bot.send_message(message, "Введите данные из отчета по трафику")
       bot.register_next_step_handler(message, msg, plus_one)
    else:
        bot.send_message(message, "Введите + чтобы начать ")
        bot.register_next_step_handler(message, plus)

def plus_one(message):
    first_number = message.text

    if not first_number.isdigit():
           msg = bot.reply_to(message, 'Enter only digits!')
           bot.register_next_step_handler(message, plus_one)
    return

    store_number(message.from_user.id, "first_number", first_number)
    bot.reply_to(message, "Введите количество принятых звонков")
    bot.register_next_step_handler(message, plus_two)

def plus_two(message):
    second_number = message.text

    if not second_number.isdigit():
           msg = bot.reply_to(message, 'Enter only digits!')
           bot.register_next_step_handler(message, plus_two)
    return

    store_number(message.from_user.id, "second_number", second_number)

    number_1 = get_number(message.from_user.id, "first_number")
    number_2 = get_number(message.from_user.id, "second_number")

    result_plus = round(int(number_2) / (int(number_1) * 30.57 / 100) * 100, 2)
    result_new = round(int(number_2) - (int(number_1) * 30.57 / 100))
    bot.reply_to(message, f"От поступивших принято: {result_plus}" + '%\n' + f"Отклонение: {result_new}")


Ответы (1 шт):

Автор решения: Евгений

Сделал, был конфликт в обработчике команд бота @bot.message_handler(func=lambda m: True), нужно было просто добавить ещё один обработчик

→ Ссылка