当前位置: 首页 > 知识库问答 >
问题:

删除不一致中的所有邮件。js文本频道

邢献
2023-03-14

好的,所以我搜索了一会儿,但是我找不到任何关于如何删除不协调频道中所有消息的信息。我所说的所有信息是指在该频道中所写的每一条信息。有什么线索吗?

共有3个答案

乜嘉悦
2023-03-14

这是我改进的版本,它更快,让你知道它何时在控制台中完成,但你必须为你在频道中使用的每个用户名运行它(如果你在某个时候更改了用户名):

// Turn on Developer Mode under User Settings > Appearance > Developer Mode (at the bottom)
// Then open the channel you wish to delete all of the messages (could be a DM) and click the three dots on the far right.
// Click "Copy ID" and paste that instead of LAST_MESSAGE_ID.
// Copy / paste the below script into the JavaScript console.

var before = 'LAST_MESSAGE_ID';
var your_username = ''; //your username
var your_discriminator = ''; //that 4 digit code e.g. username#1234
var foundMessages = false;
clearMessages = function(){
    const authToken = document.body.appendChild(document.createElement`iframe`).contentWindow.localStorage.token.replace(/"/g, "");
    const channel = window.location.href.split('/').pop();
    const baseURL = `https://discordapp.com/api/channels/${channel}/messages`;
    const headers = {"Authorization": authToken };

    let clock = 0;
    let interval = 500;

    function delay(duration) {
          return new Promise((resolve, reject) => {
              setTimeout(() => resolve(), duration);
          });
    }

    fetch(baseURL + '?before=' + before + '&limit=100', {headers})
    .then(resp => resp.json())
    .then(messages => {
        return Promise.all(messages.map((message) => {
            before = message.id;
            foundMessages = true;

            if (
                message.author.username == your_username
                && message.author.discriminator == your_discriminator
            ) {
                return delay(clock += interval).then(() => fetch(`${baseURL}/${message.id}`, {headers, method: 'DELETE'}));
            }
        }));
    }).then(() => {

        if (foundMessages) {
            foundMessages = false;
            clearMessages();
        } else {
            console.log('DONE CHECKING CHANNEL!!!')
        }

    });
}
clearMessages();

以前的脚本,我发现删除自己的消息没有机器人...

// Turn on Developer Mode under User Settings > Appearance > Developer Mode (at the bottom)
// Then open the channel you wish to delete all of the messages (could be a DM) and click the three dots on the far right.
// Click "Copy ID" and paste that instead of LAST_MESSAGE_ID.
// Copy / paste the below script into the JavaScript console.
// If you're in a DM you will receive a 403 error for every message the other user sent (you don't have permission to delete their messages).

var before = 'LAST_MESSAGE_ID';
clearMessages = function(){
    const authToken = document.body.appendChild(document.createElement`iframe`).contentWindow.localStorage.token.replace(/"/g, "");
    const channel = window.location.href.split('/').pop();
    const baseURL = `https://discordapp.com/api/channels/${channel}/messages`;
    const headers = {"Authorization": authToken };

    let clock = 0;
    let interval = 500;

    function delay(duration) {
        return new Promise((resolve, reject) => {
            setTimeout(() => resolve(), duration);
        });
    }

    fetch(baseURL + '?before=' + before + '&limit=100', {headers})
        .then(resp => resp.json())
        .then(messages => {
        return Promise.all(messages.map((message) => {
            before = message.id;
            return delay(clock += interval).then(() => fetch(`${baseURL}/${message.id}`, {headers, method: 'DELETE'}));
        }));
    }).then(() => clearMessages());
}
clearMessages();

参考:https://gist.github.com/IMcPwn/0c838a6248772c6fea1339ddad503cce

盖高畅
2023-03-14

Discord不允许机器人删除超过100条消息,因此您不能删除频道中的每条消息。您可以使用BulkDelete删除少于100封邮件。

例子:

const Discord = require("discord.js");
const client = new Discord.Client();
const prefix = "!";

client.on("ready" () => {
    console.log("Successfully logged into client.");
});

client.on("message", msg => {
    if (msg.content.toLowerCase().startsWith(prefix + "clearchat")) {
        async function clear() {
            msg.delete();
            const fetched = await msg.channel.fetchMessages({limit: 99});
            msg.channel.bulkDelete(fetched);
        }
        clear();
    }
});

client.login("BOT_TOKEN");

注意,它必须是一个异步函数,等待才能工作。

罗建弼
2023-03-14

试试这个

async () => {
  let fetched;
  do {
    fetched = await channel.fetchMessages({limit: 100});
    message.channel.bulkDelete(fetched);
  }
  while(fetched.size >= 2);
}
 类似资料:
  • 我的问题是,我在尝试删除不一致的邮件时收到错误。 我收到这个错误: 我还尝试了,但我收到一个错误,告诉我消息未定义。 当我删除试图删除消息的代码时,程序就会工作。

  • 本文向大家介绍java 删除文件夹中的所有内容而不删除文件夹本身的实例,包括了java 删除文件夹中的所有内容而不删除文件夹本身的实例的使用技巧和注意事项,需要的朋友参考一下 实例如下: 以上这篇java 删除文件夹中的所有内容而不删除文件夹本身的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 我正在为我的discord服务器制作一个机器人,但我遇到了问题。我想要的是,当最后一个人离开一个语音频道(它是由机器人生成的)时,我想要删除该语音频道。 我也考虑过测试任何空的语音频道并删除它们,但我不知道如何做。

  • 有关删除数据的Firebase文档中说: 删除数据 删除数据的最简单方法是对数据位置的引用调用remove()。 还可以通过将null指定为另一个写入操作(如set()或update())的值来删除。您可以将此技术与update()结合使用,在单个API调用中删除多个子项。 有谁能解释一下,我认为最后一行可以帮助我删除firebase文件夹中的所有文件是什么意思?

  • 问题内容: 我有以下Java代码,它会遍历目录中的所有文件并将其删除。 但是,它不会删除所有文件。在执行此操作时,通常会留下几千个中的20-30个。是否有可能解决此问题,或者我偶然发现了一些最好单独使用的Java伏都教徒? 问题答案: 强制使用垃圾回收器运行会使所有文件可删除。

  • 问题内容: 基本上,我要求用户在控制台中输入文本字符串,但是该字符串很长,并且包含许多换行符。我将如何获取用户的字符串并删除所有换行符以使其成为一行文本。我获取字符串的方法非常简单。 我应该从用户那里获取字符串吗?我在Mac上运行Python 2.7.4。 PS显然,我是一个菜鸟,所以即使解决方案不是最有效的,也应感谢使用最简单语法的解决方案。 问题答案: 您如何输入换行符?但是,一旦您的字符串中