有什么办法记录带有图像的已删除邮件?

时间:2020-01-11 11:12:13

标签: python python-3.x discord.py

我正在尝试制作消息和图像记录器,但是我对删除消息时如何记录消息的图像一无所知。 我尝试使用embed.set_image(url=message.attachments[0].url),但是它没有用,也没有引起任何错误。消息文本已记录,但图像未记录。 另外,我尝试使用embed.set_image(url=message.attachments),但显然不起作用:discord.errors.HTTPException: 400 BAD REQUEST (error code: 50035): Invalid Form Body In embed.image.url: Not a well formed URL.

@client.event
async def on_message_delete(message):
    embed = discord.Embed(
        timestamp=message.created_at,
        title = "[Message Deleted]",
        colour = discord.Colour(0xff0000)
        ) 
    embed.set_author(name=f'{message.author.name}#{message.author.discriminator}', icon_url=message.author.avatar_url)
    embed.set_footer(text=f"Author ID:{message.author.id} • Message ID: {message.id}")
    embed.add_field(name="Message Content:", value=message.content)
    embed.set_image(url=message.attachments[0].url)
    channel = client.get_channel(665307525897519105)
    await channel.send(embed=embed)
    ```

1 个答案:

答案 0 :(得分:4)

Lu M is correct。删除邮件后,没有一个统一的方法来执行此操作。

您已将附件URL正确设置为嵌入的图像URL,但如果没有人(除Discord本身以外)查看/请求该图像,例如通过Web浏览器,然后删除图像附加到的消息时,Discord的CDN将限制对图像的访问。

即使有人已经查看/请求了图像,CDN也会定期删除/制作附加到现在已删除邮件中的无法访问的图像。