Код выдаёт варн через команду /warn и заносит в БД, но высылает ошибку на команде /unwarn, помогите.
@bot.event
async def on_ready():
print('Бот готов к работе')
bot.db = await aiosqlite.connect('warning.db')
await asyncio.sleep(3)
async with bot.db.cursor() as cursor:
await cursor.execute("CREATE TABLE IF NOT EXISTS warns(user INTEGER, reason TEXT, time INTEGER, guild INTEGER)")
await bot.db.commit()
async def addwarn(ctx, reason, user):
async with bot.db.cursor() as cursor:
await cursor.execute("INSERT INTO warns (user, reason, timik, guild) VALUES (?, ?, ?, ?)", (user.id, reason, int(datetime.datetime.now().timestamp()), ctx.guild.id))
await bot.db.commit()
@bot.slash_command(description="Выдача варна")
@commands.has_any_role(1011771434185535518)
async def warn(ctx, user: disnake.Member, *, reason: str = "Причина не указана"):
await addwarn(ctx, reason, user)
await ctx.send(f"Вы выдали предупреждение пользователю <@{user.id}> по причине {reason}")
@bot.slash_command(description="Забрать варн")
@commands.has_any_role(1011771434185535518)
async def unwarn(ctx, user: disnake.Member):
async with bot.db.cursor() as cursor:
await cursor.execute('SELECT reason FROM warns user = ? AND guild = ?', (user.id, ctx.guild.id))
data = await cursor.fetchone()
if data:
await cursor.execute('DELETE FROM warns WHERE user = ? AND guild = ?', (user.id, ctx.guild.id))
await ctx.send(f"Вы забрали предупреждение у пользователя <@{user.id}>")
else:
await ctx.send(f"Предупреждения у пользователя <@{user.id}> не были найдены.")