added version 2.0
This commit is contained in:
parent
0163d40b4e
commit
0f18925d1a
3231 changed files with 1449 additions and 374732 deletions
278
libs/mysql.js
278
libs/mysql.js
|
@ -1,210 +1,110 @@
|
|||
const mysql = require('mysql');
|
||||
var mysql = require("mysql");
|
||||
require("dotenv").config();
|
||||
|
||||
const connection = mysql.createConnection({
|
||||
host: process.env.MYSQL_HOST,
|
||||
user: "root",
|
||||
password: process.env.MYSQL,
|
||||
database: "discord"
|
||||
var con = mysql.createConnection({
|
||||
host: process.env.MYSQL_HOST,
|
||||
user: process.env.MYSQL_USER,
|
||||
password: process.env.MYSQL_PASSWORD,
|
||||
database: process.env.MYSQL_DATABASE,
|
||||
});
|
||||
|
||||
function addUserToDb(id, user) {
|
||||
return new Promise((resolve, reject) => {
|
||||
connection.query('INSERT INTO users(userid, username) VALUES("' + id + '","' + user + '")' , (error, results, fields) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
console.log('User added to database');
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
function registerUser(username, userid) {
|
||||
return new Promise((resolve, reject) => {
|
||||
con.query(
|
||||
`INSERT INTO users (username, userid, quota) VALUES ("${username}", "${userid}", 0)`,
|
||||
(err, result) => {
|
||||
if (err) reject(err);
|
||||
resolve(result);
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
function incrementQuota(id, value) {
|
||||
return new Promise((resolve, reject) => {
|
||||
connection.query('UPDATE users SET quota = quota + '+ value + ' WHERE userid = ' + id, (error, results, fields) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
function getUser(userid) {
|
||||
return new Promise((resolve, reject) => {
|
||||
con.query(
|
||||
`SELECT * FROM users WHERE userid = "${userid}"`,
|
||||
(err, result) => {
|
||||
if (err) reject(err);
|
||||
resolve(result);
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
function usersInDb() {
|
||||
return new Promise((resolve, reject) => {
|
||||
connection.query('SELECT * FROM users', (error, results, fields) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
resolve(results);
|
||||
}
|
||||
});
|
||||
});
|
||||
function incrementQuota(user, value) {
|
||||
return new Promise((resolve, reject) => {
|
||||
con.query(
|
||||
`UPDATE users SET quota = quota + ${value} WHERE userid = "${user}"`,
|
||||
(err, result) => {
|
||||
if (err) reject(err);
|
||||
resolve(result);
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
function getQuota(id) {
|
||||
return new Promise((resolve, reject) => {
|
||||
connection.query('SELECT quota FROM users WHERE userid = ' + id, (error, results, fields) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
resolve(results[0].quota);
|
||||
}
|
||||
});
|
||||
});
|
||||
function addConv(userid, channelid, guildid) {
|
||||
return new Promise((resolve, reject) => {
|
||||
con.query(
|
||||
`INSERT INTO convs (userid, channelid, guildid) VALUES ("${userid}", "${channelid}", "${guildid}")`,
|
||||
(err, result) => {
|
||||
if (err) reject(err);
|
||||
resolve(result);
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
function addConv (convName) {
|
||||
return new Promise((resolve, reject) => {
|
||||
connection.query('INSERT INTO conversations (name) VALUES ("' + convName + '")', (error, results, fields) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
connection.query('CREATE TABLE ' + convName + '(id int NOT NULL AUTO_INCREMENT, author varchar(20) NOT NULL, message text, user varchar(20), PRIMARY KEY (id))', async (error, results, fields) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
resolve(addMessage(convName, 'system', 'You are a helpful assistant.', 'System'));
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
function removeConv(channelid) {
|
||||
return new Promise((resolve, reject) => {
|
||||
con.query(
|
||||
`DELETE FROM convs WHERE channelid = "${channelid}"`,
|
||||
(err, result) => {
|
||||
if (err) reject(err);
|
||||
resolve(result);
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
function delConv (convName) {
|
||||
return new Promise((resolve, reject) => {
|
||||
connection.query('DROP TABLE ' + convName, (error, results, fields) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
connection.query('DELETE FROM conversations WHERE name = "' + convName + '"', (error, results, fields) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
resolve(results);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
function getConv(channelid) {
|
||||
return new Promise((resolve, reject) => {
|
||||
con.query(
|
||||
`SELECT * FROM convs WHERE channelid = "${channelid}"`,
|
||||
(err, result) => {
|
||||
if (err) reject(err);
|
||||
resolve(result);
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
});
|
||||
function getQuotasSum() {
|
||||
return new Promise((resolve, reject) => {
|
||||
con.query(`SELECT SUM(quota) FROM users`, (err, result) => {
|
||||
if (err) reject(err);
|
||||
resolve(result);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function addMessage(convName, author, message, user) {
|
||||
return new Promise((resolve, reject) => {
|
||||
connection.query('INSERT INTO ' + convName + ' (author, message, user) VALUES ("' + author + '"'+', "' + message + '", "' + user + '")', (error, results, fields) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
resolve(results);
|
||||
}
|
||||
});
|
||||
function resetQuotas() {
|
||||
return new Promise((resolve, reject) => {
|
||||
con.query(`UPDATE users SET quota = 0`, (err, result) => {
|
||||
if (err) reject(err);
|
||||
resolve(result);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function getMessages (convName, choice) {
|
||||
return new Promise((resolve, reject) => {
|
||||
connection.query('SELECT author, message, user FROM ' + convName, (error, results, fields) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
messages = [];
|
||||
if (choice == 'role') {
|
||||
results.forEach(element => {
|
||||
messages.push({"role" : element.author, "content" : element.message});
|
||||
});
|
||||
} else if (choice == 'user') {
|
||||
results.forEach(element => {
|
||||
messages.push({"user" : element.user, "content" : element.message});
|
||||
});
|
||||
}
|
||||
|
||||
resolve(messages);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async function isNewUser(id, username) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
users = await usersInDb().catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
|
||||
test = false;
|
||||
quota = 0;
|
||||
|
||||
users.forEach(element => {
|
||||
if (element.userid == id) {
|
||||
test = true;
|
||||
quota = element.quota;
|
||||
}
|
||||
});
|
||||
|
||||
if (test == false) {
|
||||
addUserToDb(id, username);
|
||||
}
|
||||
|
||||
resolve({quota : quota});
|
||||
});
|
||||
}
|
||||
|
||||
async function listchannels() {
|
||||
return new Promise((resolve, reject) => {
|
||||
connection.query('SELECT id FROM channels', (error, results, fields) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
channels = [];
|
||||
results.forEach(element => {
|
||||
channels.push(element.id);
|
||||
});
|
||||
resolve(channels);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async function addChannel(id) {
|
||||
return new Promise((resolve, reject) => {
|
||||
connection.query('INSERT INTO channels (id) VALUES (' + id + ')', (error, results, fields) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async function deleteChannel(id) {
|
||||
return new Promise((resolve, reject) => {
|
||||
connection.query('DELETE FROM channels WHERE id = ' + id, (error, results, fields) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = { addUserToDb, incrementQuota, usersInDb, getQuota, addConv, delConv, getConvs, addMessage, getMessages, isNewUser, listchannels, addChannel, deleteChannel };
|
||||
module.exports = {
|
||||
registerUser,
|
||||
getUser,
|
||||
incrementQuota,
|
||||
addConv,
|
||||
removeConv,
|
||||
getConv,
|
||||
getQuotasSum,
|
||||
resetQuotas,
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue