如何获取和编辑discord.py中的嵌入?

时间:2020-10-01 17:00:25

标签: python discord discord.py

我希望机器人获取嵌入内容并在它们之间滚动。这是我尝试做的事情:

    @commands.command()
    async def test(self,ctx):
    
        chan = self.bot.get_channel(746339276983238677)
        message1 = await chan.fetch_message(761267709438328904)
        message2 = await chan.fetch_message(761267744721076265)
        message3 = await chan.fetch_message(761267778639495168)

        page1= message1.embeds[0]
        
        page2= message2.embeds[0]
        
        page3= message3.embeds[0]



        contents = [page1,page2,page3]
        pages = 3
        cur_page = 1
        message = await ctx.send(f"Page {cur_page}/{pages}:\n{contents[cur_page-1]}")

        await message.add_reaction("◀️")
        await message.add_reaction("▶️")

        def check(reaction, user):
            return user == ctx.author and str(reaction.emoji) in ["◀️", "▶️"]
        while True:
            try:
                reaction, user = await self.bot.wait_for("reaction_add", timeout=60, check=check)

                if str(reaction.emoji) == "▶️" and cur_page != pages:
                    cur_page += 1
                    await message.edit(content=f"Page {cur_page}/{pages}:\n{contents[cur_page-1]}")
                    await message.remove_reaction(reaction, user)

                elif str(reaction.emoji) == "◀️" and cur_page > 1:
                    cur_page -= 1
                    await message.edit(content=f"Page {cur_page}/{pages}:\n{contents[cur_page-1]}")
                    await message.remove_reaction(reaction, user)

                else:
                    await message.remove_reaction(reaction, user)
            except asyncio.TimeoutError:
                await message.delete()
                break

它不发送嵌入内容。它发送此:

enter image description here

如何获取嵌入并发送嵌入,然后如何编辑它们?

1 个答案:

答案 0 :(得分:0)

要发送嵌入,您应该使用

await ctx.send(embed=embed_variable)

将其附加到邮件中。您正在将实际的嵌入实例发送到需要字符串的位置。因此,您应该使用

await ctx.send(embed=contents[cur_page-1])

然后,您可以使用常规的嵌入方法和属性(add_fieldset_footer,...)来随意编辑它们。

相关问题