cleaner, list of channels
This commit is contained in:
parent
3c57719feb
commit
b801d4b6f1
73
cleaner.js
73
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;
|
||||
Loading…
x
Reference in New Issue
Block a user