Improve default fm command, plus improve help
This commit is contained in:
parent
12ba68e9d6
commit
7bd728a16e
2 changed files with 43 additions and 13 deletions
|
@ -1,6 +1,7 @@
|
||||||
const fmlogin = require("../../util/lastfm/fmlogin");
|
const fmlogin = require("../../util/lastfm/fmlogin");
|
||||||
const getCurrentScrobble = require("../../util/lastfm/getCurrentScrobble");
|
const getCurrentScrobble = require("../../util/lastfm/getCurrentScrobble");
|
||||||
const getTopTracks = require("../../util/lastfm/getTopTracks");
|
const getTopTracks = require("../../util/lastfm/getTopTracks");
|
||||||
|
const help = require("../info/help");
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'fm',
|
name: 'fm',
|
||||||
description: 'Last fm commands. See `<prefix>help fm` for more info.',
|
description: 'Last fm commands. See `<prefix>help fm` for more info.',
|
||||||
|
@ -10,27 +11,31 @@ module.exports = {
|
||||||
"Get current scrobble: `<prefix>fm`",
|
"Get current scrobble: `<prefix>fm`",
|
||||||
"Get top tracks: `<prefix>fmtt`"
|
"Get top tracks: `<prefix>fmtt`"
|
||||||
],
|
],
|
||||||
async execute({ message, args, prefix }) {
|
async execute({ message, args, prefix, client }) {
|
||||||
let sendText = "Something went wrong.";
|
let sendText = {text: "Something went wrong.", embed: null};
|
||||||
switch (args[0]) {
|
switch (args[0]) {
|
||||||
case "help":
|
case "help":
|
||||||
sendText = this.moreHelp.join("\n").replace(/<prefix>/g, prefix);
|
help.execute({ message: message, args: ["fm"], prefix: prefix, client: client });
|
||||||
break;
|
return;
|
||||||
case "set":
|
case "set":
|
||||||
sendText = await fmlogin(message.author.id, args[1]);
|
sendText.text = await fmlogin(message.author.id, args[1]);
|
||||||
break;
|
break;
|
||||||
case "toptracks":
|
case "toptracks":
|
||||||
case "tt":
|
case "tt":
|
||||||
args.shift();
|
args.shift();
|
||||||
sendText = await getTopTracks(message.author.id, args);
|
sendText.text = await getTopTracks(message.author.id, args);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
sendText = `${args[0]} is not a valid subcommand.\nSee \`${prefix}help fm\` for more info.`;
|
sendText.text = `${args[0]} is not a valid subcommand.\nSee \`${prefix}help fm\` for more info.`;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(args.length < 1){
|
if(args.length < 1){
|
||||||
sendText = await getCurrentScrobble(message.author.id);
|
sendText = await getCurrentScrobble(message.author.id, message.guild);
|
||||||
|
}
|
||||||
|
if(sendText.embed != null){
|
||||||
|
message.channel.send({embeds :[sendText.embed]})
|
||||||
|
}else{
|
||||||
|
message.channel.send(sendText.text);
|
||||||
}
|
}
|
||||||
message.channel.send(sendText);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
|
@ -1,8 +1,18 @@
|
||||||
|
const getNickname = require("../getNickname");
|
||||||
|
const parseMention = require("../parseMention");
|
||||||
const getFmUsername = require("./getFmUsername");
|
const getFmUsername = require("./getFmUsername");
|
||||||
|
const Discord = require('discord.js');
|
||||||
|
|
||||||
require("dotenv").config();
|
require("dotenv").config();
|
||||||
module.exports = async function(userID) {
|
module.exports = async function(userID, guild) {
|
||||||
let sendText = "";
|
let parse = parseMention(userID, guild)
|
||||||
|
let user = guild.members.cache.get(parse);
|
||||||
|
let nickname = getNickname(user, guild)
|
||||||
|
if(nickname == null){
|
||||||
|
nickname = user.user.username;
|
||||||
|
}
|
||||||
|
let isCurrentScrobble = "Current";
|
||||||
|
let sendText = {text: "", embed: null}
|
||||||
let scrobble = {};
|
let scrobble = {};
|
||||||
const apiKey = process.env.LAST_FM_API_KEY;
|
const apiKey = process.env.LAST_FM_API_KEY;
|
||||||
let lastfmUsername = await getFmUsername(userID);
|
let lastfmUsername = await getFmUsername(userID);
|
||||||
|
@ -16,6 +26,11 @@ module.exports = async function(userID) {
|
||||||
scrobble.artist = track.artist["#text"];
|
scrobble.artist = track.artist["#text"];
|
||||||
scrobble.song = track.name;
|
scrobble.song = track.name;
|
||||||
scrobble.album = track.album["#text"];
|
scrobble.album = track.album["#text"];
|
||||||
|
scrobble.cover = track.image[3]["#text"];
|
||||||
|
console.log(typeof track['@attr'].nowplaying);
|
||||||
|
if(track['@attr'].nowplaying === "true"){
|
||||||
|
isCurrentScrobble = "Last";
|
||||||
|
}
|
||||||
resolve(scrobble);
|
resolve(scrobble);
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
@ -23,9 +38,19 @@ module.exports = async function(userID) {
|
||||||
reject(error);
|
reject(error);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
sendText = `Currently scrobbling:\n${scrobble.artist} - ${scrobble.song}\nAlbum: ${scrobble.album}`;
|
const embed = new Discord.MessageEmbed()
|
||||||
|
.setAuthor(`Now playing - ${nickname}`, user.user.avatarURL({ dynamic: true, size: 4096 }))
|
||||||
|
.setThumbnail(scrobble.cover)
|
||||||
|
.setColor(15780145)
|
||||||
|
.addFields({
|
||||||
|
name: "Current:", value: `${scrobble.song}\n **${scrobble.artist} • ** ${scrobble.album}`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Previous:", value: `**TODO: Make this show the previous scrobble**`
|
||||||
|
},)
|
||||||
|
sendText.embed = embed;
|
||||||
} else {
|
} else {
|
||||||
sendText = "You haven't set your last.fm username yet. Use `fm set <lastfm_username>` to set it.";
|
sendText.text = "You haven't set your last.fm username yet. Use `fm set <lastfm_username>` to set it.";
|
||||||
}
|
}
|
||||||
return sendText;
|
return sendText;
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue