使用for循环时如何不发送垃圾邮件

时间:2020-09-17 14:48:59

标签: python python-3.x discord.py discord.py-rewrite

我正在制作音乐机器人,目前我想添加一个显示队列中所有歌曲的队列命令。

upcoming = list(itertools.islice(player.queue._queue, 0, 9))
counter = 1

for song in upcoming:
    counter = counter + 1
    print(f"{counter}. {song['title']}")
    embed = discord.Embed(description=f"**{counter}**. [{song['title']}]({song['url']})")
    embed.set_thumbnail(url=self.bot.user.avatar_url)
    embed.set_author(name="Playing Next:")
    await ctx.send(embed=embed)

这是我希望的样子:

1. Song 1
2. Song 2
3. Song 3 
4. Song 4
5. Song 5 
6. Song 6
7. Song 7
8. Song 8
9. Song 9

相反,它会将每一行发送到单独的嵌入中。

1 个答案:

答案 0 :(得分:0)

您正在创建一个新的嵌入,并将其发送给循环的每次迭代。最简单的解决方案是不进入列表理解,而是将所有内容移出for循环,除了以下内容:

embed = discord.Embed(description='')

for song in upcoming:
    embed.description += f"**{counter}**. [{song['title']}]({song['url']})\n"

... other embed stuff
... await send embed