本文介绍了我如何获取一个频道上的所有消息并将其发布到哈斯特宾?discord.js的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在理想化一个怀疑机器人。有鉴于此,我必须解释一下,在这位议员的问题结束时,通道必须关闭,在此之前,机器人必须从hastebin.com发送一个链接,其中包含创建的通道的日志。
实践中的一个示例是:我创建票证,创建通道,以便只有我和员工可以看到该通道。我问了,我得到了回答。得到我的答案后,频道关闭(删除)。在被删除之前,机器人会创建一个日志并将其发送到哈斯特箱,该哈斯特箱在下面的打印中保持不变。请帮帮我!
编辑:我知道怎么做大部分,但我的问题是获取频道日志并将其发布到hastebin中,进行格式化。
推荐答案
在我们讨论之后,我们确实得到了一些东西。我将您的代码更新为更高效的代码,我认为使用discord.js的任何人都将能够理解这里发生的事情。
旧代码
message.channel.fetchMessages().then(messages => {
console.log(`${messages.size} procuradas.`);
messages.array().reverse().forEach(msg => {
console.log(`[${moment(msg.createdTimestamp).format("DD/MM/YYYY - hh:mm:ss a").replace("pm", "PM").replace("am", "AM")}] ` +
`[${msg.author.username.toString()}]` + ": " + msg.content);
});
})
新代码
message.channel.fetchMessages().then(async messages => {
console.log(`${messages.size} procuradas.`);
let finalArray = [];
const putInArray = async (data) => finalArray.push(data);
const handleTime = (timestamp) => moment(timestamp).format("DD/MM/YYYY - hh:mm:ss a").replace("pm", "PM").replace("am", "AM");
for (const message of messages.array().reverse()) await putInArray(`${handleTime(message.createdTimestamp)} ${message.author.username} : ${message.content}`);
console.log(finalArray);
console.log(finalArray.length);
});
希望能有所帮助!
这篇关于我如何获取一个频道上的所有消息并将其发布到哈斯特宾?discord.js的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!