В каком виде и где хранить embed сообщения?
У меня embed сообщения хранятся в коде в следующем виде:
emb = disnake.Embed(description = '```hello world!```', colour = disnake.Color.blue()
хочу узнать лучший способ хранения embed сообщений вне кода и пример их вызова из какого либо файла. Были идеи делать это в config.ini или просто txt но вызов в коде у меня получался довольно громоздким.
Ответы (1 шт):
Автор решения: denisnumb
→ Ссылка
У всех объектов типа discord.Embed есть метод to_dict(), который преобразует класс в словарь. А полученный словарь можно затем преобразовать в JSON и сохранить в файл.
Пример:
embed = discord.Embed(title='Заголовок', description='Описание', color=discord.Color.gold())
embed.add_field(name='Поле 1', value='Значение 1', inline=False)
embed.add_field(name='Поле 2', value='Значение 2', inline=True)
embed_data = embed.to_dict()
print(json.dumps(embed_data, indent=4, ensure_ascii=False))
Вывод:
{
"fields": [
{
"name": "Поле 1",
"value": "Значение 1",
"inline": false
},
{
"name": "Поле 2",
"value": "Значение 2",
"inline": true
}
],
"color": 15844367,
"type": "rich",
"description": "Описание",
"title": "Заголовок"
}
И точно также обратно из словаря можно получить embed, при помощи метода класса discord.Embed.from_dict():
embed = discord.Embed.from_dict(embed_data)