Add fm set username command
Beginning of the command. Can't do anything other than setting and updating your lastfm username.
This commit is contained in:
parent
bdc08b3153
commit
8c02dc5517
4 changed files with 109 additions and 0 deletions
21
commands/misc/fm.js
Normal file
21
commands/misc/fm.js
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
const fmlogin = require("../../util/lastfm/fmlogin");
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
name: 'fm',
|
||||||
|
description: 'Last fm commands. See `<prefix>help fm` for more info.',
|
||||||
|
moreHelp: ["Set username: `<prefix>fm set <lastfm_username>`",],
|
||||||
|
async execute({ message, args }) {
|
||||||
|
let sendText = "Something went wrong.";
|
||||||
|
switch (args[0]) {
|
||||||
|
case "help":
|
||||||
|
sendText = this.moreHelp;
|
||||||
|
break;
|
||||||
|
case "set":
|
||||||
|
sendText = await fmlogin(message.author.id, args[1]);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
message.channel.send(sendText);
|
||||||
|
}
|
||||||
|
};
|
|
@ -17,6 +17,8 @@ async function checkAndConvertJSONToSQL(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const createDatabaseTables = require('./server/createDatabaseTables');
|
const createDatabaseTables = require('./server/createDatabaseTables');
|
||||||
|
const createLastfmTable = require('./server/createLastfmTable');
|
||||||
|
createLastfmTable();
|
||||||
checkAndConvertJSONToSQL();
|
checkAndConvertJSONToSQL();
|
||||||
const Discord = require('discord.js');
|
const Discord = require('discord.js');
|
||||||
const client = new Discord.Client({ intents: [Discord.Intents.FLAGS.GUILDS, Discord.Intents.FLAGS.GUILD_MESSAGES, Discord.Intents.FLAGS.GUILD_PRESENCES] });
|
const client = new Discord.Client({ intents: [Discord.Intents.FLAGS.GUILDS, Discord.Intents.FLAGS.GUILD_MESSAGES, Discord.Intents.FLAGS.GUILD_PRESENCES] });
|
||||||
|
|
21
server/createLastfmTable.js
Normal file
21
server/createLastfmTable.js
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
const sqlite3 = require('sqlite3').verbose();
|
||||||
|
module.exports = async function () {
|
||||||
|
const db = new sqlite3.Database('data/database.db');
|
||||||
|
return new Promise ((resolve, reject)=>{
|
||||||
|
db.run(
|
||||||
|
`CREATE TABLE IF NOT EXISTS lastfm (
|
||||||
|
userID INTEGER PRIMARY KEY,
|
||||||
|
lastfmUsername TEXT)`,
|
||||||
|
(err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(`Error while creating table 'lastfm': ${err}`);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
console.log("Table 'lastfm' created successfully.");
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
db.close();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
})
|
||||||
|
}
|
65
util/lastfm/fmlogin.js
Normal file
65
util/lastfm/fmlogin.js
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
const sqlite3 = require('sqlite3').verbose();
|
||||||
|
module.exports = async function(userID, lastfmUsername) {
|
||||||
|
let sendText = "";
|
||||||
|
// If the user already has a last.fm username set, just update it.
|
||||||
|
let entryExists = await new Promise((resolve, reject)=>{
|
||||||
|
const db = new sqlite3.Database('data/database.db');
|
||||||
|
db.get(
|
||||||
|
`SELECT * FROM lastfm WHERE userID = ?`,
|
||||||
|
[userID],
|
||||||
|
(error, row) => {
|
||||||
|
if (error) {
|
||||||
|
console.error(error);
|
||||||
|
reject(error);
|
||||||
|
} else {
|
||||||
|
resolve(row);
|
||||||
|
}
|
||||||
|
db.close();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
if (!entryExists) {
|
||||||
|
|
||||||
|
sendText = await new Promise((resolve, reject)=>{
|
||||||
|
const db = new sqlite3.Database('data/database.db');
|
||||||
|
|
||||||
|
db.run(
|
||||||
|
`INSERT INTO lastfm (userID, lastfmUsername) VALUES (?, ?)`,
|
||||||
|
[userID, lastfmUsername],
|
||||||
|
function (error) {
|
||||||
|
if (error) {
|
||||||
|
console.error(error);
|
||||||
|
let sendText = "Error while adding last.fm username. Check console.";
|
||||||
|
reject(sendText);
|
||||||
|
} else {
|
||||||
|
let sendText = `Your last.fm username has been set to '${lastfmUsername}'.`;
|
||||||
|
console.log(sendText);
|
||||||
|
resolve(sendText);
|
||||||
|
}
|
||||||
|
db.close();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}else {
|
||||||
|
sendText = await new Promise((resolve, reject)=>{
|
||||||
|
const db = new sqlite3.Database('data/database.db');
|
||||||
|
db.run(
|
||||||
|
`UPDATE lastfm SET lastfmUsername = ? WHERE userID = ?`,
|
||||||
|
[lastfmUsername, userID],
|
||||||
|
function (error) {
|
||||||
|
if (error) {
|
||||||
|
console.error(error);
|
||||||
|
let sendText = "Error while updating last.fm username. Check console.";
|
||||||
|
reject(sendText);
|
||||||
|
} else {
|
||||||
|
let sendText = `Your last.fm username has been updated to '${lastfmUsername}'.`;
|
||||||
|
console.log(sendText);
|
||||||
|
resolve(sendText);
|
||||||
|
}
|
||||||
|
db.close();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return sendText;
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue