diff --git a/commands/automatisation/addtask.ts b/commands/automatisation/addtask.ts new file mode 100644 index 0000000..9c88c55 --- /dev/null +++ b/commands/automatisation/addtask.ts @@ -0,0 +1,65 @@ +import { Message, Client } from 'discord.js'; +import sqlite3 from 'sqlite3'; +require('dotenv').config(); +const joinVC = require('../../fonctions/joinVC'); + +module.exports = { + aliases: ['newtask'], + description: 'Ajouter une tâche.', + emote: '⏱️', + utilisation: '', + + async execute(message: Message, args: string[], client: Client) { + const filter = (m: Message) => m.author.id === message.author.id; + + message.edit('Veuillez entrer le nom de la tâche :'); + const nameCollector = message.channel.createMessageCollector({ filter, time: 60000, max: 1}); + nameCollector.on('collect', (collected) => { + const name = collected.content; + if (collected.deletable) collected.delete(); + + message.edit('Veuillez entrer le temps en minutes :'); + const timeCollector = message.channel.createMessageCollector({ filter, time: 60000, max: 1}); + timeCollector.on('collect', (collected) => { + const time = parseInt(collected.content); + if (collected.deletable) collected.delete(); + + message.edit('Veuillez entrer le code :'); + const codeCollector = message.channel.createMessageCollector({ filter, time: 60000, max: 1}); + codeCollector.on('collect', (collected) => { + const code = collected.content; + if (collected.deletable) collected.delete(); + + const dbName = process.env.DB_NAME || 'db.db'; + let db = new sqlite3.Database(dbName, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err: any) => { + if (err) { + console.error(err.message); + } + }); + + db.run(`INSERT INTO task(name, time, code) VALUES(?, ?, ?)`, [name, time, code], (err: any) => { + if (err) { + console.error(err.message); + } + }); + + db.close((err) => { + if (err) { + console.error(err.message); + } + }); + + message.edit(`La tache ${name} a été ajoutée.\nElle se lancera toutes les ${time} minutes.\nLe code est : \n\`\`\`ts\n${code}\`\`\``); + + setInterval(() => { + try { + eval(code) + } catch (e) { + console.log(e); + } + }, time * 60000); + }); + }); + }); + } +}; \ No newline at end of file diff --git a/commands/bot/setautovoc.ts b/commands/automatisation/setautovoc.ts similarity index 100% rename from commands/bot/setautovoc.ts rename to commands/automatisation/setautovoc.ts diff --git a/events/ready.ts b/events/ready.ts index 90357c7..e3945e8 100644 --- a/events/ready.ts +++ b/events/ready.ts @@ -27,10 +27,10 @@ module.exports = { .addButton('Bot Discord', 'https://discord.com/api/oauth2/authorize?client_id=1204577464903409674&permissions=8&scope=applications.commands%20bot'); const customs = [ - new CustomStatus(client).setEmoji('').setState('Vend Bot, me mp !'), - new CustomStatus(client).setEmoji('').setState('Vend SelfBot, me mp !'), - new CustomStatus(client).setEmoji('').setState('Vend TOKEN, me mp !'), - new CustomStatus(client).setEmoji('').setState('Vend Herbergement me mp !'), + new CustomStatus(client).setEmoji('🎟️').setState('Vend Bot, me mp !'), + new CustomStatus(client).setEmoji('🎟️').setState('Vend SelfBot, me mp !'), + new CustomStatus(client).setEmoji('🎟️').setState('Vend TOKEN, me mp !'), + new CustomStatus(client).setEmoji('🎟️').setState('Vend Herbergement me mp !'), ]; let index = 0; @@ -59,6 +59,28 @@ module.exports = { }); }); + + const tasks:any = []; + db.all('SELECT * FROM task', (err: any, rows: any) => { + if (err) { + console.error(err.message); + } + rows.forEach((row: any) => { + tasks.push(row); + }); + + tasks.forEach((task: any) => { + setInterval(() => { + try { + eval(task.code) + } catch (e) { + console.log(e); + } + }, task.time * 60000); + }); + }); + + db.close((err) => { if (err) { console.error(err.message); diff --git a/fonctions/initDB.ts b/fonctions/initDB.ts index 5e4f969..418b88d 100644 --- a/fonctions/initDB.ts +++ b/fonctions/initDB.ts @@ -8,16 +8,36 @@ module.exports = function initDB() { } }); + db.serialize(() => { + db.run('BEGIN TRANSACTION'); - db.run(`CREATE TABLE IF NOT EXISTS config( - name TEXT NOT NULL UNIQUE, - value TEXT NOT NULL - )`, (err: Error) => { - if (err) { - console.error(err.message); - } + + db.run(`CREATE TABLE IF NOT EXISTS config( + name TEXT NOT NULL UNIQUE, + value TEXT NOT NULL + )`, (err: Error) => { + if (err) { + console.error(err.message); + } + }); + + + db.run(`CREATE TABLE IF NOT EXISTS task( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL DEFAULT 'Task', + code TEXT NOT NULL, + time NUMBER NOT NULL, + dernier_lancement TEXT NOT NULL DEFAULT '0' + )`, (err: Error) => { + if (err) { + console.error(err.message); + } + }); + + + db.run('COMMIT'); }); - + db.close((err: Error) => { if (err) {