Ошибка в коде при запуске Telegram бота

Пишу бота под телеграм первый раз

Бот задает 3 вопроса юзеру и должен считать информацию из сообщения, получить след данные: years, days, minutes. Я получил данные, а вот на последнем этапе выдает ошибку в телеграме упс... или <function time at 0x02F1B0B8>. В командной строке все чисто, без ошибок

p.s пока не настроил кнопку "повторить" и лимиты и тд

Написал следующий код:

import config
import random

from telebot import types
 
bot = telebot.TeleBot(config.TOKEN)
 
@bot.message_handler(commands=['start'])
def welcome(message):
 
    # keyboard
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    item1 = types.KeyboardButton("Повторить")
 
    markup.add(item1)

    bot.send_message(message.chat.id, "Добро пожаловать, {0.first_name}!\nЯ - <b>{1.first_name}</b>, бот созданный во благо.".format(message.from_user, bot.get_me()),
        parse_mode='html', reply_markup=markup)

    markup = types.InlineKeyboardMarkup(row_width=2)
    item1 = types.InlineKeyboardButton("Поехали", callback_data='go')
 
    markup.add(item1)
 
    bot.send_message(message.chat.id, 'Начать тест', reply_markup=markup)
 
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
        if call.message:
            if call.data == 'go':
                bot.send_message(call.message.chat.id, 'Вопрос1')

            # remove inline buttons
            bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Начать тест",
                reply_markup=None)

@bot.message_handler(content_types=['text'])
def years   (message):
    try:
        chat_id = message.chat.id
        years = message.text
        msg = bot.send_message(message.chat.id, 'Вопрос2')
        bot.register_next_step_handler(msg, days)
    except Exception as e:
        bot.reply_to(message, 'ууупс...')

def days(message):
    try:
        chat_id = message.chat.id
        days = message.text
        msg = bot.send_message(message.chat.id, 'Вопрос3')
        bot.register_next_step_handler(msg, minutes)
    except Exception as e:
        bot.reply_to(message, 'ууупс...')

def minutes(message):
    try:
        chat_id = message.chat.id
        minutes = message.text
        time  = int((years * 52) * (days * minutes) / 60) 
        bot.send_message(message.chat.id, time)
    except Exception as e:
        bot.reply_to(message, 'ууупс...')

bot.polling(none_stop=True)

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

Автор решения: Yuriy Makarov

Чтобы посмотреть из за чего произошла ошибка, напишите везде где except Exception as e:

except Exception as e:
    print(e)

Так вы увидите какая ошибка произошла.

И разделение на разные функции не так делается, любое входящее сообщение будет отрабатываться по первой функции def years (message):, вы должны отслеживать либо через базу данных либо еще как, на какой вопрос пришел ответ от пользователя и направлять выполнение кода в нужную функцию.

→ Ссылка