add requests to user playlists
This commit is contained in:
parent
1736ed2443
commit
1418299ff0
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
node_modules
|
node_modules
|
||||||
old
|
old
|
||||||
.env
|
.env
|
||||||
|
playlists/*
|
||||||
|
@ -13,13 +13,17 @@ const spotify = new Spotify({
|
|||||||
|
|
||||||
const parseTrackData = tracks => {
|
const parseTrackData = tracks => {
|
||||||
const { items } = tracks
|
const { items } = tracks
|
||||||
printTrackNames(items)
|
//printTrackNames(items)
|
||||||
const { album, artists, uri, name } = items[0]
|
const { album, artists, uri, name } = items[0]
|
||||||
const artist = artists[0].name
|
const artist = artists[0].name
|
||||||
const albumName = album.name
|
const albumName = album.name
|
||||||
return { trackName: name, artistName: artist, albumName, uri }
|
return { trackName: name, artistName: artist, albumName, uri }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const addToPlaylist = (nick, string) => {
|
||||||
|
require('fs').appendFileSync(`playlists/${nick}`, string)
|
||||||
|
}
|
||||||
|
|
||||||
const searchTrack = event => {
|
const searchTrack = event => {
|
||||||
let pattern = /^!search "(.+?)"( artist "(.+?)")?/
|
let pattern = /^!search "(.+?)"( artist "(.+?)")?/
|
||||||
let match = event.message.match(pattern)
|
let match = event.message.match(pattern)
|
||||||
@ -30,7 +34,7 @@ const searchTrack = event => {
|
|||||||
|
|
||||||
let query = match[1]
|
let query = match[1]
|
||||||
if (match[3]) query += ` artist:${match[3]}`
|
if (match[3]) query += ` artist:${match[3]}`
|
||||||
printQuery(query)
|
//printQuery(query)
|
||||||
spotify.search({ type: 'track', query }).then(data => {
|
spotify.search({ type: 'track', query }).then(data => {
|
||||||
if (!data || !data.tracks) return event.reply('Something went wrong.')
|
if (!data || !data.tracks) return event.reply('Something went wrong.')
|
||||||
if (data.tracks.total === 0) return event.reply('No results.')
|
if (data.tracks.total === 0) return event.reply('No results.')
|
||||||
@ -52,7 +56,7 @@ const requestTrack = event => {
|
|||||||
|
|
||||||
let query = match[1]
|
let query = match[1]
|
||||||
if (match[3]) query += ` artist:${match[3]}`
|
if (match[3]) query += ` artist:${match[3]}`
|
||||||
printQuery(query)
|
//printQuery(query)
|
||||||
spotify.search({ type: 'track', query }).then(data => {
|
spotify.search({ type: 'track', query }).then(data => {
|
||||||
if (!data || !data.tracks) return event.reply('Something went wrong.')
|
if (!data || !data.tracks) return event.reply('Something went wrong.')
|
||||||
if (data.tracks.total === 0) return event.reply('No results.')
|
if (data.tracks.total === 0) return event.reply('No results.')
|
||||||
@ -62,22 +66,24 @@ const requestTrack = event => {
|
|||||||
printTrackData(trackName, artistName, albumName, uri)
|
printTrackData(trackName, artistName, albumName, uri)
|
||||||
const { error } = insertTrack(uri)
|
const { error } = insertTrack(uri)
|
||||||
if (error) return event.reply('Something went wrong.')
|
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 => {
|
// const printQuery = query => {
|
||||||
console.log(chalk.red('\n*******************************************\n'))
|
// console.log(chalk.red('\n*******************************************\n'))
|
||||||
console.log('Sending the following query to Spotify:')
|
// console.log('Sending the following query to Spotify:')
|
||||||
console.log(query)
|
// console.log(query)
|
||||||
console.log(chalk.red('\n*******************************************\n'))
|
// console.log(chalk.red('\n*******************************************\n'))
|
||||||
}
|
// }
|
||||||
const printTrackNames = items => {
|
// const printTrackNames = items => {
|
||||||
console.log(chalk.yellow('\n*******************************************\n'))
|
// console.log(chalk.yellow('\n*******************************************\n'))
|
||||||
console.log('Search returned the following tracks:')
|
// console.log('Search returned the following tracks:')
|
||||||
items.map(i => console.log(`'${i.name}' by ${i.artists[0].name}`))
|
// items.map(i => console.log(`'${i.name}' by ${i.artists[0].name}`))
|
||||||
console.log(chalk.yellow('\n*******************************************\n'))
|
// console.log(chalk.yellow('\n*******************************************\n'))
|
||||||
}
|
// }
|
||||||
const printTrackData = (name, artist, albumName, uri) => {
|
const printTrackData = (name, artist, albumName, uri) => {
|
||||||
console.log(chalk.blue('\n*******************************************\n'))
|
console.log(chalk.blue('\n*******************************************\n'))
|
||||||
console.log('name:', name)
|
console.log('name:', name)
|
||||||
|
Loading…
Reference in New Issue
Block a user