Моя догадка, что это из за ошибки в написании части с рандомным числом. Прошу поправить код или хотя бы дать наводку, как это исправить.
. В таблице: 4 колонки
import disnake
from disnake.ext import commands
from main import connection, cursor
import random
import pymysql
class Idenificator(commands.Cog):
def __init__(self, bot: commands.Bot):
self.bot = bot
@commands.slash_command(description="Отправка запроса на выдачу матов", test_guilds=[1222102533577900112])
async def new_token(self, inter: disnake.ApplicationCommandInteraction,
Имя_Фамилия: str,
CID: str):
try:
cursor.execute('SELECT * FROM identificator WHERE cid = ?', (CID,))
existing_user = cursor.fetchone()
if existing_user:
embed = disnake.Embed(title="Ошибка", description="Уже существует жетон зарегистрированнный для этого CID", color=disnake.Color.red())
await self.response.send_message(embed=embed)
connection.close()
return
check_db = cursor.execute('SELECT * FROM identificator WHERE token = ?', (final_number,))
number_in_database = cursor.fetchone
while number_in_database:
random_number = random.randint(0, 99999999)
formatted_number = f'{random_number:08d}'
final_number = f'{formatted_number[:4]}-{formatted_number[4:]}'
number_in_database = check_db(final_number)
cursor.execute('INSERT INTO identificator (nickname, cid, token) VALUES (?, ?, ?)', (Имя_Фамилия, CID, final_number))
connection.commit()
connection.close()
embed = disnake.Embed(title="Жетон успешно создан. Вот ваш жетон", description=f"/do На груди закреплен жетон: [Организация | Звание | {final_number}]", color=disnake.Color.green())
await self.response.send_message(embed=embed)
except Exception as e:
embed = disnake.Embed(title="Ошибка", description=f"Произошла ошибка при выполнении команды: {e}", color=disnake.Color.red())
await self.response.send_message(embed=embed)
def setup(bot: commands.Bot):
bot.add_cog(Idenificator(bot))