From 7c6389d421484d2128a69cb44067a42227272fe2 Mon Sep 17 00:00:00 2001 From: Bradley Bickford Date: Sat, 11 Nov 2023 21:51:34 -0500 Subject: [PATCH] A significant amount of reimplementation --- breadbot.js | 21 ++++++++++++++++--- promise_chain_test.js | 2 +- utilities/sqlutil.js | 49 +++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 66 insertions(+), 6 deletions(-) diff --git a/breadbot.js b/breadbot.js index 6d1edea..48970ce 100644 --- a/breadbot.js +++ b/breadbot.js @@ -2,7 +2,8 @@ const fs = require('node:fs'); const path = require('node:path'); const { Client, Events, GatewayIntentBits, Collection } = require('discord.js'); const { token, mysql_username, mysql_password } = require('./config.json'); -const sqlutil = require('./utilities/sqlutil') +const sqlutil = require('./utilities/sqlutil'); +const { sql } = require('googleapis/build/src/apis/sql'); sqlutil.buildPool('breadbot_test') @@ -92,6 +93,20 @@ client.on(Events.GuildCreate, async guild => { client.on(Events.MessageCreate, async message => { console.log("Message Create Fired") + var channel_ok = await sqlutil.registerChannelIfMissing(message.channelId, message.channel.guild.id, message.channel.name) + var user_ok = await sqlutil.registerUserIfMissing(message.author.id, message.author.username, message.author.displayName) + + if (channel_ok && user_ok) { + sqlutil.registerMessage(message.id, message.channelId, message.author.id, message.content, message.createdAt).then(message_add => { + if(message_add) { + console.log("Message Added") + } else { + console.log("Failed to log message") + } + }) + } + + /* var channel_registered = sqlutil.isChannelRegistered(message.channelId) var user_registered = sqlutil.isUserRegistered(message.author.id) @@ -112,7 +127,7 @@ client.on(Events.MessageCreate, async message => { console.log(`Registering user ${message.author.username}`) var user_registered_result = await sqlutil.registerUser(messsage.author.id, message.author.username, message.author.displayName) - + if(user_registered_result.valueOf()) { console.log(`User Registered ${message.author.username}`) } else { @@ -127,7 +142,7 @@ client.on(Events.MessageCreate, async message => { } else { console.log("Failed to log message") } - }) + })*/ }) client.once(Events.ClientReady, c => { diff --git a/promise_chain_test.js b/promise_chain_test.js index 680e0c2..8692739 100644 --- a/promise_chain_test.js +++ b/promise_chain_test.js @@ -15,4 +15,4 @@ connection_pool.query("SELECT * FROM servers").then(async ([rows, fields]) => { console.log(rows) return "SOME TEXT" }) -}).then(console.log) \ No newline at end of file +}).catch(() => {return "SOME FAIL TEXT"}).then(console.log) \ No newline at end of file diff --git a/utilities/sqlutil.js b/utilities/sqlutil.js index e42859a..7bf6f10 100644 --- a/utilities/sqlutil.js +++ b/utilities/sqlutil.js @@ -55,8 +55,18 @@ async function registerServer(server_snowflake, server_name, server_description) } async function registerServerIfMissing(server_snowflake, server_name, server_description) { - connection_pool.query(`SELECT * FROM servers WHERE server_snowflake = ?;` [server_snowflake] (error, results, fields) => { + return connection_pool.query("SELECT * FROM servers WHERE server_snowflake = ?;", [server_snowflake]).then(async ([rows, fields]) => { + if (rows) { + return true + } else { + return await connection_pool.query("INSERT INTO servers VALUES (?, ?, ?)", [server_snowflake, server_name, server_description]).then((rows, fields) => { + return true + }) + } + }).catch((error) => { + console.log(error) + return false }) } @@ -113,6 +123,22 @@ async function registerChannel(channel_snowflake, server_snowflake, channel_name return result } +async function registerChannelIfMissing(channel_snowflake, server_snowflake, channel_name) { + return connection_pool.query("SELECT * FROM channels WHERE channel_snowflake = ?;", [channel_snowflake]).then(async ([rows, fields]) => { + if (rows) { + return true + } else { + return await connection_pool.query("INSERT INTO channels VALUES (?, ?, ?)", [channel_snowflake, server_snowflake, channel_name]).then((rows, fields) => { + return true + }) + } + }).catch((error) => { + console.log(error) + + return false + }) +} + async function isUserRegistered(user_snowflake) { var resultLength = null @@ -150,6 +176,22 @@ async function registerUser(user_snowflake, user_name, user_displayname) { return result } +async function registerUserIfMissing(user_snowflake, user_name, user_displayname) { + return connection_pool.query("SELECT * FROM users WHERE user_snowflake = ?;", [user_snowflake]).then(async ([rows, fields]) => { + if (rows) { + return true + } else { + return await connection_pool.query("INSERT INTO users VALUES (?, ?, ?)", [user_snowflake, user_name, user_displayname]).then((rows, fields) => { + return true + }) + } + }).catch((error) => { + console.log(error) + + return false + }) +} + async function registerMessage(message_snowflake, channel_snowflake, user_snowflake, message_content, message_timestamp) { var sql = `INSERT INTO messages VALUES (?, ?, ?, ?, ?, 0, 0);` var result = null @@ -176,5 +218,8 @@ module.exports = { registerChannel, isUserRegistered, registerUser, - registerMessage + registerMessage, + registerServerIfMissing, + registerChannelIfMissing, + registerUserIfMissing } \ No newline at end of file