From 1418299ff080b629a1f5544a75138540d1f642b1 Mon Sep 17 00:00:00 2001 From: notnull Date: Sat, 21 Dec 2019 21:59:52 -0500 Subject: [PATCH] add requests to user playlists --- .gitignore | 1 + src/spotify.js | 38 ++++++++++++++++++++++---------------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 85844b3..5a27000 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules old .env +playlists/* diff --git a/src/spotify.js b/src/spotify.js index d4a2f5b..d4235ee 100644 --- a/src/spotify.js +++ b/src/spotify.js @@ -13,13 +13,17 @@ const spotify = new Spotify({ const parseTrackData = tracks => { const { items } = tracks - printTrackNames(items) + //printTrackNames(items) const { album, artists, uri, name } = items[0] const artist = artists[0].name const albumName = album.name return { trackName: name, artistName: artist, albumName, uri } } +const addToPlaylist = (nick, string) => { + require('fs').appendFileSync(`playlists/${nick}`, string) +} + const searchTrack = event => { let pattern = /^!search "(.+?)"( artist "(.+?)")?/ let match = event.message.match(pattern) @@ -30,7 +34,7 @@ const searchTrack = event => { let query = match[1] if (match[3]) query += ` artist:${match[3]}` - printQuery(query) + //printQuery(query) spotify.search({ type: 'track', query }).then(data => { if (!data || !data.tracks) return event.reply('Something went wrong.') if (data.tracks.total === 0) return event.reply('No results.') @@ -52,7 +56,7 @@ const requestTrack = event => { let query = match[1] if (match[3]) query += ` artist:${match[3]}` - printQuery(query) + //printQuery(query) spotify.search({ type: 'track', query }).then(data => { if (!data || !data.tracks) return event.reply('Something went wrong.') if (data.tracks.total === 0) return event.reply('No results.') @@ -62,22 +66,24 @@ const requestTrack = event => { printTrackData(trackName, artistName, albumName, uri) const { error } = insertTrack(uri) if (error) return event.reply('Something went wrong.') - event.reply(`Requested '${trackName}' by ${artistName}`) + const request = `'${trackName}' by ${artistName}` + addToPlaylist(event.nick, `${uri} # ${request}`) + event.reply(`Requested ${request}`) }) } -const printQuery = query => { - console.log(chalk.red('\n*******************************************\n')) - console.log('Sending the following query to Spotify:') - console.log(query) - console.log(chalk.red('\n*******************************************\n')) -} -const printTrackNames = items => { - console.log(chalk.yellow('\n*******************************************\n')) - console.log('Search returned the following tracks:') - items.map(i => console.log(`'${i.name}' by ${i.artists[0].name}`)) - console.log(chalk.yellow('\n*******************************************\n')) -} +// const printQuery = query => { +// console.log(chalk.red('\n*******************************************\n')) +// console.log('Sending the following query to Spotify:') +// console.log(query) +// console.log(chalk.red('\n*******************************************\n')) +// } +// const printTrackNames = items => { +// console.log(chalk.yellow('\n*******************************************\n')) +// console.log('Search returned the following tracks:') +// items.map(i => console.log(`'${i.name}' by ${i.artists[0].name}`)) +// console.log(chalk.yellow('\n*******************************************\n')) +// } const printTrackData = (name, artist, albumName, uri) => { console.log(chalk.blue('\n*******************************************\n')) console.log('name:', name)