Задать вопрос
x4zx
@x4zx
python developer

Как создать список треков?

пишу музыкального бота, на данный момент столкнулся с проблемой, при вызове команды "play" бот проигрывает музыку, соответственно это заносится в очередь и каждый трек под своим номером. Но получилось так что часть кода почему-то не работает и при вводе команды для получения списка треков "queue" все треки имеют номер 1

Код:

@commands.command()
    async def queue(self, ctx):
        """Retrieve a basic queue of upcoming songs."""
        vc = ctx.voice_client

        if not vc or not vc.is_connected():
            embed = discord.Embed(title = "", description = "Я не подключен к голосовому каналу.", colour = 0x9370DB)
            return await ctx.send(embed = embed)

        player = self.get_player(ctx)
        if player.queue.empty():
            embed = discord.Embed(title = "", description="Очередь пуста.", colour = 0x9370DB)
            return await ctx.send(embed = embed)

        seconds = vc.source.duration % (24 * 3600) 
        hour = seconds // 3600
        seconds %= 3600
        minutes = seconds // 60
        seconds %= 60
        if hour > 0:
            duration = "%d:%02d:%02d" % (hour, minutes, seconds)
        else:
            duration = "%02d:%02d" % (minutes, seconds)

        # Grabs the songs in the queue...
        upcoming = list(itertools.islice(player.queue._queue, 0, int(len(player.queue._queue))))
        fmt = '\n'.join(f"`{(upcoming.index(_)) + 1}.` [{_['title']}]({_['webpage_url']}) | Запросил: {_['requester']}\n" for _ in upcoming)
        embed = discord.Embed(title = f'Очередь для {ctx.guild.name}', description = fmt, colour = 0x9370DB)
        embed.set_footer(text = f"{ctx.author}", icon_url = ctx.author.avatar_url)

        await ctx.send(embed = embed)
  • Вопрос задан
  • 89 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
> upcoming.index(_)
Попробуй использовать enumerate() для нумерации элементов списка (или иной коллекции).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽