chore: music cleanup
This commit is contained in:
parent
68bafb6f66
commit
cceb6f92f1
1 changed files with 14 additions and 17 deletions
|
@ -15,10 +15,7 @@ const aliasArtists = (array) => {
|
||||||
return array
|
return array
|
||||||
}
|
}
|
||||||
|
|
||||||
const sortTrim = (array, length = 8) =>
|
const sort = (array) => Object.values(array).sort((a, b) => b.plays - a.plays)
|
||||||
Object.values(array)
|
|
||||||
.sort((a, b) => b.plays - a.plays)
|
|
||||||
.splice(0, length)
|
|
||||||
|
|
||||||
module.exports = async function () {
|
module.exports = async function () {
|
||||||
const APPLE_BEARER = process.env.API_BEARER_APPLE_MUSIC
|
const APPLE_BEARER = process.env.API_BEARER_APPLE_MUSIC
|
||||||
|
@ -68,41 +65,41 @@ module.exports = async function () {
|
||||||
|
|
||||||
res.forEach((track) => {
|
res.forEach((track) => {
|
||||||
// aggregate artists
|
// aggregate artists
|
||||||
if (!response.artists[track.attributes.artistName]) {
|
if (!response.artists[track.attributes['artistName']]) {
|
||||||
response.artists[track.attributes.artistName] = {
|
response.artists[track.attributes['artistName']] = {
|
||||||
artist: track.attributes.artistName,
|
artist: track.attributes['artistName'],
|
||||||
plays: 1,
|
plays: 1,
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
response.artists[track.attributes.artistName].plays++
|
response.artists[track.attributes['artistName']].plays++
|
||||||
}
|
}
|
||||||
|
|
||||||
// aggregate albums
|
// aggregate albums
|
||||||
if (!response.albums[track.attributes.albumName]) {
|
if (!response.albums[track.attributes['albumName']]) {
|
||||||
response.albums[track.attributes.albumName] = {
|
response.albums[track.attributes['albumName']] = {
|
||||||
name: track.attributes.albumName,
|
name: track.attributes['albumName'],
|
||||||
artist: track.attributes.artistName,
|
artist: track.attributes['artistName'],
|
||||||
art: track.attributes.artwork.url.replace('{w}', '300').replace('{h}', '300'),
|
art: track.attributes.artwork.url.replace('{w}', '300').replace('{h}', '300'),
|
||||||
plays: 1,
|
plays: 1,
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
response.albums[track.attributes.albumName].plays++
|
response.albums[track.attributes['albumName']].plays++
|
||||||
}
|
}
|
||||||
|
|
||||||
// aggregate tracks
|
// aggregate tracks
|
||||||
if (!response.tracks[track.attributes.name]) {
|
if (!response.tracks[track.attributes.name]) {
|
||||||
response.tracks[track.attributes.name] = {
|
response.tracks[track.attributes.name] = {
|
||||||
name: track.attributes.name,
|
name: track.attributes.name,
|
||||||
artist: track.attributes.artistName,
|
artist: track.attributes['artistName'],
|
||||||
plays: 1,
|
plays: 1,
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
response.tracks[track.attributes.name].plays++
|
response.tracks[track.attributes.name].plays++
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
response.artists = aliasArtists(sortTrim(response.artists))
|
response.artists = aliasArtists(sort(response.artists)).splice(0, 8)
|
||||||
response.albums = aliasArtists(sortTrim(response.albums))
|
response.albums = aliasArtists(sort(response.albums)).splice(0, 8)
|
||||||
response.tracks = aliasArtists(sortTrim(response.tracks, 5))
|
response.tracks = aliasArtists(sort(response.tracks)).splice(0, 5)
|
||||||
await asset.save(response, 'json')
|
await asset.save(response, 'json')
|
||||||
return response
|
return response
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue