(Discord.py) 如何获取整个嵌入内容?

2022-01-15 00:00:00 python python-3.x discord discord.py

问题描述

我想获取所有嵌入内容(包括图片链接),我试过这个:

I wanna get all the embed content(including the image link), I tried this:

print(msg.embeds)

这又回来了:

[<discord.embeds.Embed object at 0x000002E48768CD30>]
[<discord.embeds.Embed object at 0x000002E48768CAF0>]
[<discord.embeds.Embed object at 0x000002E487F04040>]
[<discord.embeds.Embed object at 0x000002E48768CA60>]
[<discord.embeds.Embed object at 0x000002E48768C9D0>]
[<discord.embeds.Embed object at 0x000002E487F043A0>]

我在文档中找不到任何关于此的内容,只有关于发送嵌入的内容.

I cant find anything about that on the documentation, only about sending embeds.


解决方案

你只是得到嵌入.根据 API References,您无法使用 message.content 之类的一个函数来获取整个嵌入内容.您必须像 Embed 那样逐部分获取它.标题嵌入.descriptionEmbed.fields.

You're just getting embeds. According to API References, you can't get the whole embed content with one function like message.content. You have to get it part by part like Embed.title, Embed.description and Embed.fields.

Embed.fields 返回表示字段内容的 EmbedProxy 列表.有关您可以访问的可能值,请参阅 add_field().如果属性没有值,则返回 Empty.

Embed.fields Returns a list of EmbedProxy denoting the field contents. See add_field() for possible values you can access. If the attribute has no value then Empty is returned.

也就是说,您可以获得嵌入标题、描述以及字段的名称和值.这是一个简单的例子:

So that means, you can get embed title, description, and fields' name and value. Here's a simple example for this:

embed = discord.Embed(title='Example', description='Embed')
embed.add_field(name='field 1 name', value='field 1 value')
embed.add_field(name='field 2 name', value='field 2 value')

embed.title # returns 'Example'
embed.description # returns 'Embed'
embed.fields # returns a list of fields
embed.fields[0].name # returns 'field 1 name'
embed.fields[0].value # returns 'field 1 value'
embed.fields[1].name # returns 'field 2 name'
embed.fields[1].value # returns 'field 2 value'

相关文章