Как можно вырезать подтверждение покупки?
Есть такой вот код:
#остлеживание ивентов выпадающего списка
@commands.Cog.listener()
async def on_dropdown(self, inter: disnake.MessageInteraction):
tovar = cursor.execute(f"SELECT id, price, tovar FROM shop WHERE name = '{inter.values[0]}' AND status = 0").fetchone()
if tovar:
user = cursor.execute(f"SELECT balance, shopping FROM users WHERE id = {inter.author.id}").fetchone()
if user:
if user[0] >= tovar[1]:
embed = disnake.Embed(title='Вы точно хотите купить?', description=f'{inter.values[0]} за {tovar[1]}₽ \n У вас есть 1 минута на решение!', color=disnake.Color.from_rgb(47,49,54))
embed.set_footer(text='Проигнорируйте это сообщение если передумали')
await inter.response.send_message(embed=embed, components=[
disnake.ui.Button(label='Подтвердить', style=disnake.ButtonStyle.success, custom_id='accept', emoji='✅')
], ephemeral=True)
try:
cursor.execute(f"UPDATE shop SET status = 1 WHERE id = {tovar[0]}")
db.commit()
interb = await self.bot.wait_for('button_click', timeout=60)
balance = user[0] - tovar[1]
shopi = user[1] + 1
cursor.execute(f"UPDATE users SET balance = {balance}, shopping = {shopi} WHERE id = {inter.author.id}")
cursor.execute(f"DELETE FROM shop WHERE id = {tovar[0]}")
db.commit()
await interb.send(tovar[2], ephemeral=True)
log_channel = await self.bot.fetch_channel(logid)
embed = disnake.Embed(title="Новая покупка", description=f"Покупатель: <@{inter.author.id}> \nТовар: {inter.values[0]}", color=disnake.Color.from_rgb(47,49,54))
await log_channel.send(embed=embed)
guild = await self.bot.fetch_guild(guildid)
role = guild.get_role(roleid)
print(role, guild)
await inter.author.add_roles(role)
except:
cursor.execute(f"UPDATE shop SET status = 0 WHERE id = {tovar[0]}")
db.commit()
return
else:
await inter.response.send_message('Вам нехватает денег, пополните счёт! | /start > профиль > пополнить', ephemeral=True)
else:
cursor.execute(f"INSERT INTO users (id, shopping, balance) VALUES ({inter.author.id}, 0, 0)")
db.commit()
await inter.response.send_message('Вам нехватает денег, пополните счёт! | /start > профиль > пополнить', ephemeral=True)
else:
await inter.response.send_message('Товар уже продан.', ephemeral=True)
Не могу вырезать подтверждение т.к python толком не знаю :( Нужно чтобы при покупке сразу бот присылал товар, а не спрашивал "Хотите ли вы купить этот товар?"
Источник: Stack Overflow на русском