const { globalConfig } = require("../index.js") /** * Queries LastFM for user set in config file and returns formatted result * @returns {object} Object containing response in JSON and HTML (as string), WILL RETURN EMPTY OBJECT ON FAILURE! */ async function queryLastfm() { return await fetch(`https://ws.audioscrobbler.com/2.0/?format=json&method=user.getrecenttracks&limit=1&api_key=${globalConfig.nowplaying.lastfm.apiKey}&user=${globalConfig.nowplaying.lastfm.target}`).then(response => response.json()).then(response => { if (response["recenttracks"] == undefined) { return {} } else { if (response.recenttracks.track[0]["@attr"] == undefined) { return {} } else { return { "json": { "songName": response.recenttracks.track[0].name, "artistName": response.recenttracks.track[0].artist["#text"], "albumName": response.recenttracks.track[0].album["#text"], "artUrl": response.recenttracks.track[0].image[3]["#text"], "link": response.recenttracks.track[0].url }, "html": `Album Art

I'm listening to

${response.recenttracks.track[0].name} by ${response.recenttracks.track[0].artist["#text"]}

from ${response.recenttracks.track[0].album["#text"]}

View on Last.fm
` } } } }).catch(fetchError => { console.log("libnowplaying.js: Fetch failed! "+fetchError) return {} }) } module.exports = { queryLastfm }