CleanupMessages: Handle missing permissions for local testing
This commit is contained in:
@@ -1,10 +1,10 @@
|
|||||||
const { MessageActivityType } = require("discord.js");
|
const { MessageActivityType } = require("discord.js");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
timeout: 60000,
|
timeout: 60000,
|
||||||
immediate: true,
|
immediate: true,
|
||||||
name: 'Cleanup tasks',
|
name: 'Cleanup tasks',
|
||||||
async tick(client, timer) {
|
async tick(client, timer) {
|
||||||
const keepMessageEmoteId = '1214140438265724980';
|
const keepMessageEmoteId = '1214140438265724980';
|
||||||
const channelConfigs = [
|
const channelConfigs = [
|
||||||
{ channelId: '1214134516247957504', keepTimeMinutes: 2, keepAttachment: true }, //toho-test/mnzbot-test
|
{ channelId: '1214134516247957504', keepTimeMinutes: 2, keepAttachment: true }, //toho-test/mnzbot-test
|
||||||
@@ -13,8 +13,8 @@ module.exports = {
|
|||||||
{ channelId: '1101703550070947920', keepTimeMinutes: 2880, keepAttachment: true }, //cotr/Memes
|
{ channelId: '1101703550070947920', keepTimeMinutes: 2880, keepAttachment: true }, //cotr/Memes
|
||||||
];
|
];
|
||||||
function isMessageLocked(message) {
|
function isMessageLocked(message) {
|
||||||
for(const [id, reaction] of message.reactions.cache) {
|
for (const [id, reaction] of message.reactions.cache) {
|
||||||
if(id === keepMessageEmoteId) {
|
if (id === keepMessageEmoteId) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -22,34 +22,39 @@ module.exports = {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for (let i = 0; i < channelConfigs.length; i++) {
|
for (let i = 0; i < channelConfigs.length; i++) {
|
||||||
const config = channelConfigs[i];
|
try {
|
||||||
const channel = await client.channels.fetch(config.channelId);
|
const config = channelConfigs[i];
|
||||||
|
const channel = await client.channels.fetch(config.channelId);
|
||||||
|
|
||||||
console.log(`[TIMER] Running cleanup task for ${channel.guild.name}/${channel.name}`);
|
console.log(`[TIMER] Running cleanup task for ${channel.guild.name}/${channel.name}`);
|
||||||
channel.messages.fetch({ limit: 100 }).then(messages => {
|
channel.messages.fetch({ limit: 100 }).then(messages => {
|
||||||
messages.forEach(message => {
|
messages.forEach(message => {
|
||||||
if(isMessageLocked(message)) {
|
if (isMessageLocked(message)) {
|
||||||
//skip if message has mnzboKeepMessage reaction
|
//skip if message has mnzboKeepMessage reaction
|
||||||
console.log(`[LOCKED] [${message.guild.name}/${message.channel.name}] | ${message.author.globalName}: ${message.content}`);
|
console.log(`[LOCKED] [${message.guild.name}/${message.channel.name}] | ${message.author.globalName}: ${message.content}`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(message.attachments.size > 0 && config.keepAttachment) {
|
if (message.attachments.size > 0 && config.keepAttachment) {
|
||||||
//Skip messages with attachment
|
//Skip messages with attachment
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let ageInMinutes = Math.ceil((Date.now() - message.createdTimestamp) / 1000 / 60);
|
let ageInMinutes = Math.ceil((Date.now() - message.createdTimestamp) / 1000 / 60);
|
||||||
if(ageInMinutes < config.keepTimeMinutes) {
|
if (ageInMinutes < config.keepTimeMinutes) {
|
||||||
//Skip messages posted within last 48 Hours
|
//Skip messages posted within last 48 Hours
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(`[CLEANUP] [${message.guild.name}/${message.channel.name}] | ${message.author.globalName}: ${message.content}`);
|
console.log(`[CLEANUP] [${message.guild.name}/${message.channel.name}] | ${message.author.globalName}: ${message.content}`);
|
||||||
message.delete();
|
message.delete();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
} catch (error) {
|
||||||
|
console.log(`[CLEANUP] Failed for ${channelConfigs[i].channelId}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
Reference in New Issue
Block a user