Update readme

This commit is contained in:
lowlighter
2020-10-25 23:34:36 +01:00
parent 5f4e27c920
commit 38a9f93f54
10 changed files with 272 additions and 17 deletions

View File

@@ -113,23 +113,37 @@
switch (provider) {
//Spotify
case "spotify":{
//Prepare credentials
const [client_id, client_secret, refresh_token] = token.split(",").map(part => part.trim())
if ((!client_id)||(!client_secret)||(!refresh_token))
throw {status:`Spotify token must contain client id/secret and refresh token`}
//API call and parse tracklist
try {
tracks = (await imports.axios(`https://api.spotify.com/v1/me/player/recently-played?limit=${limit}&after=${timestamp}`, {headers:{
"Accept":"application/json",
"Content-Type":"application/json",
"Authorization":`Bearer ${token}`}
})).data.items.map(({track}) => ({
name:track.name,
artist:track.artists[0].name,
artwork:track.album.images[0].url,
}))
//Request access token
console.debug(`metrics/compute/${login}/plugins > music > requesting access token with refresh token for spotify`)
const {data:{access_token:access}} = await imports.axios.post("https://accounts.spotify.com/api/token",
`${new imports.url.URLSearchParams({grant_type:"refresh_token", refresh_token, client_id, client_secret})}`,
{headers:{"Content-Type":"application/x-www-form-urlencoded"}},
)
console.log(access)
console.debug(`metrics/compute/${login}/plugins > music > got new access token`)
//Retriev tracks
tracks = (await imports.axios(`https://api.spotify.com/v1/me/player/recently-played?limit=${limit}&after=${timestamp}`, {headers:{
"Accept":"application/json",
"Content-Type":"application/json",
"Authorization":`Bearer ${access}`}
})).data.items.map(({track}) => ({
name:track.name,
artist:track.artists[0].name,
artwork:track.album.images[0].url,
}))
}
//Handle errors
catch (error) {
console.debug(error)
if ((error.response)&&(error.response.status))
throw {status:`API call returned ${error.response.status}`}
throw error
}
break
}