UNPKG

@toplast/lastfm

Version:

A typed Last.fm API client for Node.js

137 lines (136 loc) 3.45 kB
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; }; }; }