Учусь писать ботов на Python. Для примера выбрал бот-обменник для биржи exmo. Когда обращаюсь к боту один, всё работает нормально, но когда с нескольких акков одновременно, бот путает переменные и выдаёт неверные данные, помогите, кто может)
import config
import mail
import exmo_exchange
import telebot
from telebot import types
from random import randint
bot=telebot.TeleBot(config.token)
keyboard1=telebot.types.ReplyKeyboardMarkup(True)
keyboard1.row('EXMO')
keyboard2=telebot.types.ReplyKeyboardMarkup(True)
keyboard2.row('Да',' Нет')
keyboard3=telebot.types.ReplyKeyboardMarkup(True)
keyboard3.row('Я ОПЛАТИЛ')
summi_coda_i_plati=[]
@bot.message_handler(commands=['start'])
def start_messages(message):
msg=bot.send_message(message.chat.id, 'Привет, что хотите обменять?: ',reply_markup=keyboard1)
@bot.message_handler(content_types=["text"])
def send_text(message):
try:
if message.text.lower()=='exmo':
msg=bot.send_message(message.chat.id,'Введите сумму в EXMO')
elif message.text.lower()=='btc':
msg=bot.send_message(message.chat.id,'Введите сумму в BTC')
bot.register_next_step_handler(msg, send_digit)
except Exception as e:
bot.reply_to(message,'Чтобы начать сначала нажмите "/start"')
@bot.message_handler(content_types=["text"])
def send_digit (message):
summ=message.text
if summ.isdigit():
summi_coda_i_plati.append(int(summ))
summ2=int(summ)*1.10
summ3=int(summ2)+randint(-3,+9)
summi_coda_i_plati.append(str(summ3))
otvet=str(summ3)+' рублей на карту'
msg=bot.send_message(message.chat.id,otvet)
msg=bot.send_message(message.chat.id,' Готов?',reply_markup=keyboard2)
bot.register_next_step_handler(msg, send_number)
else:
msg=bot.send_message(message.chat.id,'Вы ввели некорректные данные. Чтобы начать сначала, нажмите "/start"')
bot.register_next_step_handler(msg, start_messages)
@bot.message_handler(content_types=["text"])
def send_number (message):
if message.text.lower()=='да':
number='5536 9137 7601 0502'
otvet='Переведите на номер карты "Тинькофф ": '+number+''' указанную выше сумму.
После оплаты нажмите ОДИН РАЗ "Я ОПЛАТИЛ" и ждите получения кода.
Как только средства поступят, бот выдаст код. Не нужно жать кнопку несколько раз.
ПЕРЕВОДИТЕ ТОЧНО ТУ СУММУ, ЧТО УКАЗАНА БОТОМ, ИНАЧЕ ВОЗНИКНУТ СЛОЖНОСТИ С ВЫДАЧЕЙ КОДА'''
msg=bot.send_message(message.chat.id, otvet,reply_markup=keyboard3 )
bot.register_next_step_handler(msg, send_code)
else:
msg=bot.send_message(message.chat.id, 'Чтобы начать сначала нажмите "/start" ')
bot.register_next_step_handler(msg, start_messages)
@bot.message_handler(content_types=["text"])
def send_code(message):
if message.text.lower()=='я оплатил':
user_id=message.from_user.id
name_of_user=message.from_user.username
excode_to_send=mail.email_check(summi_coda_i_plati[0],summi_coda_i_plati[1])
msg=bot.send_message(message.chat.id,excode_to_send)
bot.polling()