用 Python 编写 Discord 机器人 - 为什么它无法设置嵌入图像?

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

问题描述

我有一个 meme 命令,它从 subreddit 获取 URL,然后将其设置为嵌入图像.这是我的代码:

I have a meme command that gets a URL from a subreddit and then sets it as an embed image. Here's my code:

memes = reddit.subreddit("memes")
memes_subs = []
memes_hot = memes.hot(limit = 50)

for submission in memes_hot:
  memes_subs.append(submission)


@client.command()
async def meme(ctx):
  random_sub = random.choice(memes_subs)
  name = random_sub.title
  url = random_sub.url

  em = discord.Embed(title = name, color = 0xfdcb58)
  em.set_footer(text = f"Requested by {ctx.message.author} | From r/memes")
  em.set_image(url = url)

  await ctx.send(embed = em)

有时嵌入没有图像,或者图像根本无法加载.我不确定为什么会发生这种情况,因此任何见解都将不胜感激.

Sometimes the embed does not have an image, or the image simply won't load. I am unsure why this happens, so any insight would be greatly appreciated.


解决方案

一些 Imgur URL 以 gifv 结尾,因为它们是网页,而不是直接链接.要获取原始 GIF,您可以将链接更改为以下格式:http://i.imgur.com/12345.jpg
请注意 .jpg,而不是 .gif.不过,这会给你一个原始的 GIF 文件.

Some Imgur URLs end in gifv because they are web pages, not direct links. To get the original GIF, you can change the link into this format: http://i.imgur.com/12345.jpg
Note the .jpg, not a .gif. This will give you a raw GIF file though.

对于gfycat,可以使用替代链接格式https://thumbs.gfycat.com/ElatedEvergreenGoose-size_restricted.gif

For gfycat, The alternative link format https://thumbs.gfycat.com/ElatedEvergreenGoose-size_restricted.gif can be used

相关文章