到目前为止,我只能从我的不和谐频道类型中获取其他人的文字和链接,但我希望能够保存已发布的图像/ GIF。有什么方法可以通过机器人做到这一点,还是不可能?我正在使用discord.js。
答案 0 :(得分:3)
Discord.js中的图片以MessageAttachments通过Message#attachments
的形式出现。通过循环遍历附件数量,我们可以通过MessageAttachment#attachment检索原始文件,使用MessageAttachment#name检索文件类型。然后,我们使用节点FileSystem将文件写入系统。这是一个简单的例子。此示例假定您已经拥有消息事件和消息变量。
const fs = require('fs');
msg.attachments.forEach(a => {
fs.writeFileSync(`./${a.name}`, a.file); // Write the file to the system synchronously.
});
请注意,在实际情况中,您应该使用try / catch语句包围同步函数,以防错误。
另请注意,根据文档,附件可以是流。我还没有在现实世界中发生这种情况,但如果确实如此,可能值得检查a
是否为Streamof,然后使用fs.createWriteStream并将文件传输到其中。