Initial commit
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
const { Client, GatewayIntentBits, EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js');
|
||||
const cron = require('node-cron');
|
||||
const dotenv = require('dotenv');
|
||||
const fs = require('fs');
|
||||
const YAML = require('yaml');
|
||||
|
||||
// Charger les variables d'environnement
|
||||
dotenv.config();
|
||||
|
||||
// Charger les configurations depuis config.yml
|
||||
const file = fs.readFileSync('./config.yml', 'utf8');
|
||||
const config = YAML.parse(file);
|
||||
|
||||
// Initialiser le client Discord
|
||||
const client = new Client({
|
||||
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages],
|
||||
});
|
||||
|
||||
// Fonction pour envoyer le rappel sous forme d'embed avec bouton
|
||||
function sendReminder() {
|
||||
const channel = client.channels.cache.get(process.env.CHANNEL_ID);
|
||||
if (channel) {
|
||||
// Créer l'embed
|
||||
const embed = new EmbedBuilder()
|
||||
.setColor(0x1d82b6) // Couleur personnalisée
|
||||
.setTitle("📅 Rappel Mensuel - France Travail")
|
||||
.setDescription(config.reminder.message)
|
||||
.setThumbnail(config.reminder.logo)
|
||||
.setFooter({ text: "Propulsé par QuantumCraft Studios" })
|
||||
.setTimestamp();
|
||||
|
||||
// Créer le bouton de lien
|
||||
const button = new ButtonBuilder()
|
||||
.setLabel("Connexion France Travail")
|
||||
.setStyle(ButtonStyle.Link)
|
||||
.setURL(config.reminder.link);
|
||||
|
||||
// Créer une ligne d'action pour le bouton
|
||||
const row = new ActionRowBuilder().addComponents(button);
|
||||
|
||||
// Envoyer le message avec l'embed et le bouton
|
||||
channel.send({ content: "@everyone", embeds: [embed], components: [row] });
|
||||
} else {
|
||||
console.log("Canal non trouvé.");
|
||||
}
|
||||
}
|
||||
|
||||
// Événement pour quand le bot est prêt
|
||||
client.once('ready', () => {
|
||||
console.log(`Connecté en tant que ${client.user.tag}`);
|
||||
|
||||
// Planifier la tâche avec node-cron pour toutes les 30 secondes
|
||||
cron.schedule(config.reminder.cron, () => {
|
||||
sendReminder();
|
||||
console.log('Rappel envoyé toutes les 30 secondes.');
|
||||
});
|
||||
});
|
||||
|
||||
// Connexion du bot
|
||||
client.login(process.env.DISCORD_TOKEN);
|
||||
Reference in New Issue
Block a user