Files
Femboy-Croissant-Bot/commands/dev/infra.js
Syxpi ad2014b7b2 Update Bot (j'ai plus le repo sur GitHub)
Qui c'est la conne qui a delete le repo sur GitHub? C'EST MOIIIII
2026-02-09 14:36:26 +01:00

54 lines
2.3 KiB
JavaScript

const os = require('os');
const fs = require('fs');
const { SlashCommandBuilder, EmbedBuilder, PermissionFlagsBits } = require('discord.js');
const { formatUptime } = require('../../utils/helpers');
const { colors } = require('../../utils/constants');
function getOS() {
const platform = os.platform();
const release = os.release();
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}`;
}
}
module.exports = {
category: 'dev',
data: new SlashCommandBuilder()
.setName('infra')
.setDescription('Voir l\'infrastructure du bot')
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator),
async execute(interaction) {
const cpuInfo = os.cpus()[0].model;
const cpuCores = os.cpus().length;
const totalRAM = (os.totalmem() / (1024 ** 3)).toFixed(2);
const freeRAM = (os.freemem() / (1024 ** 3)).toFixed(2);
const usedRAM = (totalRAM - freeRAM).toFixed(2);
const ramUsagePercent = ((usedRAM / totalRAM) * 100).toFixed(1);
const uptime = os.uptime();
const embed = new EmbedBuilder()
.setTitle('🖥️ Infrastructure du Bot')
.setColor(colors.info)
.addFields(
{ name: '💻 CPU', value: `${cpuInfo}\n${cpuCores} cœurs`, inline: true },
{ name: '💾 RAM', value: `${usedRAM} Go / ${totalRAM} Go\n${ramUsagePercent}% utilisée`, inline: true },
{ name: '🖥️ OS', value: getOS(), inline: true },
{ name: '⏱️ Uptime Système', value: formatUptime(uptime), inline: true },
{ name: '📊 Node.js', value: process.version, inline: true },
{ name: '📦 Architecture', value: os.arch(), inline: true }
)
.setFooter({ text: interaction.client.user.username, iconURL: interaction.client.user.displayAvatarURL() })
.setTimestamp();
await interaction.reply({ embeds: [embed] });
},
};