commit 6aa356f532e8d79f8e5f3575afd64784575a5d47 Author: Aydent Date: Sat Sep 6 14:15:41 2025 +0200 bot init diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f4fcb8b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +# Utilise Node.js LTS +FROM node:20-slim + +# Crée un dossier de travail +WORKDIR /usr/src/app + +# Copie package.json et installe les deps +COPY package*.json ./ +RUN npm install --only=production + +# Copie le reste du code +COPY . . + +# Lance le bot +CMD ["node", "bot.js"] \ No newline at end of file diff --git a/bot.js b/bot.js new file mode 100644 index 0000000..8dcb9ea --- /dev/null +++ b/bot.js @@ -0,0 +1,36 @@ +import { Client, GatewayIntentBits } from "discord.js"; +import fetch from "node-fetch"; + +const client = new Client({ + intents: [ + GatewayIntentBits.Guilds, + GatewayIntentBits.GuildMessages, + GatewayIntentBits.MessageContent + ] +}); + +const DISCORD_TOKEN = process.env.DISCORD_TOKEN; +const N8N_WEBHOOK = process.env.N8N_WEBHOOK; + +client.on("messageCreate", async (message) => { + if (message.author.bot) return; + + try { + const response = await fetch(N8N_WEBHOOK, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ text: message.content, user: message.author.username }) + }); + + const data = await response.json(); + + if (data.reply) { + await message.reply(data.reply); + } + } catch (err) { + console.error("Erreur:", err); + message.reply("⚠️ Erreur avec le chatbot."); + } +}); + +client.login(DISCORD_TOKEN); diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..1d1d6bf --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,10 @@ +version: "3.9" + +services: + discord-bot: + build: . + container_name: discord-bot + restart: unless-stopped + environment: + DISCORD_TOKEN: "${DISCORD_TOKEN}" + N8N_WEBHOOK: "${N8N_WEBHOOK}" diff --git a/package.json b/package.json new file mode 100644 index 0000000..80d9165 --- /dev/null +++ b/package.json @@ -0,0 +1,11 @@ +{ + "name": "discord-n8n-bot", + "version": "1.0.0", + "main": "bot.js", + "type": "module", + "dependencies": { + "discord.js": "^14.14.1", + "node-fetch": "^3.3.2" + } + } + \ No newline at end of file