如何获取频道上的所有消息并发布到hastebin? discord.js

时间:2020-02-26 18:17:08

标签: javascript discord discord.js

我正在理想化一个怀疑机器人。有鉴于此,我必须解释,在成员提问的最后,必须关闭通道,并且在此之前,漫游器必须从hastebin.com发送一个包含所创建通道日志的链接。

实践中的一个示例是:我创建票证,创建通道,以便只有我和工作人员才能看到该通道。我问并得到答复。得到我的答案后,该频道已关闭(已删除)。在被删除之前,该漫游器会创建一个日志并将其发送到hastebin,该日志在下面的打印图中保持不变。

enter image description here

请帮帮我!

编辑:我知道大多数人该怎么做,但是我的问题是获取频道日志并将其发布到hastebin中,并格式化。

1 个答案:

答案 0 :(得分:2)

在我们谈论之后,我们真的得到了一些东西。我将您的代码更新为更有效的代码,并且我认为使用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").reaplce("am", "AM"); 

    for (const message of messages.array().reverse()) await putInArray(`${handleTime(message.timestamp)} ${msg.author.username} : ${msg.content}`); 

    console.log(finalArray);
    console.log(finalArray.length);

});

希望有帮助!