Show duration
This commit is contained in:
parent
ecb5a75de1
commit
b1bc4306eb
|
@ -3,7 +3,7 @@ const { v4: uuidv4 } = require('uuid');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const { EmbedBuilder } = require('discord.js');
|
const { EmbedBuilder } = require('discord.js');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const { exec, spawn } = require('child_process');
|
const { exec, spawn, execSync } = require('child_process');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'play',
|
name: 'play',
|
||||||
|
@ -26,6 +26,19 @@ module.exports = {
|
||||||
let loadingMessage;
|
let loadingMessage;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
const getDuration = (filePath) => {
|
||||||
|
try {
|
||||||
|
const output = execSync(`ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "${filePath}"`).toString().trim();
|
||||||
|
const durationSeconds = parseFloat(output);
|
||||||
|
const minutes = Math.floor(durationSeconds / 60);
|
||||||
|
const seconds = Math.floor(durationSeconds % 60);
|
||||||
|
return `${minutes}:${seconds.toString().padStart(2, '0')}`;
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error getting track duration:', error);
|
||||||
|
return 'Unknown';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
if (message.attachments.size > 0) {
|
if (message.attachments.size > 0) {
|
||||||
const attachment = message.attachments.first();
|
const attachment = message.attachments.first();
|
||||||
const attachmentName = attachment.name.toLowerCase();
|
const attachmentName = attachment.name.toLowerCase();
|
||||||
|
@ -43,10 +56,12 @@ module.exports = {
|
||||||
|
|
||||||
console.log(`Downloaded and saved: ${tempFilePath}`);
|
console.log(`Downloaded and saved: ${tempFilePath}`);
|
||||||
|
|
||||||
|
const duration = getDuration(tempFilePath);
|
||||||
|
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setColor('#0099ff')
|
.setColor('#0099ff')
|
||||||
.setTitle('Added To Queue')
|
.setTitle('Added To Queue')
|
||||||
.setDescription(`**${title}**`)
|
.setDescription(`**${title}** (${duration})`)
|
||||||
.setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL() })
|
.setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL() })
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
|
|
||||||
|
@ -81,10 +96,12 @@ module.exports = {
|
||||||
console.log(`Converted and saved: ${tempFilePath}`);
|
console.log(`Converted and saved: ${tempFilePath}`);
|
||||||
fs.unlinkSync(tempVideoPath);
|
fs.unlinkSync(tempVideoPath);
|
||||||
|
|
||||||
|
const duration = getDuration(tempFilePath);
|
||||||
|
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setColor('#0099ff')
|
.setColor('#0099ff')
|
||||||
.setTitle('Added To Queue')
|
.setTitle('Added To Queue')
|
||||||
.setDescription(`**${title}**`)
|
.setDescription(`**${title}** (${duration})`)
|
||||||
.setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL() })
|
.setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL() })
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
|
|
||||||
|
@ -122,10 +139,12 @@ module.exports = {
|
||||||
|
|
||||||
console.log(`Downloaded and saved: ${tempFilePath}`);
|
console.log(`Downloaded and saved: ${tempFilePath}`);
|
||||||
|
|
||||||
|
const duration = getDuration(tempFilePath);
|
||||||
|
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setColor('#0099ff')
|
.setColor('#0099ff')
|
||||||
.setTitle('Added To Queue')
|
.setTitle('Added To Queue')
|
||||||
.setDescription(`**${title}**`)
|
.setDescription(`**${title}** (${duration})`)
|
||||||
.setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL() })
|
.setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL() })
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
|
|
||||||
|
@ -165,10 +184,12 @@ module.exports = {
|
||||||
console.log(`Converted and saved: ${tempFilePath}`);
|
console.log(`Converted and saved: ${tempFilePath}`);
|
||||||
fs.unlinkSync(tempVideoPath);
|
fs.unlinkSync(tempVideoPath);
|
||||||
|
|
||||||
|
const duration = getDuration(tempFilePath);
|
||||||
|
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setColor('#0099ff')
|
.setColor('#0099ff')
|
||||||
.setTitle('Added To Queue')
|
.setTitle('Added To Queue')
|
||||||
.setDescription(`**${title}**`)
|
.setDescription(`**${title}** (${duration})`)
|
||||||
.setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL() })
|
.setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL() })
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
|
|
||||||
|
@ -188,10 +209,12 @@ module.exports = {
|
||||||
fs.writeFileSync(tempFilePath, buffer);
|
fs.writeFileSync(tempFilePath, buffer);
|
||||||
console.log(`Downloaded and saved: ${tempFilePath}`);
|
console.log(`Downloaded and saved: ${tempFilePath}`);
|
||||||
|
|
||||||
|
const duration = getDuration(tempFilePath);
|
||||||
|
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setColor('#0099ff')
|
.setColor('#0099ff')
|
||||||
.setTitle('Added To Queue')
|
.setTitle('Added To Queue')
|
||||||
.setDescription(`**${title}**`)
|
.setDescription(`**${title}** (${duration})`)
|
||||||
.setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL() })
|
.setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL() })
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
|
|
||||||
|
@ -233,6 +256,8 @@ module.exports = {
|
||||||
|
|
||||||
console.log(`Downloaded and saved: ${tempFilePath}`);
|
console.log(`Downloaded and saved: ${tempFilePath}`);
|
||||||
|
|
||||||
|
const duration = getDuration(tempFilePath);
|
||||||
|
|
||||||
if (loadingMessage) {
|
if (loadingMessage) {
|
||||||
await loadingMessage.delete();
|
await loadingMessage.delete();
|
||||||
}
|
}
|
||||||
|
@ -240,7 +265,7 @@ module.exports = {
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setColor('#0099ff')
|
.setColor('#0099ff')
|
||||||
.setTitle('Added To Queue')
|
.setTitle('Added To Queue')
|
||||||
.setDescription(`**${title}**`)
|
.setDescription(`**${title}** (${duration})`)
|
||||||
.setThumbnail(thumbnailUrl)
|
.setThumbnail(thumbnailUrl)
|
||||||
.setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL() })
|
.setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL() })
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
|
@ -281,6 +306,8 @@ module.exports = {
|
||||||
|
|
||||||
console.log(`Downloaded and saved: ${tempFilePath}`);
|
console.log(`Downloaded and saved: ${tempFilePath}`);
|
||||||
|
|
||||||
|
const duration = getDuration(tempFilePath);
|
||||||
|
|
||||||
if (loadingMessage) {
|
if (loadingMessage) {
|
||||||
await loadingMessage.delete();
|
await loadingMessage.delete();
|
||||||
}
|
}
|
||||||
|
@ -288,7 +315,7 @@ module.exports = {
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setColor('#0099ff')
|
.setColor('#0099ff')
|
||||||
.setTitle('Added To Queue')
|
.setTitle('Added To Queue')
|
||||||
.setDescription(`**${title}**`)
|
.setDescription(`**${title}** (${duration})`)
|
||||||
.setThumbnail(thumbnailUrl)
|
.setThumbnail(thumbnailUrl)
|
||||||
.setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL() })
|
.setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL() })
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
|
|
Loading…
Reference in New Issue