Société enregistré à Lyon, France
Discord : LucasG#8004
Travail en ce moment depuis le Canada.
Partager cette page :
LinkedIn
Facebook
Twitter
WhatsApp
Email
Telegram
Après avoir fini le cours-projet consistant à faire un serveur de jeu en Rust, j’ai voulu continuer à manipuler le langage pour me familiariser avec toutes ses notions. Mon professeur de réseau avait toujours de bons conseils en cours, mais il était difficile de tous les retenir d’un coup. C’est pourquoi j’ai eu l’idée de faire un bot qui permettrait de publier automatiquement des messages tous les jours à une heure fixe, pour diffuser un conseil du jour sur son discord communautaire.
Le projet est assez court, mais mon but premier était de manipuler de nouveaux aspects du langage Rust tout en créant un outil pratique. J’ai donc commencé par rassembler les fonctionnalités que je voulais voir apparaître dans le bot avant de me lancer. Voici une petite liste :
Une fois le besoin identifié, je me suis lancé à la recherche de ressources pour réaliser le projet (documentation, vidéos, librairies, …). Finalement, je me suis beaucoup inspiré du dépôt GitHub Serenity/example , qui m’a appris comment utiliser Serenity (un framework Rust permettant d’interagir avec l’API de Discord), mais aussi comment structurer proprement des projets. J’ai également dû utiliser Tokio pour la partie asynchrone et Rusqlite pour la gestion de la base de données.
Le bot repose sur des commandes d’application qui sont spécifiques à un serveur et sont identifiées par la source qui les a créées (dans ce cas, le bot lui-même). J’ai choisi ces commandes car elles bénéficient de l’autocomplétions de Discord, ce qui les rend beaucoup plus faciles à manipuler pour les utilisateurs. Voila un exemple de commande ci-dessous.
Grâce au formatage de Discord sur ces commande l’utilisateur peux facilement utiliser les commandes avec tes description et message d’aide sur chaque commande et chaque paramètre ! En partant du principe que toutes les commandes sont claire, un utilisateur pourrait utiliser le bot sans lire la documentation !
A chaque commande le bot vas répondre avec un message embarqué informant l’utilisateur du résultat de la commande et des action a prendre si besoin. Ici on a l’exemple de réponse à la commande « /scheduler info »
La fonctionnalité principale du bot ayant été implémentée, je suis heureux d’avoir pu apprendre à manipuler de nouveaux aspects de Rust, tels que la gestion des bases de données et l’utilisation de Tokio avec le Framework Serenity. Je pense que ce projet a du potentiel si on lui ajoute de nouvelles fonctionnalités, et cela tombe bien, car l’architecture du projet a été conçue dans cette optique !
Qui sait, nous pourrions ajouter la possibilité de gérer les rôles depuis le bot, voire même de gérer les questions de cours ! À suivre 🙂
Travail en ce moment depuis le Canada.