typed lastfm things
This commit is contained in:
parent
99ba9cef4b
commit
6c9d093c8c
3 changed files with 67 additions and 14 deletions
42
src/types/lastfm.ts
Normal file
42
src/types/lastfm.ts
Normal file
|
@ -0,0 +1,42 @@
|
|||
export interface FMRawTrack {
|
||||
name: string;
|
||||
url: string;
|
||||
album: {
|
||||
"#text": string;
|
||||
};
|
||||
artist: {
|
||||
name: string;
|
||||
};
|
||||
image: Array<{
|
||||
size: string;
|
||||
"#text": string;
|
||||
}>;
|
||||
"@attr"?: {
|
||||
nowplaying?: string;
|
||||
};
|
||||
}
|
||||
|
||||
export interface FMTrack {
|
||||
name: string;
|
||||
artist: string;
|
||||
album: string;
|
||||
url: string;
|
||||
albumArt: string;
|
||||
|
||||
}
|
||||
|
||||
export interface FMResponse {
|
||||
recenttracks: {
|
||||
track: FMRawTrack[];
|
||||
};
|
||||
};
|
||||
|
||||
export function transformRawTrack(raw: FMRawTrack): FMTrack {
|
||||
return {
|
||||
name: raw.name,
|
||||
artist: raw.artist.name,
|
||||
album: raw.album["#text"],
|
||||
url: raw.url,
|
||||
albumArt: raw.image[1]["#text"]
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue