Jemibou - Robot Discord multi-fonctions
Robot Discord multi-fonctions avec sa propre base de données JSON et son dashboard web, configurable serveur par serveur
- Type: Robots
- Date: 27 juin 2021
Jemibou est l’un des robots Discord les plus avancés que j’ai développés. Il embarque sa propre base de données interne (basée sur du JSON ou les message d’un salon discord défini) et un site web relié directement à son comportement, permettant de personnaliser le robot indépendamment pour chaque serveur Discord sur lequel il est installé.
Le robot n’est plus actif aujourd’hui, mais reste consultable en vidéo ci-dessous.
Un salon Discord comme premier dashboard
Avant même d’avoir un site web, la version 1.5.0 de Jemibou utilisait une idée un peu insolite : un salon Discord dédié servait de panneau de configuration. Le principe :
- Un salon est assigné aux paramètres du robot sur le serveur.
- Chaque paramètre s’y modifie en écrivant
<nom_du_paramètre> = <valeur_du_paramètre>. - Le robot lit et applique directement le contenu de ce salon.
L’avantage : aucune base de données à héberger, Discord faisant lui-même office de stockage. L’inconvénient : la lecture de tous les messages d’un salon pour en extraire les paramètres est lente. C’est ce qui a motivé la création d’un vrai site web avec dashboard — sans pour autant retirer cette fonctionnalité historique du robot.
Le site web
Page d’accueil
Le header met en avant des statistiques en direct : nombre de serveurs, nombre d’utilisateurs gérés et temps de fonctionnement (uptime) du robot.

Liste des commandes
La liste des commandes disponibles et leur description sont récupérées dynamiquement depuis le robot pour rester toujours à jour.

Quelques commandes notables : settings pour configurer le robot, roletoall pour attribuer un rôle à tous les membres, search pour interroger Google/Wikipédia/GitHub en une seule commande, customfont pour styliser du texte, ou encore game pour jouer directement depuis Discord — le robot comptait une vingtaine de commandes au total, de la modération (ban, kick, clear) aux utilitaires (translate, poll, avatar).
Footer
Le footer présente le développeur ainsi que le dernier changelog du robot, récupéré dynamiquement depuis un fichier changelog.md.

Le dashboard
Le site sert avant tout de dashboard pour configurer le comportement du robot par serveur : préfixe des commandes, liste de mots interdits, messages de bienvenue et d’au revoir (avec choix du salon, variables dynamiques, rôles attribués automatiquement, et possibilité de désactivation).

Connexion et sélection du serveur
L’accès au dashboard se fait via l’authentification Discord de l’utilisateur, qui récupère ainsi la liste des serveurs où il a les permissions nécessaires pour configurer le robot.

La liste des serveurs affichée dépend ensuite de trois cas : serveur non accessible à l’utilisateur (masqué), robot absent du serveur (mis en avant différemment, redirige vers l’ajout du robot), ou serveur normalement configurable (accès direct au dashboard).

Seconde vidéo de présentation, centrée sur le dashboard :
Outils utilisés
| Outil/Framework | Rôle |
|---|---|
| Node.js / JavaScript | Robot Discord et serveur du site |
| discord.js | Interaction avec l’API Discord |
| Base de données JSON interne | Stockage des configurations par serveur |
Code source
Le code source de Jemibou est disponible sur GitHub : github.com/Flymeth/Jemibou.