diff --git a/app.js b/app.js index 34e5af2..253aefa 100644 --- a/app.js +++ b/app.js @@ -9,7 +9,7 @@ const { rtag, r34 } = require('./libs/rule34'); const { addToLogs, isTrue, image_search, getHelp } = require('./libs/botTools'); const { rockPaperScissorsAgainstBot } = require('./libs/games'); const { generateImage, answerQuestion } = require('./libs/openAi'); -const { addUserToDb, incrementQuota, usersInDb, getQuota, addConv, delConv } = require('./libs/mysql'); +const { addUserToDb, incrementQuota, usersInDb, getQuota, addConv, delConv, getConvs } = require('./libs/mysql'); //bot initialization const bot = new Telegraf(process.env.TELEGRAM); @@ -207,14 +207,32 @@ client.on('interactionCreate', async interaction => { } else if (interaction.commandName === 'addconv') { - console.log(await addConv(interaction.options.get('name').value)); - interaction.reply('Conversation added to db'); + if (!interaction.options.get('name').value.includes(" ")) { + console.log(await addConv(interaction.options.get('name').value)); + interaction.reply('Conversation added to db'); + } else { + interaction.reply('Conversation name cannot contain spaces'); + } } else if (interaction.commandName === 'delconv') { console.log(await delConv(interaction.options.get('name').value)); interaction.reply('Conversation deleted from db'); } + + else if (interaction.commandName === 'listconvs') { + convs = await getConvs(); + message = ""; + if (convs.length == 0) { + message = "No conversations in the database"; + } else { + convs.forEach(element => { + message += element + "\n"; + }); + } + + interaction.reply(message); + } }); //bot launch diff --git a/libs/mysql.js b/libs/mysql.js index 28afb33..1bd2713 100644 --- a/libs/mysql.js +++ b/libs/mysql.js @@ -95,4 +95,20 @@ function delConv (convName) { }); } -module.exports = { addUserToDb, incrementQuota, usersInDb, getQuota, addConv, delConv }; \ No newline at end of file +function getConvs() { + return new Promise((resolve, reject) => { + connection.query('SELECT name FROM conversations', (error, results, fields) => { + if (error) { + reject(error); + } else { + convs = []; + results.forEach(element => { + convs.push(element.name); + }); + resolve(convs); + } + }); + }); +} + +module.exports = { addUserToDb, incrementQuota, usersInDb, getQuota, addConv, delConv, getConvs }; \ No newline at end of file diff --git a/register-commands.js b/register-commands.js index 0944f09..be72c54 100644 --- a/register-commands.js +++ b/register-commands.js @@ -57,6 +57,11 @@ const commands = [ }, ], }, + + { + name : 'listconvs', + description : 'List all the conversations in the database', + }, ]; const rest = new REST({ version: '10' }).setToken(process.env.DISCORD);