javascript - 我想在不和谐频道发送一个文件,机器人会读取这个文件
问题描述
我是不和谐机器人的开发者。我想知道如何让机器人读取我在不和谐服务器中发送的文件,例如:
!read (file)
机器人将记录文件的内容或将其发送
message.channel.send(content)
我尝试了一些东西,但它们不起作用..
这是我尝试过的代码:
const Discord = require("discord.js");
const fs = require("fs")
module.exports.run = async(client, message, args, item) => {
if(!message.member.hasPermission('ADMINISTRATOR')) return
let useTips = new Discord.RichEmbed();
useTips.setAuthor(message.author.tag, message.author.avatarURL)
useTips.setDescription('Please Send A File')
useTips.setColor(0xdb001d)
message.channel.send(useTips)
const filter = m => m.author.id === message.author.id;
await message.channel.awaitMessages(filter, {max: 1, time: 30000,errors: ['time']})
.then(collected => {
let collection = collected.first();
let file21 = collection.attachments;
message.channel.send(file21)
fs.readFile(file21, (err, data) => {
message.channel.send(data);
});
})
}
但它没有用..有人可以帮助我吗?
解决方案
您不能将附件作为文件读取。您需要从 url 获取此附件。1 其使用节点请求库的方式
const Discord = require("discord.js");
const fs = require("fs")
const request = require('request');
module.exports.run = async(client, message, args, item) => {
if(!message.member.hasPermission('ADMINISTRATOR')) return
let useTips = new Discord.RichEmbed();
useTips.setAuthor(message.author.tag, message.author.avatarURL)
useTips.setDescription('Please Send A File')
useTips.setColor(0xdb001d)
message.channel.send(useTips)
const filter = m => m.author.id === message.author.id;
await message.channel.awaitMessages(filter, {max: 1, time: 30000,errors: ['time']})
.then(collected => {
let collection = collected.first();
if(!collection.attachments) return
request.get(collection.attachments.array()[0].url, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
}
});
})
.catch(console.error)
}
}
推荐阅读
- nservicebus - MessageBus:等待处理完成并向请求者发送ACK
- c++ - const 对象中的指针在传递给另一个对象构造函数后正在发生变化
- jquery - 重新加载页面但不添加到历史堆栈
- c++ - 了解 sigwait() 以及它如何设置参数
- fortran - 如何使用 armflang 设置目标 CPU/硬件?
- angular - Angular 和 Firebase:如何使用电子邮件地址检索用户的 UID?
- hiveql - 在 HIVE 查询中传递参数
- javascript - 使用 Javascript 影响多行以 substr 和复制的函数
- ios - 如何通过 IPv6 正确发送电子邮件?
- android - 在模型中保存recyclerview的复选框状态