web-dev-qa-db-fra.com

Comment puis-je obtenir tous les messages sur une chaîne et poster à Hastebin? discord.js

Je suis idéalisant un doute bot. Compte tenu de cela, je dois expliquer qu'à la fin de la question du député, la chaîne doit être fermée et avant que le bot doit envoyer un lien de hastebin.com avec les journaux du canal créé.

Un exemple de pratique serait: je crée le billet, le canal est créé de manière à ce que seul moi et que le personnel puisse voir la chaîne. Je demande et je suis répondu. Après avoir répondu ma réponse, le canal est fermé (supprimé). Avant d'être supprimé, le bot crée un journal et l'envoie à Hastebin, qui reste la même dans l'imprimé ci-dessous.

enter image description here

Aidez-moi, s'il vous plaît!

eDIT: Je sais comment faire la plupart d'entre eux, mais mon problème est d'obtenir le journal de la chaîne et de le poster à Hastebin, formaté.

2
Amees

après avoir parlé de nous avons vraiment eu quelque chose ici. J'ai mis à jour votre code à quelque chose de plus efficace et je pense que quelles que soient les personnes qui utilisent discorde.js sera en mesure de comprendre ce qui se passe ici.

vieux code

    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);
        });

    })

nouveau code

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);

});

J'espère que ça aide!

3
Fagner Sales