从带有 discord.js 的链接下载图像,然后删除该文件

Posted

技术标签:

【中文标题】从带有 discord.js 的链接下载图像,然后删除该文件【英文标题】:download image from link with discord.js then delete the file 【发布时间】:2019-03-31 22:56:17 【问题描述】:

我需要从 imgur 下载图像然后发送它,然后使用 fs 或您可能推荐的任何其他模块删除文件。感谢您的帮助!

【问题讨论】:

【参考方案1】:

如果您只想发送不需要保存然后删除文件的图像:您可以将 URL 放在消息的文件选项中,因为它也接受 BufferResolvable(以及 URL) .

let image = "https://discordapp.com/assets/c4bae281354a2b4e2db85415955e0994.svg"; // this is the URL for your image
let channel = message.channel; // this is your channel (I assumed this is in a command)

channel.send("",  file: image ); // you can send the image like this
channel.send("Description message",  file: image ); // you can also set a description

【讨论】:

Imgur 似乎不再支持这一点,因为图像只是显示为嵌入标题 奇怪...您使用的是哪个链接?直接链接?【参考方案2】:

您可以使用模块 nightmare 和 nightmare-screenshot-selector 进行尝试。 Nightmare 是一个用于网络抓取的模块,而 nightmare-screenshot-selector 可以更轻松地截取不同的内容。

你应该做的步骤:

nightmare
  .goto(url) //imgur.com/xyz
  .wait(#pic) // wait for the picture to load
  .screenshotSelector(#image) //screenshot the image
  .then(function(data) 
    fs.writeFileSync(path, data);  //save the file
    message.channel.send("",     //send the picture in the channel
      file: path
    );
    fs.unlink(path, (err) =>   //delete the file
     if (err) throw err;
      console.log(path + ' was deleted');
    );
   );

请注意,复制和粘贴该代码可能不起作用,您应该查看模块的文档并尝试了解您在做什么。

【讨论】:

以上是关于从带有 discord.js 的链接下载图像,然后删除该文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在嵌入 discord.js V13 时使用下载的图像

Discord.js 男高音 gif 丰富的嵌入

使用 discord.js 和 Node.js 清除所有不是图像或链接的消息 [关闭]

消息嵌入中的 Discord.js v12 图像

Discord.js 从带有前缀的句子中过滤命令(比如 Hey Bot 给我一块蛋糕)

Discord.js 代码无法发送嵌入消息 [关闭]