Невозможно встроить сообщение

Итак, недавно я начал изучать discord.py, а сейчас я ищу встраивание. Кажется, что код вообще не работает. Вставил его в cmd, и он работает нормально.

@bot.command()
async def test(pass_context=True):
  embed = discord.Embed(title="CFA Pager", url="https://mazzanet.net.au/cfa/pager-cfa-all.php", description="v 0.0")
  embed.add_field(name=Type, value=type, inline=False)
  embed.add_field(name=Location, value=location, inline=False)
  embed.add_field(name=Description, value=description, inline=True)
  embed.set_footer(text="#1403903")
  await bot.say(embed=embed)

Заранее спасибо!

Измените name = Type на name = "Type". То же самое с Description и Location. Где вы определяете переменные type, description и location, которые вы передаете в аргумент ключевого слова value?

Tristo 10.09.2018 11:05

тип, описание и местонахождение не являются переменными. Это значения имени и значения, предварительно установленные переменные для ввода во встраивание. Я получил ту часть кода формы cog-creators.github.io/discord-embed-sandbox, которую я считаю правильной.

Fluz 10.09.2018 11:56

Какую ошибку вы видите при попытке вызвать команду?

Patrick Haugh 10.09.2018 15:33

Убедитесь, что функция вообще вызывается, поставив в начале инструкцию print и проверив, печатает ли она. Если он не вызывается, убедитесь, что у вас правильно установлен префикс бота.

Tim 10.09.2018 18:34
0
5
320
1

Ответы 1

  embed.add_field(name=Type, value=type, inline=False)
  embed.add_field(name=Location, value=location, inline=False)
  embed.add_field(name=Description, value=description, inline=True)

Вы не определили переменные type, location или description в опубликованном вами коде, поэтому команда выдаст NameError. Кроме того, Python ищет переменные с именами Type, Location и Description (с учетом регистра) для параметра name при каждом вызове add_field и не может их найти.

Если вы хотите использовать буквальные значения Type, Location и Description для имен полей, вам следует сделать embed.add_field(name="Type", value=value_of_type_field, inline=False) (подставляя разные значения для разных полей).

Другие вопросы по теме