Задать вопрос
@ZERRITO
Пустой ноль

Как редактировать изображение в Embed?

У меня есть код
embed = Embed(title='Image')
embed.set_image(url='https://logos-world.net/wp-content/uploads/2020/12/Discord-Logo.png') # Прикрепляет изображение по ссылке
m = await ctx.send(embed=embed)
embed = Embed(title='Image')
embed.set_image(url='attachment://C:/Users/PC/Desktop/card.png') # Пытаюсь прикрепить изображение с диска
await m.edit(embed=embed) # Обновляю

Но проблема в том, что при обновлении остаётся только текст эмбеда, а все изображения исчезают.
Облазил кучу форумов, но у всех проблема только с отправкой изображения, а проблемы схожей с моей нет.
  • Вопрос задан
  • 325 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
retUrn3d
@retUrn3d
Пользователь, просто пользователь...
Суть в том, что discord не позволяет прикреплять файлы с компьютера напрямую.
Однако, это ограничение можно обойти, сначала отправляя файл в какой-то канал, а после тыкая с него ссылку на файл.
Сделал для вас топорную, но весьма наглядную демонстрацию.
@bot.command()
async def test(ctx):
    emb = discord.Embed(title="Image", colour=discord.Color.purple()) # Инициализируем Embed, который будет изменен.
    emb.set_image(url='https://i.imgur.com/mtKT52F.jpeg') # Прикрепляем к Embed'у изображение из интернетов.
    res = await ctx.send(embed=emb)
    new_emb = res.embeds[0] # Получаем наш Embed из первого сообщения.
    file = discord.File('ImageInPc.png', filename="ImageToDiscord.png")
    img_msg = await ctx.send(file=file) # Отправляем картинку в канал, чтобы после этого получить на нее ссылку.
    await asyncio.sleep(5) # Спим для наглядности.
    new_emb.set_image(url=img_msg.attachments[0].url) # img_msg.attachments[0].url - Искомая ссылка на файл.
    await res.edit(embed=new_emb) # Отправляем наш измененный Embed.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
x4zx
@x4zx
python developer
Если вы хотите отправить embed то вам необходимо писать так:


embed = discord.Embed(title='Image')
embed.set_image(url='https://logos-world.net/wp-content/uploads/2020/12...') # Прикрепляет изображение по ссылке
m = await ctx.send(embed=embed)
embed = discord.Embed(title='Image')
embed.set_image(url='attachment://C:/Users/PC/Desktop/card.png') # Пытаюсь прикрепить изображение с диска
await m.edit(embed=embed) # Обновляю
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы