下载文件到本地计算机发送附件到消息不和谐

download file to local computer sent attatched to message discord

在查看 Discord.js 文档后,我可以找到问题的答案,有人知道该怎么做吗?页面上已有问题,但没有答案或评论。

假设有人在聊天中发送了一张图片,机器人是否有办法下载图片或获取图片的url?

谢谢!

除了我在评论部分发布的 link,从 Discord documentation 来看,url 似乎在 attachment 对象中。

对于初学者...您需要代码才能访问附件。

client.on(`message`,function(msg){
    if(msg.attachments.first()){//checks if an attachment is sent
        if(msg.attachments.first().filename === `png`){//Download only png (customize this)
            download(msg.attachments.first().url);//Function I will show later
        }
    }
});

注意: 我将附件限制为 png,以便我们下载经过验证的图像。否则我们可能会下载一些错误的脚本和可能的病毒。下载东西时要小心。

现在我刚刚给你的代码调用 download 并传入 url
现在您将需要 request module AND the fs 模块。

为什么?很高兴你问... request 模块访问 url 并从网络中提取数据。
您的 local/external 机器上的 fs 模块 create/reads/writes 文件...

使用这两个模块,我们将拉取它然后保存它

现在让我们假设 url 是这个 meme.png(discord png 附件)

let request = require(`request`);
let fs = require(`fs`);
function download(url){
    request.get(url)
        .on('error', console.error)
        .pipe(fs.createWriteStream('meme.png'));
}

瞧!我们现在有一个关于 Doritos XDmeme.png 的图像