This commit is contained in:
Syxpi
2025-09-23 21:30:27 +02:00
parent 0be1043b46
commit 34e939de0f
3 changed files with 67 additions and 1 deletions

1
.gitignore vendored
View File

@@ -1 +1,2 @@
config.json
config.json

65
commands/dev/infra.js Normal file
View File

@@ -0,0 +1,65 @@
const os = require('os');
const fs = require('fs');
const cpuInfo = os.cpus()[0].model; // modèle du CPU
const cpuCores = os.cpus().length; // nombre de coeurs
const totalRAM = (os.totalmem() / (1024 ** 3)).toFixed(2); // en Go
const freeRAM = (os.freemem() / (1024 ** 3)).toFixed(2); // en Go
function getOS() {
const platform = os.platform(); // ex: win32, linux
const release = os.release(); // version du kernel / OS
switch (platform) {
case "win32":
return `Windows ${release}`;
case "darwin":
return `macOS ${release}`;
case "linux":
try {
const data = fs.readFileSync("/etc/os-release", "utf8");
const match = data.match(/PRETTY_NAME="(.+)"/);
if (match) return `${match[1]} (kernel ${release})`;
} catch {
return `Linux ${release}`;
}
default:
return `${platform} ${release}`;
}
}
const uptime = os.uptime(); // en secondes
function formatUptime(seconds) {
const days = Math.floor(seconds / 86400);
const hours = Math.floor((seconds % 86400) / 3600);
const minutes = Math.floor((seconds % 3600) / 60);
const secs = Math.floor(seconds % 60);
return `${days}j ${hours}h ${minutes}m ${secs}s`;
}
const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');
module.exports = {
category: 'dev',
data: new SlashCommandBuilder()
.setName('infra')
.setDescription('Voir linfrastructure du bot'),
async execute(interaction) {
const embed = new EmbedBuilder()
.setTitle('Infrastructure du bot')
.setColor('Blue')
.addFields(
{ name: 'CPU', value: `${cpuInfo} (${cpuCores} coeurs)`, inline: true },
{ name: 'RAM', value: `${freeRAM} Go libres / ${totalRAM} Go totaux`, inline: true },
{ name: 'OS', value: getOS(), inline: true },
{ name: 'Uptime', value: formatUptime(uptime), inline: true }
)
.setTimestamp();
await interaction.reply({ embeds: [embed], ephemeral: true });
}
};

View File

@@ -1,4 +1,4 @@
{
"token": "-",
"token": "MTQwNzE2NDE4NDM3Mzg4NzAzOA.GTKr90.U2ootmaOWuycn4ZqbE4kqSpQqeVGvw7Zj5vHgM",
"clientId": "1407164184373887038"
}