Skip to content

Commit

Permalink
chore: use latest version of custom modules, move to ESM (#103)
Browse files Browse the repository at this point in the history
* chore: use latest version of custom modules, move to ESM

* ci: bump node version in build pipeline
  • Loading branch information
HunteRoi authored Sep 19, 2024
1 parent f9ce43a commit 4bdcb19
Show file tree
Hide file tree
Showing 28 changed files with 738 additions and 712 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ on:
jobs:
build:
concurrency: ci-${{ github.ref }}

runs-on: ubuntu-latest

strategy:
matrix:
node-version: [18.x]
node-version: [20.x]

steps:
- uses: actions/checkout@v3
Expand Down
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"node_modules": true
},
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
"source.fixAll.eslint": "explicit"
},
"npm.packageManager": "yarn",
"files.eol": "\n",
Expand Down
36 changes: 36 additions & 0 deletions config.development.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,42 @@
{
"roleid": "1028257512312557597",
"emote": "🇫"
},
{
"roleid": "1285929298192240641",
"emote": "🇦"
},
{
"roleid": "1285929502697984093",
"emote": "🇧"
},
{
"roleid": "1285929552887156798",
"emote": "🇨"
},
{
"roleid": "1285929600005705800",
"emote": "🇩"
},
{
"roleid": "1285929658541408306",
"emote": "🇪"
},
{
"roleid": "1285929681240981577",
"emote": "🇫"
},
{
"roleid": "1285929699725545493",
"emote": "🇬"
},
{
"roleid": "1285929715269636176",
"emote": "🇭"
},
{
"roleid": "1285929727462346763",
"emote": "🇮"
}
]
},
Expand Down
36 changes: 36 additions & 0 deletions config.production.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,42 @@
{
"roleid": "1152381279136927914",
"emote": "🇭"
},
{
"roleid": "1283404168257605672",
"emote": "🇦"
},
{
"roleid": "1283404559397683241",
"emote": "🇧"
},
{
"roleid": "1283404592985542686",
"emote": "🇨"
},
{
"roleid": "1283404631925588081",
"emote": "🇩"
},
{
"roleid": "1283404659381375058",
"emote": "🇪"
},
{
"roleid": "1283404688632451155",
"emote": "🇫"
},
{
"roleid": "1283404711252197376",
"emote": "🇬"
},
{
"roleid": "1283404744039202917",
"emote": "🇭"
},
{
"roleid": "1283404783264206859",
"emote": "🇮"
}
]
},
Expand Down
6 changes: 3 additions & 3 deletions index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import * as dotenv from 'dotenv';
import { GatewayIntentBits } from 'discord.js';

import { DatadropClient } from './src/datadrop';
import { readConfig } from './src/config';
import { Configuration } from './src/models/Configuration';
import { DatadropClient } from './src/datadrop.js';
import { readConfig } from './src/config.js';
import { Configuration } from './src/models/Configuration.js';

dotenv.config({ debug: Boolean(process.env.DEBUG) });

Expand Down
30 changes: 16 additions & 14 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
{
"name": "datadrop",
"version": "1.10.2",
"version": "1.11.0",
"type": "module",
"main": "./build/index.js",
"scripts": {
"start": "docker-compose up --build",
"stop": "docker-compose down",
"build": "rm -rf build/ && tsc",
"lint": "eslint --fix --ext .ts .",
"env-gen": "node ./scripts/envgen.js"
"env-gen": "node ./scripts/envgen.cjs"
},
"repository": {
"type": "git",
Expand All @@ -20,19 +21,20 @@
},
"homepage": "https://github.com/section-IG/DataDrop#readme",
"dependencies": {
"@hunteroi/advanced-logger": "^0.0.3",
"@hunteroi/discord-selfrole": "^3.2.0",
"@hunteroi/discord-temp-channels": "^3.1.0",
"@hunteroi/discord-verification": "^1.4.0",
"discord.js": "^14.8.0",
"dotenv": "^16.0.3",
"ts-postgres": "^1.3.0"
"@hunteroi/advanced-logger": "^0.2.0",
"@hunteroi/discord-selfrole": "^4.0.4",
"@hunteroi/discord-temp-channels": "^3.3.0",
"@hunteroi/discord-verification": "^1.5.0",
"@sendgrid/mail": "8.1.3",
"discord.js": "^14.16.2",
"dotenv": "^16.4.5",
"ts-postgres": "^1.9.0"
},
"devDependencies": {
"@types/node": "^18.7.14",
"@typescript-eslint/eslint-plugin": "^5.36.2",
"@typescript-eslint/parser": "^5.36.2",
"eslint": "^8.23.0",
"typescript": "^4.8.2"
"@types/node": "^20.12.7",
"@typescript-eslint/eslint-plugin": "^7.6.0",
"@typescript-eslint/parser": "^7.6.0",
"eslint": "^9.0.0",
"typescript": "^5.4.4"
}
}
File renamed without changes.
7 changes: 4 additions & 3 deletions src/commands/announce.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { ChannelType, Colors, EmbedBuilder, Message, TextChannel } from 'discord.js';

import { DatadropClient } from '../datadrop';
import { DatadropClient } from '../datadrop.js';

module.exports = {
export default {
name: 'announce',
aliases: ['annonce'],
description:
Expand All @@ -13,7 +13,8 @@ module.exports = {
adminOnly: true,

async execute(client: DatadropClient, message: Message, args: string[]) {
if (!message.guild) return;
if (!message.inGuild()) return;

const { announce } = client.config;

const embed = new EmbedBuilder()
Expand Down
7 changes: 4 additions & 3 deletions src/commands/email.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { EmbedBuilder, Message } from 'discord.js';

import { DatadropClient } from '../datadrop';
import { DatadropClient } from '../datadrop.js';

const people = [
{
Expand All @@ -13,7 +13,7 @@ const people = [
},
];

module.exports = {
export default {
name: 'email',
aliases: ['emails'],
description:
Expand All @@ -30,6 +30,7 @@ module.exports = {
people.map(p => ({ name: p.name, value: p.emails.join(', '), inline: true }))
);

await message.channel.send({ embeds: [embed] });
if (message.channel.isSendable())
await message.channel.send({ embeds: [embed] });
}
};
9 changes: 5 additions & 4 deletions src/commands/eval.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { Message, codeBlock } from 'discord.js';

import { DatadropClient } from '../datadrop';
import { clean } from '../helpers';
import { DatadropClient } from '../datadrop.js';
import { clean } from '../helpers.js';

module.exports = {
export default {
name: 'eval',
description: 'Évalue du code Javascript.',
ownerOnly: true,
Expand All @@ -29,7 +29,8 @@ module.exports = {
} catch (err) {
content = `// An error occured\n\n${clean(err)}`;
} finally {
message.channel.send(codeBlock('xl', content));
if (message.channel.isSendable())
message.channel.send(codeBlock('xl', content));
}
}
};
14 changes: 8 additions & 6 deletions src/commands/help.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { ChannelType, ColorResolvable, EmbedBuilder, Message } from 'discord.js';

import { DatadropClient } from '../datadrop';
import { DatadropClient } from '../datadrop.js';

function buildEmbed(title: string, color: ColorResolvable, description: string): EmbedBuilder {
return new EmbedBuilder().setTitle(title).setColor(color).setDescription(description);
}

module.exports = {
export default {
name: 'help',
description:
"Liste toutes les commandes disponibles ou les informations d'une commande fournie en paramètres",
Expand All @@ -16,7 +16,7 @@ module.exports = {
execute: async (client: DatadropClient, message: Message, args: string[]) => {
const { prefix } = client.config;
const { commands } = client;
const data = [];
const data: string[] = [];
let embed: EmbedBuilder;

if (!args.length) {
Expand All @@ -34,7 +34,8 @@ module.exports = {
commands.find((c) => c.aliases && c.aliases.includes(name));

if (!command) {
await message.channel.send("Ce n'est pas une commande valide.");
if (message.channel.isSendable())
await message.channel.send("Ce n'est pas une commande valide.");
return;
}

Expand All @@ -48,8 +49,9 @@ module.exports = {
}

try {
if (message.channel.type === ChannelType.DM) { await message.author.send({ embeds: [embed] }); }
else { await message.channel.send({ embeds: [embed] }); }
if (message.channel.isSendable()) {
await message.channel.send({ embeds: [embed] });
}
} catch (err) {
client.logger.error(`Erreur durant l'envoi du message d'aide pour ${message.author.username}:\n` + err);
}
Expand Down
5 changes: 3 additions & 2 deletions src/commands/link.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, Message } from 'discord.js';
import { DatadropClient } from '../datadrop';

module.exports = {
import { DatadropClient } from '../datadrop.js';

export default {
name: 'link',
aliases: ['lier', 'compte'],
description: 'Lie ton compte Discord avec ton adresse Hénallux!',
Expand Down
6 changes: 3 additions & 3 deletions src/commands/ping.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { Message } from 'discord.js';

import { DatadropClient } from '../datadrop';
import { DatadropClient } from '../datadrop.js';

module.exports = {
export default {
name: 'ping',
description: 'Pong!',

async execute(client: DatadropClient, message: Message, args: string[]) {
const msg = await message.channel.send('Calcul en cours...');
const msg = await message.reply('Calcul en cours...');
await msg.edit(`Pong: ${client.ws.ping} ms`);
},
};
14 changes: 7 additions & 7 deletions src/commands/pinmsg.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { Message, MessageResolvable } from 'discord.js';

import { DatadropClient } from '../datadrop';
import { DatadropClient } from '../datadrop.js';

module.exports = {
export default {
name: 'pinmsg',
description: "Ajoute ou retire le message lié des épinglés du canal si l'utilisateur fait partie du rôle 'Professeur(e)'.\n\nLes arguments possibles sont:\n • `--verbose` ou `-v` pour avoir un retour texte pour la commande\n",
aliases: ['pin', 'épingler', 'unpin', 'unpinmsg', 'désépingler'],
Expand All @@ -18,15 +18,15 @@ module.exports = {

const hasAnyRequiredRole = [communitymanagerRoleid, adminRoleid, delegatesRoleid, professorRoleid].some(r => message.member!.roles.cache.has(r));
if (!hasAnyRequiredRole) {
if (verboseIsActive) await message.channel.send(`❌ **Oups!** - Tu n'es pas membre d'un des rôles nécessaires et n'es donc pas éligible à cette commande.`);
if (verboseIsActive && message.channel.isSendable()) await message.channel.send(`❌ **Oups!** - Tu n'es pas membre d'un des rôles nécessaires et n'es donc pas éligible à cette commande.`);
else await message.react('❌');

client.logger.info(`Le membre <${message.member.displayName}> (${message.member.id}) a tenté d'épingler/désépingler le message <${reference.messageId}> mais n'a pas les droits nécessaires.`);
return;
}

if (!reference || reference.channelId != message.channel.id) {
if (verboseIsActive) await message.channel.send('❌ **Oups!** - Pas de référence. Peut-être avez-vous oublié de sélectionner le message à (dés)épingler en y répondant? (cfr <https://support.discord.com/hc/fr/articles/360057382374-Replies-FAQ>)');
if (verboseIsActive && message.channel.isSendable()) await message.channel.send('❌ **Oups!** - Pas de référence. Peut-être avez-vous oublié de sélectionner le message à (dés)épingler en y répondant? (cfr <https://support.discord.com/hc/fr/articles/360057382374-Replies-FAQ>)');
else await message.react('❌');

client.logger.info(`Le membre <${message.member.displayName}> (${message.member.id}) a tenté d'épingler/désépingler un message sans le référencer.`);
Expand All @@ -36,7 +36,7 @@ module.exports = {
const channel = message.channel;
const parentMessage = await channel.messages.fetch(reference.messageId as MessageResolvable);
if (!parentMessage) {
if (verboseIsActive) await message.channel.send('❌ **Oups!** - Message non trouvé. Peut-être a-t-il été supprimé?');
if (verboseIsActive && message.channel.isSendable()) await message.channel.send('❌ **Oups!** - Message non trouvé. Peut-être a-t-il été supprimé?');
else await message.react('❌');

client.logger.info(`Le membre <${message.member.displayName}> (${message.member.id}) a tenté d'épingler/désépingler un message non-trouvé.`);
Expand All @@ -45,11 +45,11 @@ module.exports = {

if (parentMessage.pinned) {
await parentMessage.unpin();
if (verboseIsActive) await message.channel.send('✅ Message désépinglé!');
if (verboseIsActive && message.channel.isSendable()) await message.channel.send('✅ Message désépinglé!');
else await message.react('✅');
} else {
await parentMessage.pin();
if (verboseIsActive) await message.channel.send('✅ Message épinglé!');
if (verboseIsActive && message.channel.isSendable()) await message.channel.send('✅ Message épinglé!');
else await message.react('✅');
}
client.logger.info(`Le membre <${message.member.displayName}> (${message.member.id}) a épinglé/désépinglé le message <${parentMessage.id}>.`);
Expand Down
6 changes: 3 additions & 3 deletions src/commands/reload.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { Message } from 'discord.js';

import { DatadropClient } from '../datadrop';
import { DatadropClient } from '../datadrop.js';

module.exports = {
export default {
name: 'reload',
description: 'Recharge la configuration du bot',
ownerOnly: true,
Expand All @@ -11,6 +11,6 @@ module.exports = {
const { ok_hand } = client.config;
client.logger.info('Recharge de la configuration...');
await client.reloadConfig();
await message.channel.send(ok_hand);
await message.reply(ok_hand);
}
};
Loading

0 comments on commit 4bdcb19

Please sign in to comment.