Multiplayer call to Telegram bot - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Multiplayer call to Telegram bot (/thread-28014.html) |
Multiplayer call to Telegram bot - AlexSn2020 - Jul-01-2020 I'm writing a telegram-bot. It checks the email box(common to all), and if it finds the set parameters then returns some information to the user and delete this email that contains this parameters. So the problem is this: when I call this bot alone, everything's alright, but if I cal it from several accounts at the same time, it doesn't work correctly. It either doesn't send the information, or sends it incorrectly. It sends the info which belongs to other user. I can't solve this? Can anybody advise me something? Sorry for my Ruslish))) RE: Multiplayer call to Telegram bot - Larz60+ - Jul-01-2020 please post your code RE: Multiplayer call to Telegram bot - AlexSn2020 - Jul-01-2020 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() |