- Présentation
- Prérequis
- Installation du bot
- Configuration du bot
- Activation du bot
- Utilisation du bot
- APIs externes
- Questions et demandes
Ce projet consiste en la réalisation d'un bot Discord, appelé ChappyBot. Ce dernier devra réaliser différentes interactions (commandes), nous utiliserons différentes API afin d'améliorer ses capacités de fonctionnement. Ce bot sera exécuté depuis un Raspberry Pi, mais vous pouvez le lancer depuis n'importe quelle autre plateforme (Windows, Mac, Linux, autre carte de développement). Pour la réalisation de ce projet, je me suis basé sur les guides et tutoriels de création de bot de la chaîne Youtube getCodingKnowledge.
#Nouveautés :
- Déploiement du bot sur la plateforme Heroku ;
- Serveur Discord de test pour un accès au public ChappyBot Communauté ;
- Utilisation de Blagues API pour notre nouvelle commande blague ;
- Utilisation de WeatherAPI pour notre nouvelle commande meteo Version 2 finale.
#FutursDéveloppements :
- Enregistrement d'un débat au sein du discord ;
- Consultation des débats disponibles, enregistrés au format mp3 et stockés sur la machine lançant le bot ;
- Création de commandes musicales + radio ;
- Création de mini-jeux et système de classement + expérience ;
- Retour des anniversaires du jour ;
- Consultation du profil et différents éléments d'un profil d'un joueur (API League of Legends - Riot Games) ;
- Autres, à voir en fonction des demandes :).
Si vous souhaitez tester ce bot discord, je vous invite à rejoindre le serveur Discord ci-dessous. Le bot y est déployé grâce à la plateforme Heroku. Si le bot est déconnecté (version gratuite d'Heroku), merci de m'envoyer un message privé, pour que je le réactive.
Borderon Kévin
Vous devez au préalable, avoir installé sur votre machine Git et Node.js.
Pour savoir si vous possédez git, tapez la commande dans un terminal : git --version (vous devriez voir apparaître la version de git sinon une erreur).
Pour savoir si vous possédez nodejs, tapez la commande node --version (vous devriez voir apparaître la version de node sinon une erreur) et pour npm : npm --version (pareil, obtention de sa version ou erreur).
Une fois avoir cloné ce dépôt git. Placez vous sur la branche que vous souhaitez récupérer (git checkout <nom_branche>), déplacez-vous sur cette branche (git branch <nom_branche>) puis récupérez le contenu présent sur le dépôt git (git pull).
Pour récupérer le contenu du bot discord, veuillez vous déplacer sur une autre branche que la master, celle-ci ne présente que le projet.
Par exemple, si nous souhaitons récupérer le contenu de la branche version_1, nous devons faire git checkout version_1 (suivez ensuite les autres commandes).
Une fois la branche récupérée, placez-vous dans le dossier bot-discord. Executez la commande npm install, puis npm run docs.
L'arborescence du dossier, devra être la suivante :
\
\ bot-discord
\commandes
\configuration
\contenu
\docs
\evenements
\node_modules
- bot.js
- jsdoc.json
- package.json
- package-lock.json
- README.md
Élément | Description |
---|---|
/bot-discord |
Répertoire du projet du bot discord |
/commandes |
Répertoire contenant des sous-dossiers, qui comportent nos fichiers commandes .js |
/configuration |
Répertoire contenant nos fichiers de configuration pour les API que nous allons utiliser |
/contenu |
Répertoire contenant les différents fichiers (image etc.) utilisés par nos commandes |
/docs |
Répertoire contenant notre documentation, ouvrez index.html dans votre navigateur |
/evenements |
Répertoire contenant les évènements de notre bot |
/node_modules |
Répertoire contenant les modules node nécessaires pour notre bot |
bot.js |
Fichier principale qui lance l'exécution de notre bot |
jsdoc.json |
Fichier de configuration pour le module Jsdoc, réalisant notre documentation |
package.json |
Fichier de configuration, permettant l'installation des modules node nécessaires |
package-lock.json |
Fichier généré lorsque l'on utilise la commande npm install dans le dossier bot-discord |
README.md |
Fichier présentant le projet de notre bot Discord |
Si vous souhaitez plus de détails, n'hésitez pas à regarder directement les fichiers ou à me contacter.
Comme je le disais plus haut, ce bot sera présent sur un Raspberry Pi. Pour pouvoir créer et customiser votre propre bot personnel, je vous invite à consulter la première partie ce tutoriel en Anglais Creating a Bot Account, celle qui présente la création du Bot sur la plateforme Discord dédiée aux développeurs.
Vous pouvez également trouver d'autres tutoriels en Français ou dans une autre langue concernant la création d'un bot.
Une fois votre bot créé, customisé (nom, image etc.), vous devez modifier le fichier config.js avant l'utilisation du bot, remplacez <votre_token> par le token de votre bot présent sur la plateforme où vous avez créé une application et un bot. Le token se situe à l'emplacement suivant : onglet Bot, Build-A-Bot et Token, copiez le token présent dans notre fichier. D'autres tokens liés aux APIs, devront être ajoutés afin de pouvoir utiliser le bot à 100%, veuillez suivre les indications à côté des tokens en question.
Votre bot est dorénavant lié à ce projet, il utilisera ce qui y sera développé (faites des gits pull régulièrement) en plus de ce que vous développerez. Pour ajouter votre bot à un serveur Discord, je vous invite à consulter le tutoriel précédent.
Pour activer le bot, placez-vous dans le dossier bot-discord, puis exécutez la commande : node bot.js, vous devriez voir les commandes chargées, ainsi que le message connexion du bot ...
Tant que votre terminal sera ouvert avec la commande précédente saisie, le bot fonctionnera, nous vous indiquerons plus tard comment lancer en arrière-plan le bot.
Pour utiliser correctement le bot, vous devez écrire dans un channel de votre discord ?nom_commande <argument_1> <argument_2> (etc. d'autre arguments si nécessaires). La première commande que je vous invite à tester est la commande ?help. Cette commande vous indiquera l'ensemble des commandes disponibles sur votre serveur Discord.
Pour connaître l'utilisation d'une commande, veuillez écrire : ?help <nom_commande>, par exemple ?help ping vous décrira le fonctionnement de ?ping.
Liste des commandes actuelles :
Nom de la commande | Statut du développement | Catégorie | Description |
---|---|---|---|
feed | terminé | Même | Renvoie l'image d'un collaborateur ayant feed |
rage | terminé | Même | Renvoie l'image de l'utilisateur rageant |
sel | terminé | Même | Renvoie l'image de l'utilisateur salant |
help | terminé | Serveur | Renvoie l'utilisation d'une ou des commandes présentes en message privé |
membres | terminé | Serveur | Renvoie les informations concernant les membres présents sur ce serveur |
ping | terminé | Serveur | Renvoie la latence du bot |
roles | terminé | Serveur | Renvoie les rôles disponibles sur ce serveur |
userinfos | terminé | Utilisateur | Renvoie les informations d'un utilisateur mentionné |
userroles | terminé | Utilisateur | Renvoie les rôles de l'utilisateur mentionné |
blague | terminé | Utilitaire | Renvoie une blague aléatoirement |
cat | terminé | Utilitaire | Renvoie une image ou un gif aléatoire d'un chat |
debat | en cours | Utilitaire | Création d'un débat et de son enregistrement audio |
dog | terminé | Utilitaire | Renvoie une image ou un gif aléatoire d'un chien |
meteo | terminé | Utilitaire | Renvoie la météo pour une ville précise |
projet | terminé | Utilitaire | Renvoie le lien du projet GitHub bot-discord |
statutDebat | en cours | Utilitaire | Renvoie le statut du débat actuel |
stopDebat | en cours | Utilitaire | Arrête le débat en cours et de son enregistrement audio |
D'autres commandes viendront s'ajouter au fur et à mesure.
Pour la création de notre commande ?blague aucun argument ou <type_blague> parmi ['beauf', 'blondes', 'dark', 'dev', 'global', 'limit'], nous avons utilisé Blagues API, vous trouverez ci-dessous deux exemples de cette commande.
Pour la création de notre commande ?meteo <nom_ville> ou ?meteo <nom_ville>, <nom_pays>, nous avons utilisé WeatherAPI, vous trouverez ci-dessous deux exemples de cette commande, un cas de villes homonymes dans 2 pays distincts.
?meteo Vay => l'API pointera sur la ville de Vay en Inde.
Pour la création de notre commande ?cat aucun argument ou <categorie_chat> parmi ['boxes', 'clothes', 'hats', 'sinks', 'space', 'sunglasses', 'ties'], nous avons utilisé TheCatAPI, vous trouverez ci-dessous deux exemples de cette commande.
Pour la création de notre commande ?dog, nous avons utilisé TheDogAPI, vous trouverez ci-dessous un exemple de cette commande.
Si vous avez des questions ou des demandes d'ajout sur le bot, n'hésitez pas à me contacter grâce à :
- mon mail (Cf. mon profil GitHub) ;
- mon compte Twitter : @Kevin_Borderon ;
- mes issues associées au projet bot discord.