diff --git a/cleaner.js b/cleaner.js index 607ac37..3db8c6a 100644 --- a/cleaner.js +++ b/cleaner.js @@ -1,25 +1,64 @@ const axios = require('axios'); -const clean = async (client) => { +const cleanChannel = async (client, channelId) => { try { - client.channels.fetch(process.env.CLEANER_CHANNEL_ID) - .then(channel => { - channel.messages.fetch({ limit: 100 }) - .then(messages => { - // Trier les messages par date (du plus ancien au plus récent) - const sortedMessages = Array.from(messages.values()).sort((a, b) => a.createdTimestamp - b.createdTimestamp); - - // Exclure le premier message et les messages épinglés - const messagesToDelete = sortedMessages.slice(1).filter(m => !m.pinned); - - if (messagesToDelete.length > 0) { - channel.bulkDelete(messagesToDelete); - } - }) - }) + const channel = await client.channels.fetch(channelId); + + if (!channel) { + console.log(`⚠️ Salon ${channelId} introuvable`); + return; + } + + const messages = await channel.messages.fetch({ limit: 100 }); + + // Trier les messages par date (du plus ancien au plus récent) + const sortedMessages = Array.from(messages.values()).sort((a, b) => a.createdTimestamp - b.createdTimestamp); + + // Exclure le premier message et les messages épinglés + const messagesToDelete = sortedMessages.slice(1).filter(m => !m.pinned); + + if (messagesToDelete.length > 0) { + await channel.bulkDelete(messagesToDelete); + console.log(`🧹 ${messagesToDelete.length} message(s) supprimé(s) dans #${channel.name}`); + } else { + console.log(`✅ Aucun message à supprimer dans #${channel.name}`); + } + } catch (error) { - console.log("Bot : "+error); + console.log(`❌ Erreur lors du nettoyage du salon ${channelId}: ${error.message}`); } }; + +const clean = async (client) => { + try { + const channelIds = process.env.CLEANER_CHANNEL_IDS; + + if (!channelIds) { + console.log('⚠️ CLEANER_CHANNEL_IDS non défini dans .env'); + return; + } + + // Séparer les IDs et nettoyer les espaces + const channelIdList = channelIds.split(',').map(id => id.trim()).filter(id => id); + + if (channelIdList.length === 0) { + console.log('⚠️ Aucun salon à nettoyer'); + return; + } + + console.log(`🧹 Nettoyage de ${channelIdList.length} salon(s)...`); + + // Nettoyer chaque salon + for (const channelId of channelIdList) { + await cleanChannel(client, channelId); + } + + console.log('✅ Nettoyage terminé'); + + } catch (error) { + console.log("❌ Erreur générale lors du nettoyage: " + error.message); + } +}; + module.exports = clean; \ No newline at end of file