Arisoutre
Bot principale de l'Antre des Loutres, responsable de l'administration et la gestion de nos membres.
- Statut
- en production
- Contribution
- 128 commits
- Type
- Bot discord
- Stack
- TypeScript
- Version
- v3.1.3
- Début
- févr. 2024
- Dernière activité
- juin 2026
Version précédente : ArisoutreV2.
À propos
Arisoutre est un bot Discord de modération développé en TypeScript pour le serveur "L'Antre des Loutres". Il offre un système de protection avancé (OtterGuard), une intégration API complète (OtterlyAPI), et une architecture modulaire extensible.
Points forts
- Système de protection multi-couches avec OtterGuard
- Architecture modulaire séparant framework et logique métier
- Intégration API pour la persistance des données
- Embeds personnalisables et messages de bienvenue
- Performances optimisées avec système de cache
- Logs avancés avec support Discord webhooks
- Tâches planifiées avec node-cron
- Configuration flexible via variables d'environnement
Fonctionnalités (hérité d'Otterbots)
OtterGuard - Système de protection
- Protection contre les liens: Filtre les liens non autorisés avec liste blanche configurable
- Protection anti-scam: Détecte et bloque les tentatives de phishing
- Protection anti-spam: Limite les messages répétitifs et le flood
- Logs automatiques: Enregistre toutes les actions dans le canal de modération
Commandes slash
| Commande | Description | Permissions |
|---|---|---|
/analyze |
Analyse le score de fiabilité d'un membre | Admin |
/clear |
Supprime des messages en masse (1-100) | Admin |
/git-repo |
Affiche les informations du repository | Tous |
Événements automatiques
- Bienvenue: Message personnalisé pour les nouveaux membres
- Au revoir: Notification lors du départ d'un membre
- Logs de messages: Suivi des suppressions et modifications
- Statistiques vocales: Suivi de l'activité dans les salons vocaux
- Comptage de messages: Système de statistiques et de classement
API Otterly
- Client HTTP intégré pour communication avec API externe
- Cache local des routes pour performances optimales
- Support GET, POST, PUT avec gestion d'erreurs
- Types TypeScript pour sécurité du code
Système de logs
- Console: Logs colorés avec pino-pretty
- Discord: Webhooks pour logs critiques
- Niveaux: debug, info, success, warn, error
- Configuration: Activation sélective par niveau
Installation rapide
git clone https://github.com/L-Antre-des-Loutres/Otterbots.git cd Otterbots
npm install
cp.env.example.env
npm run dev
## Documentation
### Guides principaux
| Document | Description |
|----------|-------------|
| [ ARCHITECTURE.md](../../Antigravity/Arisoutre/docs/ARCHITECTURE.md) | Architecture du projet et structure des modules |
| [ INSTALLATION.md](../../Antigravity/Arisoutre/docs/INSTALLATION.md) | Guide d'installation pas à pas |
| [ CONFIGURATION.md](../../Antigravity/Arisoutre/docs/CONFIGURATION.md) | Configuration détaillée et variables d'environnement |
| [ COMMANDS.md](../../Antigravity/Arisoutre/docs/COMMANDS.md) | Documentation des commandes et création de nouvelles commandes |
| [ EVENTS.md](../../Antigravity/Arisoutre/docs/EVENTS.md) | Événements Discord et création d'événements personnalisés |
| [ API.md](../../Antigravity/Arisoutre/docs/API.md) | Utilisation du module OtterlyAPI |
| [ DEVELOPMENT.md](../../Antigravity/Arisoutre/docs/DEVELOPMENT.md) | Guide de développement et bonnes pratiques |
---
## Configuration
### Structure du projet
Arisoutre/ src/ app/ # Logique métier commands/ # Commandes personnalisées config/ # Configuration embeds/ # Templates d'embeds events/ # Événements utils/ # Utilitaires
otterbots/ # Framework réutilisable handlers/ # Gestionnaires utils/ # Utilitaires framework otterguard/ # Système de protection otterlyapi/ # Client API ottercache/ # Système de cache ...
docs/ # Documentation config/ # Configuration externe build/ # Fichiers compilés
## Développement
### Scripts disponibles
```bash
npm run dev # Développement (lint + build + start)
npm run build # Compilation TypeScript
npm run lint # Vérification ESLint
npm start # Lancer le bot compilé
Créer une commande
// src/app/commands/maCommande.ts
import { SlashCommandBuilder, ChatInputCommandInteraction } from "discord.js";
export default {
data: new SlashCommandBuilder()
.setName("macommande")
.setDescription("Ma nouvelle commande"),
async execute(interaction: ChatInputCommandInteraction): Promise<void> {
await interaction.reply("Hello World!");
}
};
Créer un événement
// src/app/events/MonEvenement.ts
import { Events, Message } from "discord.js";
export default {
name: Events.MessageCreate,
once: false,
async execute(message: Message) {
console.log(`Message de ${message.author.tag}`);
}
};
Guide complet: docs/DEVELOPMENT.md
Architecture
Arisoutre utilise une architecture en couches:
graph TD
A[Application Layer] --> B[Otterbots Framework]
B --> C[Discord.js]
C --> D[Discord API]
A --> E[Commands]
A --> F[Events]
A --> G[Config]
B --> H[OtterGuard]
B --> I[OtterlyAPI]
B --> J[OtterCache]
B --> K[OtterLogs]
- Application Layer: Logique métier spécifique au serveur
- Otterbots Framework: Framework réutilisable pour bots Discord
- Modules: OtterGuard, OtterlyAPI, OtterCache, OtterLogs
Détails: docs/ARCHITECTURE.md
Contribution
Les contributions sont les bienvenues! Voici comment contribuer:
- Fork le projet
- Créez votre branche (
git checkout -b feature/AmazingFeature) - Committez vos changements (
git commit -m 'feat: add amazing feature') - Pushez vers la branche (
git push origin feature/AmazingFeature) - Ouvrez une Pull Request
License
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Auteurs
- Antre des Loutres - GitHub
Modules utilisés
- Discord.js - Framework Discord pour Node.js
- TypeScript - Langage de programmation
- Pino - Système de logs
- Axios - Client HTTP
- node-cron - Planificateur de tâches