Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 4x 2x 2x 2x 1x 1x | export interface ArtistScrobbleInfo { name: string; mbid?: string; url: string; image: { "#text": string; size: string; }[]; streamable: string; ontour: string; stats: { listeners: string; playcount: string; }; similar: { artist: ArtistScrobbleInfo[]; }; tags: { tag: { name: string; url: string; }[]; }; bio: { links: { link: { "#text": string; rel: string; href: string; }; }; published: string; summary: string; content: string; }; banner?: string; thumb?: string; } export async function getArtistScrobbleInfo( artistName: string ): Promise<ArtistScrobbleInfo | null> { const api = process.env.LAST_FM_API_KEY as string; const res = await fetch( `http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=${artistName}&api_key=${api}&format=json`, { method: "GET", headers: { accept: "application/json", }, } ); if (!res.ok) return null; const data = (await res.json()) as { artist: ArtistScrobbleInfo }; return data.artist; } |