Otterbots
Un framework de bot Discord adapté à la stack Antre des Loutres, conçu pour simplifier le développement en intégrant nativement la gestion des événements, commandes, réactions et création de salons — sans avoir à créer de couches de handlers séparées.
- Statut
- en production
- Contribution
- 124 commits sur 126
- Type
- Bot discord
- Stack
- TypeScript
- Version
- v1.0.0
- Début
- oct. 2025
- Dernière activité
- août 2026
Réécriture en cours : Re Otterbots.
À propos
Otterbots est un framework complet développé par L'Antre des Loutres pour simplifier la création de bots Discord professionnels. Il intègre des fonctionnalités avancées comme la gestion automatique des salons, un système de logging sophistiqué, une API centralisée, et des modules de sécurité.
Points forts
- Prêt à l'emploi: Configuration rapide avec
.env - Sécurité intégrée: Module Otterguard (anti-spam, anti-scam, filtrage de liens)
- Logging avancé: Otterlogs avec webhooks Discord
- Cache persistant: Ottercache pour stocker vos données
- API centralisée: OtterlyAPI pour gérer vos routes dynamiquement
- Tâches planifiées: Système de cron jobs intégré
- TypeScript: Code typé et maintenable
Installation
Étapes
- Cloner le projet
git clone https://github.com/L-Antre-des-Loutres/Otterbots.git
cd Otterbots
- Installer les dépendances
npm install
- Configurer l'environnement
Copiez le fichier d'exemple et remplissez vos informations:
cp.env.example.env
Éditez .env avec vos valeurs:
# Environnement
NODE_ENV=dev
BOT_LANGUAGE=FR
# Discord
BOT_TOKEN=votre_token_discord
DISCORD_GUILD_ID=id_de_votre_serveur
DISCORD_CLIENT_ID=id_de_votre_application
BOT_NAME=MonBot
# Webhooks (optionnel)
ENABLE_DISCORD_LOGS=true
GLOBAL_WEBHOOK_URL=https://discord.com/api/webhooks/...
ERROR_WEBHOOK_URL=https://discord.com/api/webhooks/...
- Compiler le projet
npm run build
- Lancer le bot
En développement:
npm run dev
En production:
npm start
Utilisation
Structure du projet
Otterbots/
src/
app/ # Configuration de votre bot
config/ # Fichiers de configuration
salon.ts # Configuration des salons Discord
task.ts # Tâches planifiées (cron)
otterguardConfig.ts # Configuration sécurité
commands/ # Vos commandes Discord
events/ # Vos gestionnaires d'événements
index.ts # Point d'entrée
otterbots/ # Framework (ne pas modifier)
utils/ # Utilitaires du framework
docs/ # Documentation détaillée
.env # Variables d'environnement
package.json
Créer une commande
Créez un fichier dans src/app/commands/:
import { CommandInteraction, SlashCommandBuilder } from 'discord.js';
export const data = new SlashCommandBuilder()
.setName('hello')
.setDescription('Dire bonjour');
export async function execute(interaction: CommandInteraction) {
await interaction.reply('Bonjour! ');
}
Configurer des salons automatiques
Éditez src/app/config/salon.ts:
export const salonCategory = [
{ id: 1, name: "Logs", role_id: "ROLE_ID" }
];
export const botSalon = [
{
alias: "logs-bot",
name: "-logs",
category: 1,
webhook: true
}
];
Ajouter une tâche planifiée
Éditez src/app/config/task.ts:
export const tasks = [
{
name: "Sauvegarde quotidienne",
time: "0 0 * * *", // Tous les jours à minuit
task: async () => {
console.log("Sauvegarde en cours...");
}
}
];
Utiliser le système de logs
import { otterlogs } from './otterbots/utils/otterlogs';
otterlogs.success("Bot démarré avec succès!");
otterlogs.log("Chargement de 10 commandes...");
otterlogs.warn("Cache expiré");
otterlogs.error("Erreur de connexion à la DB");
Fonctionnalités
Otterlogs
Système de logging avancé avec:
- 7 niveaux de logs (success, log, warn, error, important, debug, silentlog)
- Intégration webhooks Discord
- Formatage coloré avec Pino
- Configuration granulaire par type
Otterguard
Module de sécurité pour protéger votre serveur:
- Protection anti-liens malveillants
- Détection de scam
- Anti-spam / anti-flood
- Liste blanche de domaines
OtterlyAPI
Gestionnaire d'API centralisé:
- Routes dynamiques via alias
- Cache local des configurations
- Méthodes GET/POST simplifiées
- Authentification automatique
Ottercache
Système de cache persistant:
- Stockage clé-valeur typé
- Sauvegarde automatique en JSON
- API simple type Map
- Zero-config
Gestion des Salons
- Création automatique de catégories et salons
- Gestion des permissions par rôle
- Webhooks automatiques
- Récupération par alias
Tâches Planifiées
- Cron jobs avec
node-cron - Validation des expressions
- Gestion des erreurs
- Logs détaillés
Documentation
Toute la documentation détaillée se trouve dans src/otterbots/docs/:
- OTTERBOTS_CLASS.md - API publique de la classe Otterbots (démarrage, configuration)
- UTILS_GENERAUX.md - Utilitaires généraux (Activity, DisplayLogo, Salon, Task)
- OTTERLOGS.md - Système de logging complet
- OTTERGUARD.md - Module de sécurité
- OTTERLYAPI.md - Gestionnaire d'API
- OTTERCACHE.md - Système de cache
Scripts disponibles
| Commande | Description |
|---|---|
npm run dev |
Lint + Build + Lancer en mode développement |
npm run build |
Compiler TypeScript vers JavaScript |
npm run lint |
Vérifier le code avec ESLint |
npm start |
Lancer le bot compilé (production) |
Contribution
Les contributions sont les bienvenues! N'hésitez pas à:
- Fork le projet
- Créer une branche (
git checkout -b feature/AmazingFeature) - Commit vos changements (
git commit -m 'Add AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Auteurs
Développé avec par L'Antre des Loutres