diff --git a/app.js b/app.js index abebf26..2671554 100644 --- a/app.js +++ b/app.js @@ -8,7 +8,7 @@ const { getJoke } = require('./libs/dadJokes'); const { rtag, r34 } = require('./libs/rule34'); const { addToLogs, isTrue, getHelp } = require('./libs/botTools'); const { generateImage, answerQuestion, sendConv } = require('./libs/openAi'); -const { addUserToDb, incrementQuota, usersInDb, getQuota, addConv, delConv, getConvs, addMessage, getMessages } = require('./libs/mysql'); +const { addUserToDb, incrementQuota, usersInDb, getQuota, addConv, delConv, getConvs, addMessage, getMessages, isNewUser } = require('./libs/mysql'); //bot initialization const bot = new Telegraf(process.env.TELEGRAM); @@ -254,15 +254,7 @@ client.on('interactionCreate', async interaction => { if (interaction.commandName === 'gptrequest') { await interaction.deferReply(); - users = await usersInDb(); - - if (!(users.includes(interaction.member.user.id))) { - await addUserToDb(interaction.member.user.id, interaction.member.user.username); - addToLogs('[Discord] Added user to the database : ' + interaction.member.user.username); - console.log('[Discord] Added user to the database : ' + interaction.member.user.username); - } - - quota = await getQuota(interaction.member.user.id); + quota = isNewUser(interaction.member.user.id, interaction.member.user.username); if (quota >= 200000) { const embed = new discord.EmbedBuilder() @@ -393,15 +385,7 @@ client.on('interactionCreate', async interaction => { else if (interaction.commandName === 'addmsg') { await interaction.deferReply(); - users = await usersInDb(); - - if (!(users.includes(interaction.member.user.id))) { - await addUserToDb(interaction.member.user.id, interaction.member.user.username); - addToLogs('[Discord] Added user to the database : ' + interaction.member.user.username); - console.log('[Discord] Added user to the database : ' + interaction.member.user.username); - } - - quota = await getQuota(interaction.member.user.id); + quota = isNewUser(interaction.member.user.id, interaction.member.user.username); if (quota >= 200000) { const embed = new discord.EmbedBuilder() @@ -500,15 +484,7 @@ client.on('interactionCreate', async interaction => { else if (interaction.commandName === 'getmyguota') { await interaction.deferReply(); - users = await usersInDb(); - - if (!(users.includes(interaction.member.user.id))) { - await addUserToDb(interaction.member.user.id, interaction.member.user.username); - addToLogs('[Discord] Added user to the database : ' + interaction.member.user.username); - console.log('[Discord] Added user to the database : ' + interaction.member.user.username); - } - - quota = await getQuota(interaction.member.user.id); + quota = (await isNewUser(interaction.member.user.id, interaction.member.user.username)).quota; const embed = new discord.EmbedBuilder() .setColor(0xFABBDE) diff --git a/libs/mysql.js b/libs/mysql.js index 750cd6e..8db39cf 100644 --- a/libs/mysql.js +++ b/libs/mysql.js @@ -33,15 +33,11 @@ function incrementQuota(id, value) { function usersInDb() { return new Promise((resolve, reject) => { - connection.query('SELECT userid FROM users', (error, results, fields) => { + connection.query('SELECT * FROM users', (error, results, fields) => { if (error) { reject(error); } else { - users = []; - results.forEach(element => { - users.push(element.userid); - }); - resolve(users); + resolve(results); } }); }); @@ -146,4 +142,24 @@ function getMessages (convName, choice) { }); } -module.exports = { addUserToDb, incrementQuota, usersInDb, getQuota, addConv, delConv, getConvs, addMessage, getMessages }; \ No newline at end of file +async function isNewUser(id, username) { + users = await usersInDb(); + + test = false; + quota = 0; + + users.forEach(element => { + if (element.userid == id) { + test = true; + quota = element.quota; + } + }); + + if (test == false) { + addUserToDb(id, username); + } + + return {quota : quota}; +} + +module.exports = { addUserToDb, incrementQuota, usersInDb, getQuota, addConv, delConv, getConvs, addMessage, getMessages, isNewUser }; \ No newline at end of file