Compare commits
No commits in common. "7dab6882988a7d3cceac1c8e43aedddedbb5e3fa" and "8655f279f9af0a19e25a4a0d470c8d5cc41c19fc" have entirely different histories.
7dab688298
...
8655f279f9
2 changed files with 11 additions and 53 deletions
|
@ -87,13 +87,11 @@ module.exports = {
|
||||||
if(sendText.embed != null){
|
if(sendText.embed != null){
|
||||||
let parse = parseMention(message.author.id, message.guild)
|
let parse = parseMention(message.author.id, message.guild)
|
||||||
let user = message.guild.members.cache.get(parse);
|
let user = message.guild.members.cache.get(parse);
|
||||||
if(!sendText.embed.data.color){
|
|
||||||
let roleColor = 15788778;
|
let roleColor = 15788778;
|
||||||
if (user.roles.color) {
|
if (user.roles.color) {
|
||||||
roleColor = user.roles.color.color;
|
roleColor = user.roles.color.color;
|
||||||
}
|
}
|
||||||
sendText.embed.setColor(roleColor);
|
sendText.embed.setColor(roleColor);
|
||||||
}
|
|
||||||
message.channel.send({embeds :[sendText.embed]})
|
message.channel.send({embeds :[sendText.embed]})
|
||||||
}else{
|
}else{
|
||||||
message.channel.send(sendText.text.replaceAll("<prefix>", prefix));
|
message.channel.send(sendText.text.replaceAll("<prefix>", prefix));
|
||||||
|
|
|
@ -2,11 +2,6 @@ const getNickname = require("../getNickname");
|
||||||
const parseMention = require("../parseMention");
|
const parseMention = require("../parseMention");
|
||||||
const getFmUsername = require("./getFmUsername");
|
const getFmUsername = require("./getFmUsername");
|
||||||
const {EmbedBuilder} = require('discord.js');
|
const {EmbedBuilder} = require('discord.js');
|
||||||
const path = require('path');
|
|
||||||
const fs = require('fs');
|
|
||||||
const { writeFile } = require('node:fs/promises')
|
|
||||||
const executeCommand = require('../executeCommand');
|
|
||||||
const { Readable } = require('node:stream')
|
|
||||||
|
|
||||||
require("dotenv").config();
|
require("dotenv").config();
|
||||||
module.exports = async function (userID, guild) {
|
module.exports = async function (userID, guild) {
|
||||||
|
@ -63,22 +58,10 @@ module.exports = async function (userID, guild) {
|
||||||
sendText.text = tracks.errorMsg;
|
sendText.text = tracks.errorMsg;
|
||||||
return sendText;
|
return sendText;
|
||||||
}
|
}
|
||||||
let coverDir = path.resolve(process.cwd(), 'data', 'covers');
|
|
||||||
let color = "#C27D0E"
|
|
||||||
const directory = path.resolve(coverDir, Math.floor(new Date).toString())
|
|
||||||
fs.mkdirSync(directory, {recursive: true})
|
|
||||||
const coverFile = path.resolve(directory, "cover")
|
|
||||||
let downloadResult = await downloadImage(tracks[0].cover, coverFile);
|
|
||||||
if(downloadResult.value === ERROR_CODES.SUCCESS){
|
|
||||||
const commandArgs = [`${coverFile}.${downloadResult.ext}`, "-resize", "1x1", "txt:-"]
|
|
||||||
let res = executeCommand("magick", commandArgs);
|
|
||||||
if(!res.error) color = res.output.split("\n")[1].split(" ")[3].slice(0,7);
|
|
||||||
|
|
||||||
}
|
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setAuthor({name: `Now playing - ${nickname}`, iconURL: user.user.avatarURL({ dynamic: true, size: 4096 })})
|
.setAuthor({name: `Now playing - ${nickname}`, iconURL: user.user.avatarURL({ dynamic: true, size: 4096 })})
|
||||||
.setThumbnail(tracks[0].cover)
|
.setThumbnail(tracks[0].cover)
|
||||||
.setColor(color)
|
.setColor(15780145)
|
||||||
.addFields({
|
.addFields({
|
||||||
name: `${isCurrentScrobble}:`, value: `${tracks[0].song}\n **${tracks[0].artist} • ** ${tracks[0].album}`
|
name: `${isCurrentScrobble}:`, value: `${tracks[0].song}\n **${tracks[0].artist} • ** ${tracks[0].album}`
|
||||||
},)
|
},)
|
||||||
|
@ -88,31 +71,8 @@ module.exports = async function (userID, guild) {
|
||||||
},)
|
},)
|
||||||
}
|
}
|
||||||
sendText.embed = embed;
|
sendText.embed = embed;
|
||||||
fs.rmSync(`${directory}`, {recursive: true})
|
|
||||||
} else {
|
} else {
|
||||||
sendText.text = "You haven't set your last.fm username yet. Use `<prefix>fm set <lastfm_username>` to set it.";
|
sendText.text = "You haven't set your last.fm username yet. Use `<prefix>fm set <lastfm_username>` to set it.";
|
||||||
}
|
}
|
||||||
return sendText;
|
return sendText;
|
||||||
}
|
}
|
||||||
const ERROR_CODES = {
|
|
||||||
SUCCESS: 0,
|
|
||||||
HTTP_ERROR: 1,
|
|
||||||
NOT_IMAGE: 2,
|
|
||||||
FETCH_ERROR: 3
|
|
||||||
}
|
|
||||||
async function downloadImage(url, downloadPath) {
|
|
||||||
let res;
|
|
||||||
try {
|
|
||||||
res = await fetch(url);
|
|
||||||
} catch (error) {
|
|
||||||
return {value: ERROR_CODES.FETCH_ERROR, errorMessage: error.cause?.message || error.message};
|
|
||||||
}
|
|
||||||
if(!res.ok) return {value: ERROR_CODES.HTTP_ERROR, errorMessage: res.status.toString()};
|
|
||||||
const contentType = res.headers.get('content-type');
|
|
||||||
|
|
||||||
if(!contentType || !contentType.startsWith("image")) return {value: ERROR_CODES.NOT_IMAGE, errorMessage: contentType || "No content-type header"};
|
|
||||||
const fileExt = contentType.split("/")[1]
|
|
||||||
const stream = Readable.fromWeb(res.body)
|
|
||||||
await writeFile(`${downloadPath}.${fileExt}`, stream);
|
|
||||||
return {value: ERROR_CODES.SUCCESS, errorMessage: "", ext: fileExt};
|
|
||||||
}
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue