From 296cf1ccb0a1c0eb95b75dd9d4906268f66bcc8f Mon Sep 17 00:00:00 2001 From: louhane delforge Date: Fri, 21 Nov 2025 09:52:32 +0100 Subject: [PATCH] allegement ram --- .gitignore | 2 +- README.md | 12 +++++--- index.js | 78 ++++++++++------------------------------------ indexFaulty.JS | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++ ~/.gitconfig | 2 -- 5 files changed, 109 insertions(+), 69 deletions(-) create mode 100644 indexFaulty.JS delete mode 100644 ~/.gitconfig diff --git a/.gitignore b/.gitignore index 3248d95..510b1ac 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /node_modules .env -/~ +.gitconfig db.json diff --git a/README.md b/README.md index c0186de..fc87ffa 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,13 @@ -# genius-troll +# intro + +## genius-troll réponses troll et fun facts [to invite](https://discord.com/oauth2/authorize?client_id=1441128583178227883&permissions=8&integration_type=0&scope=bot+applications.commands) -# version +# dev + +## version - 0.1.1 : initialisation et création du code - 0.2.1 : ajout de modules de détection @@ -12,7 +16,7 @@ réponses troll et fun facts - 1.0.0 : ca marche via vs code - 1.1.0 : fix sur lxc -# dependences +## dependences - npm i -- node index.js \ No newline at end of file +- node index.js diff --git a/index.js b/index.js index c1b8b45..46b83f6 100644 --- a/index.js +++ b/index.js @@ -1,25 +1,15 @@ import 'dotenv/config'; -import { Client, GatewayIntentBits, WebhookClient, AuditLogEvent, OAuth2Scopes, Options, Events } from 'discord.js'; +import { Client, GatewayIntentBits, Options, Events } from 'discord.js'; +// Import statique : si ça plante ici (RAM), tu le sauras tout de suite +import firstDetector from './detectors/allDetector.js'; -// La variable des détecteurs est déclarée mais pas initialisée (elle le sera dans loadDetectors) -let firstDetector; - -// Fonction de chargement asynchrone des modules locaux (pour contourner le blocage d'Alpine) -async function loadDetectors() { - try { - // Import dynamique qui attend la connexion réussie du bot - const detectorModule = await import('./detectors/allDetector.js'); - firstDetector = detectorModule.default; - console.log("[STATUS] Détecteurs chargés avec succès. Bot prêt à troller."); - } catch (e) { - console.error("ALERTE: Impossible de charger les détecteurs locaux ! Vérifiez l'arborescence et 'data/index.js'.", e); - } -} - -// 1. CLIENT DÉFINITION const client = new Client({ makeCache: Options.cacheWithLimits({ - MessageManager: 0, + MessageManager: 0, // Très bien pour la RAM + // Ajoute ceci pour économiser encore plus : + UserManager: 0, + GuildMemberManager: 0, + ThreadManager: 0, }), intents: [ GatewayIntentBits.Guilds, @@ -28,57 +18,21 @@ const client = new Client({ ] }); -// -- GESTION DES LOGS GUILD (Non-critique, peut être décommenté) -- -// client.on('guildCreate', ... -// client.on('guildDelete', ... - -// -- 2. DÉMARRAGE & READY -- -client.on(Events.ClientReady, async () => { +client.on(Events.ClientReady, () => { console.log(`[SUCCESS] Logged in as ${client.user?.tag}`); - console.log('Bot is ready!'); - - // DÉMARRAGE DU CHARGEMENT DES MODULES LOURDS APRÈS LA CONNEXION - await loadDetectors(); }); -// -- 3. GESTION DES MESSAGES (Cœur du bot) -- -async function handleMessage(message) { - // Le bot ne répond pas tant que le chargement dynamique n'est pas terminé - if (!firstDetector) return; - - try { - const reply = await firstDetector.createReply(message); - if (reply) { - await message.reply(reply); - } - } catch (e) { - console.error('Erreur dans le détecteur:', e); - } -} - client.on('messageCreate', async (message) => { if (message.author.bot) return; - await handleMessage(message); -}); - -client.on('messageUpdate', async (oldMessage, newMessage) => { - let message = newMessage; - if (message.partial) { - try { - message = await message.fetch(); - } catch (e) { - return; - } - } - if (!message.author || message.author.bot) return; - if (oldMessage.content === message.content) return; - if (oldMessage.content && oldMessage.content.match(/(\b|^)quoi(\b|$)/i)) { - return; + try { + const reply = await firstDetector.createReply(message); // Plus besoin de vérifier si firstDetector existe + if (reply) await message.reply(reply); + } catch (e) { + console.error('Erreur détecteur:', e); } - - await handleMessage(message); }); -// 4. CONNEXION FINALE +// ... (Reste du code inchangé) + client.login(process.env.DISCORD_TOKEN); \ No newline at end of file diff --git a/indexFaulty.JS b/indexFaulty.JS new file mode 100644 index 0000000..c1b8b45 --- /dev/null +++ b/indexFaulty.JS @@ -0,0 +1,84 @@ +import 'dotenv/config'; +import { Client, GatewayIntentBits, WebhookClient, AuditLogEvent, OAuth2Scopes, Options, Events } from 'discord.js'; + +// La variable des détecteurs est déclarée mais pas initialisée (elle le sera dans loadDetectors) +let firstDetector; + +// Fonction de chargement asynchrone des modules locaux (pour contourner le blocage d'Alpine) +async function loadDetectors() { + try { + // Import dynamique qui attend la connexion réussie du bot + const detectorModule = await import('./detectors/allDetector.js'); + firstDetector = detectorModule.default; + console.log("[STATUS] Détecteurs chargés avec succès. Bot prêt à troller."); + } catch (e) { + console.error("ALERTE: Impossible de charger les détecteurs locaux ! Vérifiez l'arborescence et 'data/index.js'.", e); + } +} + +// 1. CLIENT DÉFINITION +const client = new Client({ + makeCache: Options.cacheWithLimits({ + MessageManager: 0, + }), + intents: [ + GatewayIntentBits.Guilds, + GatewayIntentBits.GuildMessages, + GatewayIntentBits.MessageContent, + ] +}); + +// -- GESTION DES LOGS GUILD (Non-critique, peut être décommenté) -- +// client.on('guildCreate', ... +// client.on('guildDelete', ... + +// -- 2. DÉMARRAGE & READY -- +client.on(Events.ClientReady, async () => { + console.log(`[SUCCESS] Logged in as ${client.user?.tag}`); + console.log('Bot is ready!'); + + // DÉMARRAGE DU CHARGEMENT DES MODULES LOURDS APRÈS LA CONNEXION + await loadDetectors(); +}); + +// -- 3. GESTION DES MESSAGES (Cœur du bot) -- +async function handleMessage(message) { + // Le bot ne répond pas tant que le chargement dynamique n'est pas terminé + if (!firstDetector) return; + + try { + const reply = await firstDetector.createReply(message); + if (reply) { + await message.reply(reply); + } + } catch (e) { + console.error('Erreur dans le détecteur:', e); + } +} + +client.on('messageCreate', async (message) => { + if (message.author.bot) return; + await handleMessage(message); +}); + +client.on('messageUpdate', async (oldMessage, newMessage) => { + let message = newMessage; + if (message.partial) { + try { + message = await message.fetch(); + } catch (e) { + return; + } + } + if (!message.author || message.author.bot) return; + if (oldMessage.content === message.content) return; + + if (oldMessage.content && oldMessage.content.match(/(\b|^)quoi(\b|$)/i)) { + return; + } + + await handleMessage(message); +}); + +// 4. CONNEXION FINALE +client.login(process.env.DISCORD_TOKEN); \ No newline at end of file diff --git a/~/.gitconfig b/~/.gitconfig deleted file mode 100644 index bcd2567..0000000 --- a/~/.gitconfig +++ /dev/null @@ -1,2 +0,0 @@ -[credential "https://https://dev.ldelforge.com"] - username = TRUkae \ No newline at end of file