Skip to content

Commit

Permalink
minor changes
Browse files Browse the repository at this point in the history
  • Loading branch information
BodomBeach committed May 15, 2024
1 parent 6d8c52f commit 626a3ef
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 35 deletions.
5 changes: 5 additions & 0 deletions compose.prod.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
services:
app:
command: npm run start
environment:
- NODE_ENV=production
3 changes: 0 additions & 3 deletions compose.production.yaml

This file was deleted.

36 changes: 8 additions & 28 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Bot discord du Duck-parapente

Bot utilisant l'API **discord.js** pour intéragir avec le [serveur discord du Duck](https://discord.gg/2Nh3A8vc).
Bot utilisant l'API [discord.js](https://discord.js.org/) pour intéragir avec le [serveur discord du Duck](https://discord.gg/2Nh3A8vc).

Projet bénévole porté par les membres du club.

## Usage
### Commandes disponibles
- `/archive` - déplace le salon dans le bon dossier ARCHIVES. Créé un nouveau dossier ARCHIVES si besoin.
- `/archive` - déplace le salon dans le bon dossier 📁ARCHIVES. Créé un nouveau dossier 📁ARCHIVES si besoin.
- `/balise` - affiche les dernières valeurs et directions de vent autour de Grenoble. Source : [murblanc.org/sthil](https://murblanc.org/sthil)


Expand All @@ -19,7 +19,7 @@ Projet bénévole porté par les membres du club.
- Fonction qui manipule les rôles des membres pour afficher certains salons uniquement aux membres ayant cotisé au club pour l'année en cours
- Améliorer la commande `/archive` pour qu'elle transforme le salon en thread dans un unique salon `archives`, nous permettant alors de garder l'historique des sorties ad vitam aeternam (@Romain.L ?)
- Fonction de covoiturage (@JP.DS ?)
- Commande /notam pour afficher toutes les NOTAM en cours entre 2 points GPS
- Commande `/notam` pour afficher toutes les NOTAM en cours entre 2 points GPS

Autres idées :
- Ajouter un webhook qui notifie la création d'un nouvel article sur le site du Duck
Expand All @@ -29,34 +29,14 @@ Autres idées :

### Prérequis

- Node.js v21.7.3 ou plus récent.
- NPM v6 ou plus récent.
- Installer docker et docker-compose
- Créer un fichier `.env` à la racine en suivant cet exemple :
```bash
BOT_TOKEN=Token_du_bot
GUILD_ID=ID_du_serveur
CHROMIUM_PATH=/bin/chromium-browser
GUILD_ID=ID_DU_SERVEUR
BOT_TOKEN=TOKEN_DU_BOT
```

### CLI
```bash
# installer les dépendances npm
npm i
# run bot
node .
```

PS: Pour utiliser certaines commandes (comme `/balise`) il est nécessaire d'installer Chromium (nécessaire pour Puppeteer). Il faut ensuite indiquer le chemin vers l'éxécutable dans le fichier .env (car différent selon les distrubtions Linux). Voir l'exemple de fichier `.env` ci-dessus.

Debian
```
sudo apt update
sudo apt install chromium
```
Ubuntu
```
sudo apt-get update
sudo apt-get install chromium-browser
```

Enfin, j'ai bloqué le package puppeteer à la version 15, les versions plus récentes ne marchent pas sur Debian.
docker compose up --build
```
1 change: 1 addition & 0 deletions src/events/commands/archive.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ const create = () => {

// Called by the interactionCreate event listener when the corresponding command is invoked
const invoke = async (interaction) => {
console.log(`${interaction.user.username} used /archive`);

const allowedCategories = ['🪂 SORTIES', '🏃Sorties pas rapente', '🏆 Compétitions'];

Expand Down
1 change: 1 addition & 0 deletions src/events/commands/balise.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ const create = () => {
};

const invoke = async (interaction) => {
console.log(`${interaction.user.username} used /balise`);
interaction.deferReply();

const image = await getScreenhot('table table tbody');
Expand Down
2 changes: 1 addition & 1 deletion src/events/ready.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ async function invoke(client) {

client.application.commands.set(commandsArray);

console.log(`Successfully logged in as ${client.user.tag}!`);
console.log(`Successfully logged to Discord as ${client.user.tag}!`);
}

export { once, name, invoke };
7 changes: 4 additions & 3 deletions src/jobs/serverStats.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { EmbedBuilder } from 'discord.js';

export async function serverStats(client) {
const guild = client.guilds.cache.get(process.env.GUILD_ID);
const guild = client.guilds.cache.get(process.env.GUILD_ID);

// fetch members first, otherwise guild.roles.cache.get('1232623387965132820').members.size will be empty
let members = await guild.members.fetch();
const time = (new Date).toLocaleString(
Expand Down Expand Up @@ -51,11 +51,12 @@ export async function serverStats(client) {

const statsChannel = client.channels.cache.find(channel => channel.name === 'stats');
let messages = await statsChannel.messages.fetch({ limit: 1 });

// Create or edit existing embed
if (messages.size === 0) {
statsChannel.send({embeds: [embed]});
} else {
messages.first().edit({embeds: [embed]});
} ;
console.log('Server stats updated');
}

0 comments on commit 626a3ef

Please sign in to comment.