Я хочу сделать чтобы когда вводил /a то там отображался список, который он будет получать с базы данных music.db. На данный момент он такой
Мне нужно, чтобы сверну был список названий, который будет получать с базы данных music.db Пример как это выглядит
А так же когда будет большой список названий, то нужно сделать поиск, как показано в примере, чтобы не искать в большом списке нужное название.
Если нужны еще подробности, напишите. Использую библиотеку pycord"voice" а так же disnake
Создание базы данных
conn = sqlite3.connect('music.db')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS music
(name TEXT PRIMARY KEY, path TEXT)''')
conn.commit()
conn.close()
Код команды
@commands.slash_command(name="a", description="Добавить звук")
async def a(self, ctx, название = discord.Option(str)):
conn = sqlite3.connect('music.db')
cursor = conn.cursor()
cursor.execute("SELECT path FROM music WHERE name = ?", (название,))
result = cursor.fetchone()
if result:
path = result[0]
if ctx.author.voice:
channel = ctx.author.voice.channel
voice_client = await channel.connect()
voice_client.play(discord.FFmpegPCMAudio(path), after=lambda e: print(f'Звук воспроизведен {название}'))
emb = discord.Embed(title = 'Звук', colour = discord.Color.green() )
await ctx.channel.purge(limit=1)
emb.set_footer(text = f'Вы запустили звук')
await ctx.respond(embed=emb)
await ctx.delete(delay=10)
while voice_client.is_playing():
await asyncio.sleep(1)
await voice_client.disconnect()
else:
emb = discord.Embed(title = 'Звук', colour = discord.Color.red() )
await ctx.channel.purge(limit=1)
emb.set_footer(text = f'Вы не подключены к голосовому каналу. ')
await ctx.respond(embed=emb)
await ctx.delete(delay=10)
else:
emb = discord.Embed(title = 'Звук', colour = discord.Color.red() )
await ctx.channel.purge(limit=1)
emb.set_footer(text = f'Аудиофайл с таким названием не найден.')
await ctx.respond(embed=emb)
await ctx.delete(delay=10)
conn.close()