Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qquentinv/thegoodbot
Discord bot
https://github.com/qquentinv/thegoodbot
bot discord discord-bot discord-js
Last synced: about 1 month ago
JSON representation
Discord bot
- Host: GitHub
- URL: https://github.com/qquentinv/thegoodbot
- Owner: qquentinv
- Created: 2024-08-14T20:10:50.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-10-10T21:48:22.000Z (about 1 month ago)
- Last Synced: 2024-10-12T03:20:10.223Z (about 1 month ago)
- Topics: bot, discord, discord-bot, discord-js
- Language: TypeScript
- Homepage:
- Size: 214 KB
- Stars: 3
- Watchers: 1
- Forks: 3
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Bot discord
## Sommaire
- [Description](#description)
- [Commandes](#commandes)
- [Pré-requis](#pré-requis)
- [Logiciel](#logiciel)
- [Dépendances](#dépendances)
- [Base de données](#base-de-données)
- [Configuration](#configuration)
- [Lancer le projet](#lancer-le-projet)
- [Réglages](#réglages)
- [Développement](#développement)
- [Tests](#tests)
- [Déploiement](#déploiement)
- [Ressources](#ressources)## Description
Ce projet a pour but de créer un bot discord qui a les fonctionnalités suivantes:
- Lancer des alertes de stream twitch
- Lancer des reminders quand les personnes n'ont pas stream depuis un certain temps
- Crée un word à partir d'un channel grâce à la commande !word## Commandes
- !help
- !streamers (list all stream we follow)
- !add (add a stream to follow)
- !delete (unfollow a stream)
- !laststream (date of the last stream)
- !word (generate docx)## Pré-requis
### Logiciel
- Installer nodejs
- Installer npm### Dépendances
Pour lancer le projet, il faut installer les dépendances :
> `npm i`
### Base de données
Pour mettre en place la base de données, il faut lancer la commande suivant :
> `npm run migrate`
Notre base de données fonctionne avec un système de migration.
Pour chaque changement que vous voulez faire dans notre base de données, il faut créer un fichier `XXXX-description.sql` avec `XXXX` qui correspond au nombre qui vont déterminer l'ordre d'exécution.## Configuration
Pour configurer le bot sur votre serveur discord, il vous faudra dupliquer le fichier `config-template.json` et le renommer en `config.json`.
Ensuite il vous faudra remplacer les valeurs de chaque variable avec les votres.## Lancer le projet
Il suffit de lancer la commande suivante avec l'environnement de chargé :
> `npm start`
## Réglages
### Discord
Le bot nécessite des configurations sur la [plateforme de développement de discord](https://discord.com/developers/applications).
C'est notamment ici que se passe la création de l'application, la modification du nom, de l'image et la génération du token.### Twitch
Pour effectuer des appels API vers Twitch, il faut créer une application via le lien suivant [https://dev.twitch.tv/console/apps](https://dev.twitch.tv/console/apps).
Après la création de votre application, récupérez le "client id" et générez un secret.## Développement
Pour lancer TheGoodBot, il suffit d'exécuter la commande. Grâce au paramètre `--watch`, le projet se relancera à chaque modification apportée au code.
> `npm run debug`
Note : nous utilisons `node:sqlite` qui est fonctionnalité expérimentale de Node.js et qui peut changer à tout moment.
### Migrer le fichier `config.json`
Depuis la mise en place de la BDD Sqlite, l'utilisation d'un fichier `.json` pour la configuration n'est plus nécessaire. Vous pouvez migrer vers un `.env.local` avec la commande `node .bin/convert-json-config-to-env.js`.
## Tests
Des tests unitaires sur certaines parties du code sont présents dans le dossier `tests` à la racine du projet.
Pour lancer les tests, il suffit d'éxécuter la commmande suivante :> `npm run test`
## Déploiement
Ce bot peut être déployé sur un VPS ou encore un raspberry.
Pour cela, j'utilise le package `pm2`. il permet de lancer des applications node en tant que service unix.
On peut le lancer grâce à la commande :> `pm2 start npm --name "TheGoodBot" -- start`
On peut consulter les différentes applications en cours de lancement grâce à la commande :
> `pm2 status`
On peut aussi relancer facilement le serveur grâce à la commande :
> `pm2 restart "TheGoodBot"`
On a même accès à un tableau de bord qui contient notamment les statistiques de performance et les logs avec la commande :
> `pm2 dash`
Pour obtenir seulement les logs, utiliser :
> `pm2 log`
Pour terminer, on peut arrêter le bot grâce à la commande :
> `pm2 stop "TheGoodBot"`
## Ressources
- [Discord.js](https://discordjs.guide/)