На всех пользователей приходится 1 переменная answer. Понимаю, что нужно работать с классом, но не могу сам разобраться. По сути, пользователь сообщает боту число и все. Не понимаю, как ответ подвязать к chat.id
import telebot
from telebot import types
bot = telebot.TeleBot('token')
@bot.message_handler(commands=['start'])
def start(message):
bot.send_message(message.chat.id, 'Привет, Я - Бот Poizon Plug! Введи стоимость в юанях')
bot.register_next_step_handler(message, cost)
def cost(message):
global answer
try:
answer = int(message.text.strip())
except ValueError:
bot.send_message(message.chat.id, 'Неверные данные. Введите стоимость в юанях')
bot.register_next_step_handler(message, cost)
return
if answer > 0:
markup = types.InlineKeyboardMarkup(row_width=2)
btn1 = types.InlineKeyboardButton('Обувь', callback_data=1)
btn2 = types.InlineKeyboardButton('Одежда', callback_data=0.5)
btn3 = types.InlineKeyboardButton('Аксессуары', callback_data=0.1)
btn4 = types.InlineKeyboardButton('Интерьер', callback_data=1.5)
markup.add(btn1, btn2, btn3, btn4)
bot.send_message(message.chat.id, 'Выберите тип айтема', reply_markup=markup)
else:
bot.send_message(message.chat.id, 'Неверные данные. Введите стоимость в юанях')
bot.register_next_step_handler(message, cost)
@bot.callback_query_handler(func=lambda call: True)
def callback(call):
value = call.data.upper()
res = (answer + 30) * 1.08 * 12.6 + 12 * 86 * float(value)
bot.send_message(call.message.chat.id, f'Получается: {round(res, 2)}. Введите стоимость другого айтема')
bot.register_next_step_handler(call.message, cost)
bot.polling(none_stop=True)