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