Как остановить цикл?
Допустим, у меня есть код:
@bot.command()
async def search2(inter):
time.sleep(1)
db = sqlite3.connect('users.db')
cursor = db.cursor()
cursor.execute("SELECT status FROM search WHERE id = ?", [inter.author.id])
stat = cursor.fetchone()
stat = stat[0]
if stat == 'no':
cursor.execute("UPDATE search SET status = ? WHERE id = ?", ['yes', inter.author.id])
data = datetime.now().timestamp()
embed = disnake.Embed(
title='Запущен поиск соперника...',
)
mesas = await inter.send(f"<t:{data}:R>", embed=embed)
cursor.execute("UPDATE search SET mesas = ? WHERE id = ?", [mesas.id, inter.author.id])
db.commit()
cursor.execute("SELECT id FROM search WHERE status = ?", ['yes'])
ids = cursor.fetchall()
search_yes = 'No'
while search_yes == 'No':
await asyncio.sleep(1)
for z in range(len(ids)):
if ids[z][0] == inter.author.id:
print("aut")
else:
print("noaut")
search_yes = "Yes"
await inter.send(f"Найден соперник: <@{ids[z][0]}>")
cursor.execute("UPDATE search SET status = ? WHERE id = ?", ['ingame', inter.author.id])
cursor.execute("UPDATE search SET status = ? WHERE id = ?", ['ingame', ids[z][0]])
await inter.send(f"Битва между: <@{inter.author.id}> <:CombatVersusPNGDownloadImage:1216644219238748250> <@{ids[z][0]}>")
embed = disnake.Embed(
title='Поиск закончен',
description=f'Ваш соперник: <@{ids[z][0]}>'
)
cursor.execute("SELECT mesas FROM search WHERE id = ?", [inter.author.id])
mesas = cursor.fetchone()
mesas = mesas[0]
msg = await inter.fetch_message(mesas)
await msg.edit(embed=embed)
cursor.execute("SELECT mesas FROM search WHERE id = ?", [ids[z][0]])
mesas = cursor.fetchone()
mesas = mesas[0]
msg = await inter.fetch_message(mesas)
await msg.edit(embed=embed)
cursor.execute("INSERT INTO games (players1, players2) VALUES (?,?)", [inter.author.id, ids[z][0]])
last = cursor.lastrowid
db.commit()
member = await MemberConverter().convert(inter, str(ids[z][0]))
name = f'Game #{last}'
text_channel = await inter.guild.create_text_channel(
name=name,
overwrites = {inter.guild.default_role: disnake.PermissionOverwrite(view_channel=False), inter.author: disnake.PermissionOverwrite(read_messages = True, send_messages=True, view_channel=True), member: disnake.PermissionOverwrite(read_messages = True, send_messages=True, view_channel=True)}
)
cursor.execute("UPDATE search SET channel = ? WHERE id = ?", [text_channel.id, inter.author.id])
db.commit()
if search_yes == 'Yes':
break
else:
Как остановить цикл While? Останавливается только for, но смысла 0, т.к while его заново вызывает.