У меня есть бот, который принимает от пользователя адрес на кошелек на бирже. И вставляет этот адрес в конец ссылки и парсит оттуда цифру, сохраняет результат в xlsx файл и отправляет пользователю. У меня такая проблема, если один и тот же пользователь заново отправит адресы то бот добавит результаты в прежни файл, и отправит пользователю. Мне надо что-бы бот перезаписывал данные в файл. Вторая проблема если два пользователя отправят одновременно адресы то бот сохраняет адресы двух пользователей в один файл и отправляет обеим. Есть ли способ что бы бот обслуживал юзереов по очереди или не знаю хоть какое то решение.
import requests
import telebot
import pandas as pd
bot = telebot.TeleBot(',,,')
HEADERS = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36",
"Accept-Language": "ru,en-US;q=0.9,en;q=0.8,ru-RU;q=0.7"
}
@bot.message_handler(commands=['start'])
def start(message):
global user_id
user_id = message.from_user.id
msg = bot.send_message(message.chat.id,'Здравствуйте, отправьте адреса кошельков что бы между адресами был пробел(запятая и перевод строки не подходят),')
bot.register_next_step_handler(msg, sender)
urls_list = []
price_list = []
@bot.message_handler(func=lambda m: True)
def sender(message):
user_id = message.from_user.id
number = (len(message.text.split(' ')))
for count in range(0,number):
addresses = message.text.split(' ')[count]
response = requests.get(url = f'https://api.debank.com/hi/user/info?id={addresses}', headers=HEADERS).text
price = response.split('"usd_value":')[1].split(',')[0].split('.')[0]
print(price)
urls_list.append('https://debank.com/profile/' + addresses)
price_list.append(price)
df = pd.DataFrame ({'urls':urls_list,'amounts':price_list})
df.to_excel(f'D:\PYTHON\DeBank\{user_id}.xlsx', sheet_name='Info', index=False)
file = open(f'D:\PYTHON\DeBank\{user_id}.xlsx','rb')
bot.send_document(message.chat.id,file)
bot.infinity_polling(skip_pending = True)