【问题标题】:Discord.py embed indentingDiscord.py 嵌入缩进
【发布时间】:2020-11-01 20:54:41
【问题描述】:

如何在 discord.Embed 中缩进文本?我想为我的机器人编写一个自定义帮助命令,并且我希望它的字段缩进类似于默认帮助命令。我尝试了一些方法,但没有一个对我有用:

  1. 我尝试将'\t' 放在描述前面。

  2. 我尝试在初始化期间将嵌入的 'type' 属性从 'rich' 更改为其他任何内容,但我不知道应该使用什么。

  3. 在我第二次尝试之后,我认为嵌入可能是 rtf 格式,所以我尝试将 '\tab' 放在描述前面。

  4. 最后我尝试在描述前加几个空格,但也没有用。

我应该使用一个特殊的字符/函数来在我的嵌入中放置缩进吗?或者我应该以某种方式更改嵌入的类型?我认为不和谐机器人的默认帮助命令使用不同的类型,但我不确定。我想知道如何缩进我的嵌入以及是否有任何其他类型的嵌入。

【问题讨论】:

  • 我不确定,但问题可能是因为 Discord。我知道 Discord 倾向于尽可能多地剥离字符串,删除消息和昵称中的前导空格,因此它也可能影响嵌入消息。您可以尝试使用 Discord 不会删除的不可见字符(我可以使用 emptycharacter.com 上的第二种方法成功地手动缩进一条消息,所以值得一试)
  • 我不知道是否有缩进字段的正确方法,但您可以将空格替换为\u200b,这是一个空白字符。不用多次写,可以"\u200b"*20,相当于20个空格。
  • 我试过了,但对我也不起作用。这可能是因为我嵌入的类型。因为默认帮助命令的嵌入有缩进,所以它的字体也不同。
  • 从官方Discord API documentation可以看出,除了“rich”之外,没有太多适合你需要的类型(也许是文章?) 至于discord.py自动生成的帮助信息,他们不是嵌入,只是由三重反引号 ``` 包围的常规消息(这是代码块的 Markdown 样式)
  • 你也许可以使用像这样的特殊字符:> 

标签: python discord.py


【解决方案1】:

这是我的解决方案,希望它有效!

方法: '''多行文字''' https://www.geeksforgeeks.org/multi-line-printing-in-python/

代码,包括嵌入的其他部分:

embedVar = discord.Embed(title='Testing', description='a stack overflow demo', color=0xffd800)
embedVar.set_author(name='This is an example',icon_url='https://lh3.googleusercontent.com/a-/AOh14Gh_nGxn9KBYTRFXmtEo0O9Xl1iwzD1tVsfMtdJO=k-s64')
embedVar.set_thumbnail(url="https://images-ext-1.discordapp.net/external/VbfwnzN2MM794XNccNxDzrB1YeuPrxR53y11bwRfflY/%3Fv%3D73d79a89bded/https/cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon%402.png?width=80&height=80")
embedVar.add_field(name='''hello!
    hello''', value='hello', inline=False)
#embedVar.add_field(name='', value='', inline=False)
#embedVar.set_footer(text='',icon_url='')
#embedVar.set_image(url='')
channel = bot.get_channel(<ID>)
await channel.send(embed=embedVar)

这是我做多行文本的字段。

embedVar.add_field(name='''hello!
    hello''', value='hello', inline=False)

希望这行得通! 这段代码的输出:

hello!
    hello

如果它给你这个\/错误,可能是因为我审查了部分代码。

discord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In embed.fields.0.value: This field is required

除此之外,祝你早日/晚安,感谢您耐心阅读我的回答(我没有足够的声誉来评论澄清?)

【讨论】:

  • 遗憾的是,它仅适用于字段的标题(名称)。它不适用于字段的值。虽然我认为缩进 Discord.embed 字段是不可能的。但是您的解决方案是一个很好的解决方法,所以谢谢。
  • 也许可以尝试在行首使用大于号的描述块引用
猜你喜欢
  • 2022-01-01
  • 2020-12-09
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 2021-11-29
  • 2021-02-28
  • 2020-06-17
相关资源
最近更新 更多