mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-12 09:33:32 +01:00
Add option to filter old messages in TextBasedChannel#bulkDelete (#1090)
* add filtering for messages older than two weeks * Update RESTMethods.js * Update RESTMethods.js * Update RESTMethods.js * Update TextBasedChannel.js * Update RESTMethods.js * Update RESTMethods.js * Update RESTMethods.js * Update RESTMethods.js * Update TextBasedChannel.js
This commit is contained in:
committed by
Schuyler Cebulskie
parent
78bf402e8e
commit
7f4846c826
@@ -5,6 +5,7 @@ const splitMessage = require('../../util/SplitMessage');
|
|||||||
const parseEmoji = require('../../util/ParseEmoji');
|
const parseEmoji = require('../../util/ParseEmoji');
|
||||||
const escapeMarkdown = require('../../util/EscapeMarkdown');
|
const escapeMarkdown = require('../../util/EscapeMarkdown');
|
||||||
const transformSearchOptions = require('../../util/TransformSearchOptions');
|
const transformSearchOptions = require('../../util/TransformSearchOptions');
|
||||||
|
const Snowflake = require('../../util/Snowflake');
|
||||||
|
|
||||||
const User = require('../../structures/User');
|
const User = require('../../structures/User');
|
||||||
const GuildMember = require('../../structures/GuildMember');
|
const GuildMember = require('../../structures/GuildMember');
|
||||||
@@ -136,7 +137,12 @@ class RESTMethods {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
bulkDeleteMessages(channel, messages) {
|
bulkDeleteMessages(channel, messages, filterOld) {
|
||||||
|
if (filterOld) {
|
||||||
|
messages = messages.filter(id =>
|
||||||
|
Date.now() - Snowflake.deconstruct(id).date.getTime() < 1209600000
|
||||||
|
);
|
||||||
|
}
|
||||||
return this.rest.makeRequest('post', `${Constants.Endpoints.channelMessages(channel.id)}/bulk_delete`, true, {
|
return this.rest.makeRequest('post', `${Constants.Endpoints.channelMessages(channel.id)}/bulk_delete`, true, {
|
||||||
messages,
|
messages,
|
||||||
}).then(() =>
|
}).then(() =>
|
||||||
|
|||||||
@@ -353,16 +353,17 @@ class TextBasedChannel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bulk delete given messages.
|
* Bulk delete given messages that are newer than two weeks
|
||||||
* <warn>This is only available when using a bot account.</warn>
|
* <warn>This is only available when using a bot account.</warn>
|
||||||
* @param {Collection<string, Message>|Message[]|number} messages Messages to delete, or number of messages to delete
|
* @param {Collection<string, Message>|Message[]|number} messages Messages to delete, or number of messages to delete
|
||||||
|
* @param {boolean} [filterOld=false] Filter messages to remove those which are older than two weeks automatically
|
||||||
* @returns {Promise<Collection<string, Message>>} Deleted messages
|
* @returns {Promise<Collection<string, Message>>} Deleted messages
|
||||||
*/
|
*/
|
||||||
bulkDelete(messages) {
|
bulkDelete(messages, filterOld = false) {
|
||||||
if (!isNaN(messages)) return this.fetchMessages({ limit: messages }).then(msgs => this.bulkDelete(msgs));
|
if (!isNaN(messages)) return this.fetchMessages({ limit: messages }).then(msgs => this.bulkDelete(msgs));
|
||||||
if (messages instanceof Array || messages instanceof Collection) {
|
if (messages instanceof Array || messages instanceof Collection) {
|
||||||
const messageIDs = messages instanceof Collection ? messages.keyArray() : messages.map(m => m.id);
|
const messageIDs = messages instanceof Collection ? messages.keyArray() : messages.map(m => m.id);
|
||||||
return this.client.rest.methods.bulkDeleteMessages(this, messageIDs);
|
return this.client.rest.methods.bulkDeleteMessages(this, messageIDs, filterOld);
|
||||||
}
|
}
|
||||||
throw new TypeError('The messages must be an Array, Collection, or number.');
|
throw new TypeError('The messages must be an Array, Collection, or number.');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user