批量删除如何工作?

Posted

技术标签:

【中文标题】批量删除如何工作?【英文标题】:How does bulkDelete work? 【发布时间】:2017-05-25 07:19:20 【问题描述】:

我尝试使用 bulkDelete 让我的机器人删除它的消息,但我收到此错误:

(node:5724) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Bad Request
(node:5724) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

这是我的代码:

const Discord = require('discord.js');
const bot = new Discord.Client();
const config = require("./config.json");

bot.on('ready', () =>
    console.log('I am ready!');
);

//var cleanarr=[];

bot.on("message", message =>
    if (message.author.bot) return;
var cleanarr=[];
        let command = message.content.split(" ")[0];
command = command.slice(config.prefix.length);

        let args = message.content.split(" ").slice(1);
if (message.content == 'lol')
    message.channel.sendMessage('LUL');
    cleanarr.unshift(`$message.channel.lastMessageID`);
    
if (command == "clean") 
    message.channel.sendMessage('Cleaning...');
    message.channel.bulkDelete(cleanarr);
    var cleanarr = [];

bulkDelete 需要什么?是消息ID还是其他什么?

我不知道我这样做是否正确(显然我不是),因为我开始编码时对 javascript 或任何相关知识的了解为零。

【问题讨论】:

【参考方案1】:

从通道中删除x 消息的最简单方法是提供来自2 - 100 的整数作为<TextChannel>.bulkDelete 方法的参数。

例子:

message.channel.bulkDelete(100).then(() => 
  message.channel.send("Deleted 100 messages.").then(msg => msg.delete(3000));
);

【讨论】:

【参考方案2】:

discord 批量删除端点需要您要删除的消息数组。小提示,截至昨天,批量删除端点不会删除超过 2 周的消息。

【讨论】:

【参考方案3】:

这里有一点更新;

    else if (command === 'purge') 
    const amount = parseInt(args[0]);

    if (isNaN(amount)) 
        return message.reply('that doesn\'t seem to be a valid number.');
    

    if (isNaN(amount)) 
    return message.reply('You have enterd a invalid amount. Try ``purge 5``');
 else if (amount < 2 || amount > 100) 
    return message.reply('you need to input a number between 2 and 100.');

message.channel.bulkDelete(amount);
message.channel.send(amount + ' ' +'messages deleted');

    
);

【讨论】:

以上是关于批量删除如何工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何在excel里批量删除空白行列?

如何批量删除excel表格中数字前后的方括号

如何快速删除大批量数据

Navicat for MySQL这个软件,如何批量删除数据,求大神指导.

yii2 怎么批量删除

刚学php 后台批量删除问题