UNPKG

@aaronlcj/use-last-fm

Version:

Get data from last.fm as a React hook.

3 lines (2 loc) 1.11 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,r=(t=require("swr"))&&"object"==typeof t&&"default"in t?t.default:t;exports.default=function(){function t(t){this.token=t}return t.prototype.get=function(t,e,n){void 0===e&&(e=15e3),void 0===n&&(n="extralarge");var u=r("//ws.audioscrobbler.com/2.0/?method="+t.query.type+"."+t.query.node+"&"+t.query.type+"="+t.param+"&api_key="+this.token+"&format=json&limit=1",{refreshInterval:e}),o=u.data,a=void 0===o?null:o;if(u.error)return{status:"error",song:null};try{return function(t,r){var e,n,u;if(!t)return{status:"connecting",song:null};var o=null===(e=t.recenttracks.track)||void 0===e?void 0:e[0];if(!o||!(null===(n=o["@attr"])||void 0===n?void 0:n.nowplaying))return{status:"idle",song:null};var a=o.image.find((function(t){return t.size===r}));return{status:"playing",song:{name:o.name,artist:o.artist["#text"],art:null!==(u=null==a?void 0:a["#text"])&&void 0!==u?u:o.image[0]["#text"],url:o.url,album:o.album["#text"]}}}(a,n)}catch(t){return{status:"error",song:null}}},t}(); //# sourceMappingURL=use-last-fm.cjs.production.min.js.map