This commit is contained in:
2026-02-28 12:32:12 +01:00
parent ad2014b7b2
commit 314a4ec94b
13 changed files with 35 additions and 121 deletions

View File

@@ -1,11 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="DataSourcePerFileMappings"> <component name="DataSourcePerFileMappings">
<file url="file://$PROJECT_DIR$/commands/info/adminprofil.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
<file url="file://$PROJECT_DIR$/commands/info/profil.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" /> <file url="file://$PROJECT_DIR$/commands/info/profil.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
<file url="file://$PROJECT_DIR$/commands/moderation/ban.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
<file url="file://$PROJECT_DIR$/commands/moderation/casier.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
<file url="file://$PROJECT_DIR$/commands/moderation/changesanction.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
<file url="file://$PROJECT_DIR$/commands/moderation/mute.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
<file url="file://$PROJECT_DIR$/commands/moderation/unmute.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
<file url="file://$PROJECT_DIR$/commands/ticket/ticket.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" /> <file url="file://$PROJECT_DIR$/commands/ticket/ticket.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
<file url="file://$PROJECT_DIR$/events/messageCreate.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" /> <file url="file://$PROJECT_DIR$/events/messageCreate.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
<file url="file://$PROJECT_DIR$/events/voiceStateUpdate.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" /> <file url="file://$PROJECT_DIR$/events/voiceStateUpdate.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
<file url="file://$PROJECT_DIR$/functions/bump/bumpReminder.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
<file url="file://$PROJECT_DIR$/functions/database/db.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" /> <file url="file://$PROJECT_DIR$/functions/database/db.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
<file url="file://$PROJECT_DIR$/functions/moderation/autoUnban.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
<file url="file://$PROJECT_DIR$/functions/moderation/autoUnmute.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
<file url="file://$PROJECT_DIR$/functions/xp/xp.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
<file url="file://$PROJECT_DIR$/server/transcript-server.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" /> <file url="file://$PROJECT_DIR$/server/transcript-server.js" value="019a7f05-92eb-4b90-8fc3-65a8ea5fb270" />
</component> </component>
</project> </project>

1
.idea/sqldialects.xml generated
View File

@@ -7,6 +7,7 @@
</component> </component>
<component name="SqlResolveMappings"> <component name="SqlResolveMappings">
<file url="file://$PROJECT_DIR$/commands/moderation/unban.js" scope="{&quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot;, &quot;group&quot;:{ &quot;@kind&quot;:&quot;root&quot;, &quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot; } } }}" /> <file url="file://$PROJECT_DIR$/commands/moderation/unban.js" scope="{&quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot;, &quot;group&quot;:{ &quot;@kind&quot;:&quot;root&quot;, &quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot; } } }}" />
<file url="file://$PROJECT_DIR$/commands/moderation/unmute.js" scope="{&quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot;, &quot;group&quot;:{ &quot;@kind&quot;:&quot;root&quot;, &quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot; } } }}" />
<file url="file://$PROJECT_DIR$/server/transcript-server.js" scope="{&quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot;, &quot;group&quot;:{ &quot;@kind&quot;:&quot;root&quot;, &quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot; } } }}" /> <file url="file://$PROJECT_DIR$/server/transcript-server.js" scope="{&quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot;, &quot;group&quot;:{ &quot;@kind&quot;:&quot;root&quot;, &quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot; } } }}" />
<file url="PROJECT" scope="{&quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot;, &quot;group&quot;:{ &quot;@kind&quot;:&quot;root&quot;, &quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot; } } }}" /> <file url="PROJECT" scope="{&quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot;, &quot;group&quot;:{ &quot;@kind&quot;:&quot;root&quot;, &quot;node&quot;:{ &quot;@negative&quot;:&quot;1&quot; } } }}" />
</component> </component>

View File

@@ -54,7 +54,7 @@ Ce fichier recense les fichiers du projet et leur état de vérification/correct
-`revokesanction.js` : Nettoyage, MessageFlags. -`revokesanction.js` : Nettoyage, MessageFlags.
-`unban.js` : Nettoyage, MessageFlags. -`unban.js` : Nettoyage, MessageFlags.
-`unmute.js` : Nettoyage, MessageFlags. -`unmute.js` : Nettoyage, MessageFlags.
-`untimeout.js` : Nettoyage, MessageFlags. -`untimeout.js (Disabled)` : Nettoyage, MessageFlags.
-`warn.js` : Nettoyage, MessageFlags. -`warn.js` : Nettoyage, MessageFlags.
#### Info (`/commands/info`) #### Info (`/commands/info`)

View File

@@ -105,7 +105,7 @@ module.exports = {
{ name: '🔄 Type', value: resetType === 'signature' ? 'Signature' : 'Tout le profil', inline: true }, { name: '🔄 Type', value: resetType === 'signature' ? 'Signature' : 'Tout le profil', inline: true },
{ name: '📝 Raison', value: reason, inline: false } { name: '📝 Raison', value: reason, inline: false }
) )
.setFooter({ text: 'France Femboy Bot • Administration' }) .setFooter({ text: 'Femboy Croissant Bot • Administration' })
.setTimestamp(); .setTimestamp();
await sendLog(interaction.guild, { embeds: [logEmbed] }); await sendLog(interaction.guild, { embeds: [logEmbed] });

View File

@@ -52,7 +52,7 @@ module.exports = {
} }
) )
.setFooter({ .setFooter({
text: `France Femboy Bot • Développé avec passion par Lumi 💞`, text: `Femboy Croissant Bot • Développé avec passion par Lumi 💞`,
iconURL: interaction.client.user.displayAvatarURL() iconURL: interaction.client.user.displayAvatarURL()
}) })
.setTimestamp(); .setTimestamp();

View File

@@ -304,7 +304,7 @@ async function handleCreate(interaction, ticketType) {
{ name: '📅 Date', value: `<t:${Math.floor(Date.now() / 1000)}:R>`, inline: true } { name: '📅 Date', value: `<t:${Math.floor(Date.now() / 1000)}:R>`, inline: true }
) )
.setThumbnail(interaction.user.displayAvatarURL({ dynamic: true })) .setThumbnail(interaction.user.displayAvatarURL({ dynamic: true }))
.setFooter({ text: 'France Femboy Bot • Support', iconURL: interaction.client.user.displayAvatarURL() }) .setFooter({ text: 'Femboy Croissant Bot • Support', iconURL: interaction.client.user.displayAvatarURL() })
.setTimestamp(); .setTimestamp();
const row = new ActionRowBuilder().addComponents( const row = new ActionRowBuilder().addComponents(
@@ -643,7 +643,7 @@ async function handleCandidatureModalSubmit(interaction) {
{ name: '🆔 ID Ticket', value: `\`${ticketId}\``, inline: true }, { name: '🆔 ID Ticket', value: `\`${ticketId}\``, inline: true },
{ name: '📅 Soumis le', value: `<t:${Math.floor(Date.now() / 1000)}:F>`, inline: true } { name: '📅 Soumis le', value: `<t:${Math.floor(Date.now() / 1000)}:F>`, inline: true }
) )
.setFooter({ text: 'France Femboy Bot • Recrutement', iconURL: interaction.client.user.displayAvatarURL() }) .setFooter({ text: 'Femboy Croissant Bot • Recrutement', iconURL: interaction.client.user.displayAvatarURL() })
.setTimestamp(); .setTimestamp();
const row = new ActionRowBuilder().addComponents( const row = new ActionRowBuilder().addComponents(

View File

@@ -10,6 +10,13 @@ module.exports = {
console.log(chalk.blue(`🔧 ${client.commands.size} commande(s) chargée(s)`)); console.log(chalk.blue(`🔧 ${client.commands.size} commande(s) chargée(s)`));
// Statut du bot // Statut du bot
client.user.setActivity('France Femboy', { type: ActivityType.Watching }); client.user.setPresence({
activities: [{
name: 'Surveille le discord Femboy Croissant 👀',
type: ActivityType.Streaming,
url: 'https://twitch.tv/femboycroissantoff'
}],
status: 'online'
});
}, },
}; };

4
package-lock.json generated
View File

@@ -1,11 +1,11 @@
{ {
"name": "femboy-france-bot", "name": "femboy-croissant-bot",
"version": "1.0.0", "version": "1.0.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "femboy-france-bot", "name": "femboy-croissant-bot",
"version": "1.0.0", "version": "1.0.0",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {

View File

@@ -1,7 +1,7 @@
{ {
"name": "femboy-france-bot", "name": "femboy-croissant-bot",
"version": "1.0.0", "version": "1.0.0",
"description": "Bot Discord de modération pour France Femboy", "description": "Bot Discord de modération pour Femboy Croissant",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"start": "node index.js", "start": "node index.js",

View File

@@ -6,7 +6,7 @@ Ce guide t'explique comment configurer l'authentification Discord OAuth2 pour le
1. Va sur le [Discord Developer Portal](https://discord.com/developers/applications) 1. Va sur le [Discord Developer Portal](https://discord.com/developers/applications)
2. Clique sur **"New Application"** (Nouvelle Application) 2. Clique sur **"New Application"** (Nouvelle Application)
3. Donne un nom à ton application (ex: "France Femboy Transcripts") 3. Donne un nom à ton application (ex: "Femboy Croissant Transcripts")
4. Clique sur **"Create"** (Créer) 4. Clique sur **"Create"** (Créer)
## Étape 2 : Récupérer le Client ID ## Étape 2 : Récupérer le Client ID

View File

@@ -42,6 +42,12 @@ try {
const app = express(); const app = express();
const PORT = process.env.TRANSCRIPT_PORT || 3000; const PORT = process.env.TRANSCRIPT_PORT || 3000;
// --- CUSTOM HEADER (La petite touche perso) ---
app.use((req, res, next) => {
res.setHeader('X-Powered-By', 'Femboy Croissant WebEngine');
next();
});
// --- DEBUG: Middleware de log HTTP --- // --- DEBUG: Middleware de log HTTP ---
app.use((req, res, next) => { app.use((req, res, next) => {
if (!req.url.includes('.css') && !req.url.includes('.js') && !req.url.includes('.png')) { if (!req.url.includes('.css') && !req.url.includes('.js') && !req.url.includes('.png')) {

View File

@@ -1,55 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Transcription - PLNT-MLDPB8OF-ZM86</title>
<link rel="stylesheet" href="../../transcript.css">
</head>
<body>
<div class="container">
<div class="header">
<h1>📢 Transcription du Ticket</h1>
<div class="ticket-id">PLNT-MLDPB8OF-ZM86</div>
</div>
<div class="info-section">
<div class="info-grid">
<div class="info-item">
<div class="info-label">Type</div>
<div class="info-value">📢 Plainte</div>
</div>
<div class="info-item">
<div class="info-label">Créé par</div>
<div class="info-value">syxpi</div>
</div>
<div class="info-item">
<div class="info-label">Créé le</div>
<div class="info-value">08/02/2026</div>
</div>
<div class="info-item">
<div class="info-label">Statut</div>
<div class="info-value">
<span class="status-badge" style="background: #10b981; color: white;">
Ouvert
</span>
</div>
</div>
</div>
</div>
<div class="messages-section">
<h2>💬 Messages</h2>
<p class="no-messages">Aucun message enregistré.</p>
</div>
<div class="footer">
<p>Transcription générée le 08/02/2026 13:11:01</p>
<p>Femboy Croissant Bot • • Système de Tickets</p>
</div>
</div>
</body>
</html>

View File

@@ -1,55 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Transcription - TECH-MLDPXDZJ-8KNS</title>
<link rel="stylesheet" href="../../transcript.css">
</head>
<body>
<div class="container">
<div class="header">
<h1>🔧 Transcription du Ticket</h1>
<div class="ticket-id">TECH-MLDPXDZJ-8KNS</div>
</div>
<div class="info-section">
<div class="info-grid">
<div class="info-item">
<div class="info-label">Type</div>
<div class="info-value">🔧 Problème Technique</div>
</div>
<div class="info-item">
<div class="info-label">Créé par</div>
<div class="info-value">syxpi</div>
</div>
<div class="info-item">
<div class="info-label">Créé le</div>
<div class="info-value">08/02/2026</div>
</div>
<div class="info-item">
<div class="info-label">Statut</div>
<div class="info-value">
<span class="status-badge" style="background: #10b981; color: white;">
Ouvert
</span>
</div>
</div>
</div>
</div>
<div class="messages-section">
<h2>💬 Messages</h2>
<p class="no-messages">Aucun message enregistré.</p>
</div>
<div class="footer">
<p>Transcription générée le 08/02/2026 13:27:36</p>
<p>Femboy Croissant Bot • • Système de Tickets</p>
</div>
</div>
</body>
</html>