@toplast/lastfm
Version:
A typed Last.fm API client for Node.js
137 lines (136 loc) • 3.45 kB
TypeScript
import { ITagGetInfoParams, ITagGetSimilarParams, ITagGetTopAlbumsParams, ITagGetTopArtistsParams, ITagGetTopTracksParams, ITagGetWeeklyChartListParams } from "./params.interface";
import { IImage } from "../../common/common.interface";
export interface ITagMethod {
getInfo(params: ITagGetInfoParams): Promise<ITagGetInfo>;
getSimilar(params: ITagGetSimilarParams): Promise<ITagGetSimilar>;
getTopAlbums(params: ITagGetTopAlbumsParams): Promise<ITagGetTopAlbums>;
getTopArtists(params: ITagGetTopArtistsParams): Promise<ITagGetTopArtists>;
getTopTags(): Promise<ITagGetTopTags>;
getTopTracks(params: ITagGetTopTracksParams): Promise<ITagGetTopTracks>;
getWeeklyChartList(params: ITagGetWeeklyChartListParams): Promise<ITagGetWeeklyChartList>;
}
export interface ITagGetInfo {
tag: {
name: string;
total: number;
reach: number;
wiki: {
summary: string;
content: string;
};
};
}
export interface ITagGetSimilar {
similartags: {
tag: {
name: string;
url: string;
streamble: string;
}[];
"@attr": {
tag: string;
};
};
}
export interface ITagGetTopAlbums {
albums: {
album: {
name: string;
mbid: string;
url: string;
artist: {
name: string;
mbid: string;
url: string;
};
image: IImage[];
"@attr": {
rank: string;
};
}[];
"@attr": {
tag: string;
page: string;
perPage: string;
totalPages: string;
total: string;
};
};
}
export interface ITagGetTopArtists {
topartists: {
artist: {
name: string;
mbid: string;
url: string;
streamable: string;
image: IImage[];
"@attr": {
rank: string;
};
}[];
"@attr": {
tag: string;
page: string;
perPage: string;
totalPages: string;
total: string;
};
};
}
export interface ITagGetTopTags {
toptags: {
"@attr": {
offset: number;
num_res: number;
total: number;
};
tag: {
name: string;
count: number;
reach: number;
}[];
};
}
export interface ITagGetTopTracks {
tracks: {
track: {
name: string;
duration: string;
mbid: string;
url: string;
streamable: {
"#text": string;
fulltrack: string;
};
artist: {
name: string;
mbid: string;
url: string;
};
image: IImage[];
"@attr": {
rank: string;
};
}[];
"@attr": {
tag: string;
page: string;
perPage: string;
totalPages: string;
total: string;
};
};
}
export interface ITagGetWeeklyChartList {
weeklychartlist: {
chart: {
"#text": string;
from: string;
to: string;
}[];
"@attr": {
tag: string;
};
};
}