/ChappyBot

Ce projet consiste en la réalisation d'un bot Discord. 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).

MIT LicenseMIT

ChappyBot

Logo ChappyBot

Demandez moi n'importe quoi ! GitHub license Heroku Discord Tweet Codacy Badge discord.js GitHub issues GitHub issues-closed

Sommaire

  1. Présentation
  2. Prérequis
  3. Installation du bot
  4. Configuration du bot
  5. Activation du bot
  6. Utilisation du bot
  7. APIs externes
  8. Questions et demandes

Partie 1 - Présentation

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.

Discord API

Auteur

Borderon Kévin

Partie 2 - Prérequis

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).

Partie 3 - Installation du bot

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

Arborescence du projet

É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.

Partie 4 - Configuration du bot

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.

Partie 5 - Activation du bot

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.

Partie 6 - Utilisation du 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.

Partie 7 - APIs externes

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.

?blague
Blague aléatoire (sans précision du type désiré)

?blague dev
Blague aléatoire (précision du type désiré)

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.
Météo pour la ville de Vay en Inde

?meteo Vay, France
Météo pour la ville de Vay en France

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.

?cat
Image de chat aléatoire (sans précision de la catégorie désirée)

?cat boxes
Image de chat aléatoire (précision de la catégorie désirée)

Pour la création de notre commande ?dog, nous avons utilisé TheDogAPI, vous trouverez ci-dessous un exemple de cette commande.

?dog
Image de chien aléatoire (sans précision de la catégorie désirée)

Partie 8 - Questions et demandes

Si vous avez des questions ou des demandes d'ajout sur le bot, n'hésitez pas à me contacter grâce à :