upgrade code

This commit is contained in:
arthur
2024-04-28 00:19:55 +02:00
parent 4ec8c46f74
commit 7f412ec02e
8 changed files with 173 additions and 130 deletions
+92 -52
View File
@@ -1,67 +1,107 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('myDatabase.db');
module.exports = { module.exports = {
name: 'encode', name: "encode",
description: 'Encoder ou décoder un language chiffré', aliases: ["encoder", "decode", "decoder"],
utilisation: '<base64|binaire> <encode|decode> <texte>', description: "Encoder ou décoder un language chiffré",
emote: "🔐", utilisation: "<base64|binaire> <encode|decode> <texte>",
category: "utils", emote: "🔐",
async execute(message, args) { category: "utils",
if (args.length < 3) {
return message.reply('Usage: `encode <base64|binaire> <encode|decode> <texte>`');
}
const subcommand = args[0]; async execute(message, args, client) {
const action = args[1]; if (args.length < 3) {
const text = args.slice(2).join(' '); const botId = client.user.id;
const defaultPrefix = "+";
let data = await new Promise((resolve, reject) => {
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
if (err) {
console.error(err.message);
reject(err);
}
resolve(row ? JSON.parse(row.value) : {});
});
});
const prefix = data.prefix || defaultPrefix;
if (subcommand !== 'base64' && subcommand !== 'binaire') { const embed = new EmbedBuilder()
return message.reply('Invalid subcommand. Use `base64` or `binaire`.'); .setColor("#FF0000")
} .setTitle("❌ Erreur")
.setDescription(`Usage: ${prefix}encode \`<base64|binaire>\` \`<encode|decode>\` \`<texte>\``)
.setTimestamp();
if (action !== 'encode' && action !== 'decode') { const button = new ButtonBuilder()
return message.reply('Invalid action. Use `encode` or `decode`.'); .setEmoji('✖️')
} .setCustomId('delete')
.setStyle(ButtonStyle.Secondary);
if (subcommand === 'base64') { const row = new ActionRowBuilder()
let result; .addComponents(button);
if (action === 'encode') {
result = btoa(text);
} else {
result = atob(text);
}
return message.channel.send(`**Resultat:** \`${result}\``);
}
if (subcommand === 'binaire') { const errorMessage = await message.reply({ embeds: [embed], components: [row]});
let result;
if (action === 'encode') { const filter = i => i.customId === 'delete' && i.user.id === message.author.id;
result = texteVersBinaire(text); const collector = errorMessage.createMessageComponentCollector({ filter, time: 300000 });
} else { collector.on('collect', async () => {
result = binaireVersTexte(text); return errorMessage.delete();
} });
return message.channel.send(`**Resultat:** \`${result}\``); } else {
const subcommand = args[0];
const action = args[1];
const text = args.slice(2).join(" ");
if (subcommand !== "base64" && subcommand !== "binaire") {
return message.reply("Invalid subcommand. Use `base64` or `binaire`.");
}
if (action !== "encode" && action !== "decode") {
return message.reply("Invalid action. Use `encode` or `decode`.");
}
if (subcommand === "base64") {
let result;
if (action === "encode") {
result = btoa(text);
} else {
result = atob(text);
} }
}, return message.channel.send(`**Resultat:** \`${result}\``);
}
if (subcommand === "binaire") {
let result;
if (action === "encode") {
result = texteVersBinaire(text);
} else {
result = binaireVersTexte(text);
}
return message.channel.send(`**Resultat:** \`${result}\``);
}
}
},
}; };
function texteVersBinaire(texte) { function texteVersBinaire(texte) {
let binaire = ''; let binaire = "";
for (let i = 0; i < texte.length; i++) {
let charCode = texte.charCodeAt(i).toString(2); for (let i = 0; i < texte.length; i++) {
charCode = '0'.repeat(8 - charCode.length) + charCode; let charCode = texte.charCodeAt(i).toString(2);
binaire += charCode + ' '; charCode = "0".repeat(8 - charCode.length) + charCode;
} binaire += charCode + " ";
return binaire.trim(); }
return binaire.trim();
} }
function binaireVersTexte(binaire) { function binaireVersTexte(binaire) {
let texte = ''; let texte = "";
const octets = binaire.split(' '); const octets = binaire.split(" ");
for (let i = 0; i < octets.length; i++) { for (let i = 0; i < octets.length; i++) {
const decimal = parseInt(octets[i], 2); const decimal = parseInt(octets[i], 2);
const caractere = String.fromCharCode(decimal); const caractere = String.fromCharCode(decimal);
texte += caractere; texte += caractere;
} }
return texte;
return texte;
} }
+35 -33
View File
@@ -1,42 +1,44 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require('discord.js');
const axios = require('axios'); const axios = require('axios');
module.exports = { module.exports = {
name: 'film', name: 'film',
description: 'Affiche les films populaires et les plus récents.', aliases: ['films', 'movie', 'movies'],
emote: '📽️', description: 'Affiche les films populaires et les plus récents.',
utilisation: 'film', emote: '📽️',
category: 'utils', utilisation: 'film',
async execute(message, args, client) { category: 'utils',
const botUser = message.client.user;
const randomColor = Math.floor(Math.random() * 16777215).toString(16);
const apiKey = '15392d7432f6d070f28918e626362a93'; async execute(message, args, client) {
const popularUrl = `https://api.themoviedb.org/3/movie/popular?api_key=${apiKey}&language=fr-FR`; const botUser = message.client.user;
const recentUrl = `https://api.themoviedb.org/3/movie/now_playing?api_key=${apiKey}&language=fr-FR`;
try { const apiKey = '15392d7432f6d070f28918e626362a93';
const [popularResponse, recentResponse] = await Promise.all([ const popularUrl = `https://api.themoviedb.org/3/movie/popular?api_key=${apiKey}&language=fr-FR`;
axios.get(popularUrl), const recentUrl = `https://api.themoviedb.org/3/movie/now_playing?api_key=${apiKey}&language=fr-FR`;
axios.get(recentUrl)
]);
const popularFilms = popularResponse.data.results.slice(0, 50); try {
const recentFilms = recentResponse.data.results.slice(0, 50); const [popularResponse, recentResponse] = await Promise.all([
axios.get(popularUrl),
axios.get(recentUrl)
]);
const filmsEmbed = new EmbedBuilder() const popularFilms = popularResponse.data.results.slice(0, 50);
.setColor(`#${randomColor}`) const recentFilms = recentResponse.data.results.slice(0, 50);
.setTitle('🎬 Films Populaires & Récents 🎥')
.setDescription('Voici les films populaires et les plus récents en ce moment :')
.setThumbnail(botUser.displayAvatarURL())
.setTimestamp()
.setFooter({ text: 'Commande Films', iconURL:botUser.displayAvatarURL() });
filmsEmbed.addFields({ name: 'Films Populaires', value: popularFilms.map(film => film.title).join(',') || 'Non disponible' });
filmsEmbed.addFields({ name: 'Nouveautés au Cinéma', value: recentFilms.map(film => film.title).join(',') || 'Non disponible' });
await message.reply({ embeds: [filmsEmbed] }); const filmsEmbed = new EmbedBuilder()
} catch (error) { .setColor('#0099ff')
console.error('Erreur lors de la récupération des films :', error); .setTitle('🎬 Films Populaires & Récents 🎥')
await message.reply('Impossible de récupérer les informations des films. Veuillez réessayer plus tard.'); .setDescription('Voici les films populaires et les plus récents en ce moment :')
} .setThumbnail(botUser.displayAvatarURL())
}, .setTimestamp()
.setFooter({ text: 'Commande Films', iconURL:botUser.displayAvatarURL() });
filmsEmbed.addFields({ name: '*Films Populaires*', value: popularFilms.map(film => film.title).join('\n') || 'Non disponible' });
filmsEmbed.addFields({ name: '*Nouveautés au Cinéma*', value: recentFilms.map(film => film.title).join('\n') || 'Non disponible' });
await message.reply({ embeds: [filmsEmbed] });
} catch (error) {
console.error('Erreur lors de la récupération des films :', error);
await message.reply('Impossible de récupérer les informations des films. Veuillez réessayer plus tard.');
}
},
}; };
+1 -1
View File
@@ -1,4 +1,4 @@
const { EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } = require("discord.js") const { EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } = require("discord.js")
const sqlite3 = require('sqlite3').verbose(); const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('myDatabase.db'); const db = new sqlite3.Database('myDatabase.db');
-1
View File
@@ -11,7 +11,6 @@ module.exports = {
async execute(message, args, client) { async execute(message, args, client) {
const botId = client.user.id; const botId = client.user.id;
const guildId = message.guild.id;
const defaultPrefix = "+"; const defaultPrefix = "+";
try { try {
let data = await new Promise((resolve, reject) => { let data = await new Promise((resolve, reject) => {
-40
View File
@@ -1,40 +0,0 @@
const { EmbedBuilder } = require('discord.js');
module.exports = {
name: 'statserveur',
description: "Permet d'afficher les informations des utilisateurs du serveur.",
category: 'utils',
emote: '🌐',
utilisation: 'statserveur',
async execute(message, args, client) {
const members = await message.guild.members.fetch();
const totalMembers = members.size;
let online = [];
let idle = [];
let dnd = [];
let offline = [];
for (const member of members.values()) {
if (!member.user.bot) {
if (member.presence && member.presence.status === "online") online.push(member);
else if (member.presence && member.presence.status === "idle") idle.push(member);
else if (member.presence && member.presence.status === "dnd") dnd.push(member);
else offline.push(member);
}
}
const onlineP = Math.round((online.length / totalMembers) * 100) + `%`;
const idleP = Math.round((idle.length / totalMembers) * 100) + `%`;
const dndP = Math.round((dnd.length / totalMembers) * 100) + `%`;
const offlineP = Math.round((offline.length / totalMembers) * 100) + `%`;
const embed = new EmbedBuilder()
.setColor("#7289DA")
.setDescription(`🌍 **Information des utilisateurs du serveur** 🌍\n\n🟢 **Membres en Ligne :**\n \`${onlineP} | ${online.length}\`\n\n🟡 **Membres en Inactif :**\n \`${idleP} | ${idle.length}\`\n\n🔴 **Membre en Ne Pas Déranger :**\n \`${dndP} | ${dnd.length}\`\n\n⚪ **Membres Déconnectés :**\n \`${offlineP} | ${offline.length}\`\n\n**Total des membres :** \`${totalMembers}\``);
await message.reply({ embeds: [embed] });
},
};
+1 -1
View File
@@ -1,4 +1,4 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js") const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js")
module.exports = { module.exports = {
name: 'pic', name: 'pic',
aliases: ['avatar', 'pfp'], aliases: ['avatar', 'pfp'],
+3 -2
View File
@@ -1,4 +1,4 @@
const { EmbedBuilder, } = require('discord.js'); const { EmbedBuilder } = require('discord.js');
module.exports = { module.exports = {
name: 'stat', name: 'stat',
@@ -22,7 +22,8 @@ module.exports = {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle(`${serverName} 💫 ➔ Statistiques`) .setTitle(`${serverName} 💫 ➔ Statistiques`)
.setDescription(`👥 Membres : ${members.size}\n 🟢 Membres En Ligne: ${onlineMembers}\n :loud_sound: En Voc: ${totalVoice}\n 🔮 Boosts : ${boostLevel}`) .setDescription(`👥 Membres : ${members.size}\n 🟢 Membres En Ligne: ${onlineMembers}\n :loud_sound: En Voc: ${totalVoice}\n 🔮 Boosts : ${boostLevel}`)
.setColor('#0099ff'); .setColor('#0099ff')
.setTimestamp();
message.channel.send({ embeds: [embed] }); message.channel.send({ embeds: [embed] });
}, },
+41
View File
@@ -0,0 +1,41 @@
const { EmbedBuilder } = require('discord.js');
module.exports = {
name: 'statserveur',
aliases: ['memberstat', 'statserver'],
description: "Permet d'afficher les informations des utilisateurs du serveur.",
category: 'utils',
emote: '🌐',
utilisation: 'statserveur',
async execute(message, args, client) {
const members = await message.guild.members.fetch();
const totalMembers = members.size;
let online = [];
let idle = [];
let dnd = [];
let offline = [];
for (const member of members.values()) {
if (!member.user.bot) {
if (member.presence && member.presence.status === "online") online.push(member);
else if (member.presence && member.presence.status === "idle") idle.push(member);
else if (member.presence && member.presence.status === "dnd") dnd.push(member);
else offline.push(member);
}
}
const onlineP = Math.round((online.length / totalMembers) * 100) + `%`;
const idleP = Math.round((idle.length / totalMembers) * 100) + `%`;
const dndP = Math.round((dnd.length / totalMembers) * 100) + `%`;
const offlineP = Math.round((offline.length / totalMembers) * 100) + `%`;
const embed = new EmbedBuilder()
.setColor("#7289DA")
.setDescription(`🌍 **Information des utilisateurs du serveur** 🌍\n\n🟢 **Membres en Ligne :**\n \`${onlineP} | ${online.length}\`\n\n🟡 **Membres en Inactif :**\n \`${idleP} | ${idle.length}\`\n\n🔴 **Membre en Ne Pas Déranger :**\n \`${dndP} | ${dnd.length}\`\n\n⚪ **Membres Déconnectés :**\n \`${offlineP} | ${offline.length}\`\n\n**Total des membres :** \`${totalMembers}\``);
await message.reply({ embeds: [embed] });
},
};