diff options
| author | Andrew Lee <alee14498@protonmail.com> | 2024-02-17 00:07:31 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-17 00:07:31 -0500 |
| commit | 214a83c0f696ac731c54b00bf7503f87e497afa6 (patch) | |
| tree | 15d57b08e69d19fb4c2f3effb9937aec8d042bdc /AudioBackend/PlayAudio.js | |
| parent | b29ab06623fd24cfc2a611bdd658b4d2ef934335 (diff) | |
| parent | c848f1d90fef40ffa81915d7dd875a2ee6d6c8d5 (diff) | |
| download | DLAP-214a83c0f696ac731c54b00bf7503f87e497afa6.tar.gz DLAP-214a83c0f696ac731c54b00bf7503f87e497afa6.tar.bz2 DLAP-214a83c0f696ac731c54b00bf7503f87e497afa6.zip | |
Merge pull request #17 from Alee14/testing
Merging testing branch
Diffstat (limited to 'AudioBackend/PlayAudio.js')
| -rw-r--r-- | AudioBackend/PlayAudio.js | 52 |
1 files changed, 37 insertions, 15 deletions
diff --git a/AudioBackend/PlayAudio.js b/AudioBackend/PlayAudio.js index e8a0f3a..d671e5a 100644 --- a/AudioBackend/PlayAudio.js +++ b/AudioBackend/PlayAudio.js @@ -21,11 +21,14 @@ import { createAudioResource } from '@discordjs/voice'; import { parseFile } from 'music-metadata'; import { readdirSync, readFileSync, writeFile } from 'node:fs'; -import { EmbedBuilder } from 'discord.js'; +import { EmbedBuilder, AttachmentBuilder } from 'discord.js'; import { player } from './VoiceInitialization.js'; import { audioState, files } from './AudioControl.js'; import { integer } from '../Commands/play.js'; +import i18next from '../Utilities/i18n.js'; + const { statusChannel, txtFile } = JSON.parse(readFileSync('./config.json', 'utf-8')); +const t = i18next.t; let fileData; @@ -38,6 +41,7 @@ export let audioTitle; export let audioArtist; export let audioYear; export let audioAlbum; +export let audioPicture; export let duration; const inputFiles = readdirSync('music'); @@ -45,9 +49,10 @@ export async function playAudio(bot) { const resource = createAudioResource('music/' + audio); player.play(resource); - console.log(`Now playing: ${audio}`); + console.log(t('nowPlayingFile', { audio })); audioState(0); + audioPicture = null; const audioFile = audio; @@ -59,6 +64,13 @@ export async function playAudio(bot) { audioArtist = common.artist; audioYear = common.year; audioAlbum = common.album; + if (common.picture) { + // Convert base64 image to a buffer + const imageBuffer = Buffer.from(common.picture[0].data, 'base64'); + + // Create a new attachment using the buffer + audioPicture = new AttachmentBuilder(imageBuffer, { name: 'albumArt.png' }); + } } else { metadataEmpty = true; } @@ -70,34 +82,44 @@ export async function playAudio(bot) { audio = audio.split('.').slice(0, -1).join('.'); if (txtFile) { - fileData = `Now Playing: ${audio}`; + fileData = t('nowPlayingFile', { audio }); writeFile('./now-playing.txt', fileData, (err) => { if (err) { console.log(err); } }); } const statusEmbed = new EmbedBuilder(); + if (metadataEmpty) { - statusEmbed.setTitle('Now Playing'); + statusEmbed.setTitle(t('nowPlaying')); statusEmbed.addFields( - { name: 'Title', value: `${audio}` }, - { name: 'Duration', value: `${duration}` } + { name: t('musicTitle'), value: `${audio}` }, + { name: t('musicDuration'), value: `${duration}` } ); statusEmbed.setColor('#0066ff'); } else { - statusEmbed.setTitle('Now Playing'); + statusEmbed.setTitle(t('nowPlaying')); statusEmbed.addFields( - { name: 'Title', value: `${audioTitle}`, inline: true }, - { name: 'Artist', value: `${audioArtist}`, inline: true }, - { name: 'Year', value: `${audioYear}` }, - { name: 'Duration', value: `${duration}` } + { name: t('musicTitle'), value: `${audioTitle}`, inline: true }, + { name: t('musicArtist'), value: `${audioArtist}`, inline: true }, + { name: t('musicYear'), value: `${audioYear}` }, + { name: t('musicDuration'), value: `${duration}` } ); - statusEmbed.setFooter({ text: `Album: ${audioAlbum}\nFilename: ${audioFile}` }); + + if (audioPicture) { + statusEmbed.setThumbnail('attachment://albumArt.png'); + } + + statusEmbed.setFooter({ text: t('playerFooter', { audioAlbum, audioFile }) }); statusEmbed.setColor('#0066ff'); } const channel = bot.channels.cache.get(statusChannel); - if (!channel) return console.error('The status channel does not exist! Skipping.'); - return await channel.send({ embeds: [statusEmbed] }); + if (!channel) return console.error(t('statusChannelError')); + if (audioPicture) { + return await channel.send({ embeds: [statusEmbed], files: [audioPicture] }); + } else { + return await channel.send({ embeds: [statusEmbed] }); + } } export function updatePlaylist(option) { @@ -118,7 +140,7 @@ export function updatePlaylist(option) { audio = inputFiles[integer]; break; case 'stop': - audio = 'Not Playing'; + audio = t('notPlaying'); break; } } |
