25 lines
946 B
JavaScript
25 lines
946 B
JavaScript
const EleventyFetch = require('@11ty/eleventy-fetch')
|
|
|
|
module.exports = async function () {
|
|
const MUSIC_KEY = process.env.API_KEY_LASTFM
|
|
const url = `https://ws.audioscrobbler.com/2.0/?method=user.gettopartists&user=cdrn_&api_key=${MUSIC_KEY}&limit=8&format=json&period=7day`
|
|
const res = EleventyFetch(url, {
|
|
duration: '1h',
|
|
type: 'json',
|
|
}).catch()
|
|
const data = await res
|
|
return data['topartists']['artist'].map((artist) => {
|
|
return {
|
|
title: artist['name'],
|
|
plays: artist['playcount'],
|
|
rank: artist['@attr']['rank'],
|
|
image:
|
|
`https://cdn.coryd.dev/artists/${artist['name'].replace(/\s+/g, '-').toLowerCase()}.jpg` ||
|
|
'https://cdn.coryd.dev/artists/missing-artist.jpg',
|
|
url: artist['mbid']
|
|
? `https://musicbrainz.org/artist/${artist['mbid']}`
|
|
: `https://musicbrainz.org/search?query=${encodeURI(artist['name'])}&type=artist`,
|
|
type: 'artist',
|
|
}
|
|
})
|
|
}
|