Skip to content

Commit

Permalink
Merge pull request #130 from thomasbnt/feat-switch-disable-logs
Browse files Browse the repository at this point in the history
feat(logs): Add the possibility to disable logs
  • Loading branch information
thomasbnt authored Mar 5, 2025
2 parents f3b0372 + 8a9ab36 commit afc6d34
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 22 deletions.
17 changes: 15 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,24 @@ Permissions bot :
## Comment le faire fonctionner

1. Assurez-vous d'avoir la version de **NodeJS** supérieure à **16.9.0**.
2. Installez les dépendences avec un coup de `npm install` ou `yarn add`.
2. Installez les dépendances avec un coup de `npm install` ou `yarn add`.
3. Copiez le fichier `config.exemple.json` en `config.json`.
4. Remplissez les configurations dans `config.json`.
5. Vous pouvez désormais allumer votre robot avec `npm run start`.

## Les Logs

Vous avez la possibilité d'activer les logs pour avoir un suivi des arrivées et départs des membres.
Pour l'activer, vous devez renseigner deux informations dans `config.json` :

| value | default | type | description |
| --------------------- | ------- | ------- | ------------------------------------------ |
| WebhookLogs.activated | true | boolean | Activer ou désactiver les logs |
| WebhookLogs.id | null | string | L'ID du channel où les logs seront envoyés |
| WebhookLogs.token | null | string | Le token du webhook pour les logs |

Si vous l'activez, veillez donc à bien remplir les informations demandées pour que les logs fonctionnent correctement.

## Les modules complémentaires

### Module Unsplash
Expand Down Expand Up @@ -153,7 +166,7 @@ Merci à ceux qui le feront. ❤️

## Informations complémentaires

L'image a été modifiée par [Thomas Bnt](https://github.com/thomasbnt), veuillez donc à ne pas l'utiliser publiquement et/ou commercialement. Initialement, l'image appartient à [Raspberry Pi](https://www.raspberrypi.org/trademark-rules/).
L'image a été modifiée par [Thomas Bnt](https://github.com/thomasbnt), veillez donc à ne pas l'utiliser publiquement et/ou commercialement. Initialement, l'image appartient à [Raspberry Pi](https://www.raspberrypi.org/trademark-rules/).

- 📣 Suis-moi sur [Twitter](https://twitter.com/Thomasbnt_)
- 🔗 Passe un tour sur [mon site web](https://thomasbnt.dev) !
Expand Down
1 change: 1 addition & 0 deletions config.exemple.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"IDWelcomeChannel": "",
"IDAdsChannel": "",
"WebhookLogs": {
"WebhookLogsActivated": true,
"id": "",
"token": ""
},
Expand Down
48 changes: 28 additions & 20 deletions modules/BordPiHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,21 @@ const { EmbedBuilder, WebhookClient } = require('discord.js')
const config = require('../config.json')
const webhook = new WebhookClient({
id: config.WebhookLogs.id,
token: config.WebhookLogs.token
token: config.WebhookLogs.token,
})

class BordPiHelper {
// Simplement pour les logs.
Logs (member, action, color) {
Logs(member, action, color) {
const LogEmbed = new EmbedBuilder()
.setColor(color || config.colors.InfoColor)
.setAuthor({
name: member.username,
iconURL: member.avatarURL({
dynamic: true,
size: 1024
size: 1024,
}),
url: `https://whois.mrrobot.app/${member.id}`
url: `https://whois.mrrobot.app/${member.id}`,
})
.setDescription(`${action}`)
if (config.WebhookLogs.id && config.WebhookLogs.token) {
Expand All @@ -25,72 +25,80 @@ class BordPiHelper {
}

// Même chose ici, pour les logs, mais spécialement pour les arrivants et départs de membres.
LogsMemberInOutServer (member, status, color_embed) {
LogsMemberInOutServer(member, status, color_embed) {
const LogsJoinEmbed = new EmbedBuilder()
.setColor(color_embed)
.setAuthor({
name: `${member.user.username} nous a ${status}`,
iconURL: member.avatarURL({
format: 'webp',
dynamic: true,
size: 1024
size: 1024,
}),
url: `https://whois.mrrobot.app/${member.id}`
url: `https://whois.mrrobot.app/${member.id}`,
})
.addFields([
{
name: 'Création',
value: `<t:${this.IsoStringToTimeStamp(member.user.createdTimestamp)}>`,
inline: true
inline: true,
},
{
name: 'Identifiant',
value: `\`${member.id}\``,
inline: true
}
inline: true,
},
])
.setThumbnail(member.user.displayAvatarURL())
.setTimestamp(new Date())
if (config.WebhookLogs.id && config.WebhookLogs.token) {
if (
config.WebhookLogs.activated &&
config.WebhookLogs.id &&
config.WebhookLogs.token
) {
webhook.send({ embeds: [LogsJoinEmbed] }).catch(console.error)
}
}

WarnAds (msg, status, color_embed) {
WarnAds(msg, status, color_embed) {
const WarnAdsEmbed = new EmbedBuilder()
.setColor(color_embed)
.setAuthor({
name: `${msg.member.user.username} a fait une publicité`,
iconURL: msg.member.avatarURL({
format: 'webp',
dynamic: true,
size: 1024
size: 1024,
}),
url: `https://whois.mrrobot.app/${msg.member.id}`
url: `https://whois.mrrobot.app/${msg.member.id}`,
})
.setDescription(
`<@${msg.author.id}> a fait une publicité Discord dans le salon <#${msg.channel.id}>.\n\n> ${msg.content}`
`<@${msg.author.id}> a fait une publicité Discord dans le salon <#${msg.channel.id}>.\n\n> ${msg.content}`,
)
.setThumbnail(msg.member.user.displayAvatarURL())
.setTimestamp(new Date())
if (config.WebhookLogs.id && config.WebhookLogs.token) {
if (
config.WebhookLogs.activated &&
config.WebhookLogs.id &&
config.WebhookLogs.token
) {
webhook.send({ embeds: [WarnAdsEmbed] }).catch(console.error)
}
}

// Cela récupère value et la convertit en timestamp.
IsoStringToTimeStamp (value) {
IsoStringToTimeStamp(value) {
const date = new Date(value)
return Math.floor(date / 1000)
}

// Une couleur aléatoire pour vos embeds ? C'est ici.
getRandomColor () {
getRandomColor() {
return `#${((Math.random() * 0xffffff) << 0).toString(16)}`
}

// Ce sont les phrases qui seront affichées au hasard dans guildMemberAdd pour le message de bienvenue.
getRandomMotd () {
getRandomMotd() {
const quotes = [
'Bienvenue sur le serveur !',
'Oh un arrivant !',
Expand All @@ -99,7 +107,7 @@ class BordPiHelper {
'La cavalerie est arrivée !',
'Bienvenue à toi !',
'Me voilà !',
'*pouf* MAGIE !'
'*pouf* MAGIE !',
]
return quotes[Math.floor(Math.random() * quotes.length)]
}
Expand Down

0 comments on commit afc6d34

Please sign in to comment.