bot init
This commit is contained in:
15
Dockerfile
Normal file
15
Dockerfile
Normal file
@ -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"]
|
||||||
36
bot.js
Normal file
36
bot.js
Normal file
@ -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);
|
||||||
10
docker-compose.yml
Normal file
10
docker-compose.yml
Normal file
@ -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}"
|
||||||
11
package.json
Normal file
11
package.json
Normal file
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user