chore: scrobbling
This commit is contained in:
parent
e9c16f8fbe
commit
ffa9ef637a
2 changed files with 54 additions and 1 deletions
|
@ -13,4 +13,43 @@ export const sanitizeMediaString = (string) => {
|
|||
.replace(/[\(\)\[\]\{\}]/g, '')
|
||||
}
|
||||
|
||||
export const mbidMap = (artist) => mbidPatches[artist.toLowerCase()] || ''
|
||||
export const mbidMap = (artist) => mbidPatches[artist.toLowerCase()] || ''
|
||||
|
||||
export const buildChart = (tracks) => {
|
||||
const artistsData = {}
|
||||
const albumsData = {}
|
||||
const tracksData = {}
|
||||
|
||||
const objectToArray = (inputObject) => {
|
||||
return Object.keys(inputObject).map(key => ({
|
||||
name: key,
|
||||
count: inputObject[key]
|
||||
}));
|
||||
};
|
||||
|
||||
tracks.forEach(track => {
|
||||
if (!tracksData[track['track']]) {
|
||||
tracksData[track['track']] = 1
|
||||
} else {
|
||||
tracksData[track['track']]++
|
||||
}
|
||||
|
||||
if (!artistsData[track['artist']]) {
|
||||
artistsData[track['artist']] = 1
|
||||
} else {
|
||||
artistsData[track['artist']]++
|
||||
}
|
||||
|
||||
if (!albumsData[track['album']]) {
|
||||
albumsData[track['album']] = 1
|
||||
} else {
|
||||
albumsData[track['album']]++
|
||||
}
|
||||
})
|
||||
|
||||
return {
|
||||
artists: objectToArray(artistsData).sort((a, b) => b.count - a.count),
|
||||
albums: objectToArray(albumsData).sort((a, b) => b.count - a.count),
|
||||
tracks: objectToArray(tracksData).sort((a, b) => b.count - a.count),
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
import EleventyFetch from '@11ty/eleventy-fetch';
|
||||
import { artistCapitalization, buildChart } from './helpers/music.js'
|
||||
|
||||
export default async function () {
|
||||
const API_KEY_MUSIC = process.env.API_KEY_MUSIC;
|
||||
const url = `https://coryd.dev/api/music?key=${API_KEY_MUSIC}`;
|
||||
const res = EleventyFetch(url, {
|
||||
duration: '1h',
|
||||
type: 'json',
|
||||
}).catch();
|
||||
const resObj = await res;
|
||||
console.log(buildChart(resObj['data']))
|
||||
return buildChart(resObj['data'])
|
||||
}
|
Reference in a new issue