代码之家  ›  专栏  ›  技术社区  ›  Kyle

如何使用discord bot node js从discord保存图像

  •  1
  • Kyle  · 技术社区  · 8 年前

    到目前为止,我只能从discord频道类型的其他人那里获取文本和链接,但我希望能够保存发布的图像/GIF。我有没有办法通过机器人来实现这一点,或者这是不可能的?我在使用discord。js。

    1 回复  |  直到 8 年前
        1
  •  3
  •   FireController1847    7 年前

    图像不一致。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 是流的类型,然后使用fs。创建WriteStream并将文件管道化到其中。