UNPKG

javascript-ampache

Version:
205 lines (204 loc) 9.42 kB
import { HashResponse, PlaylistResponse, PlaylistsResponse } from "./types"; import { SongsResponse } from "../songs/types"; import { Base, BinaryBoolean, ExtendedPagination, Pagination, Success, UID } from "../base"; export declare class Playlists extends Base { /** * This returns playlists based on the specified filter * @remarks MINIMUM_API_VERSION=380001 * @param [params.filter] Filter results to match this string * @param [params.exact] 0, 1 (if true filter is exact = rather than fuzzy LIKE) * @param [params.add] ISO 8601 Date Format (2020-09-16) Find objects with an 'add' date newer than the specified date * @param [params.update] ISO 8601 Date Format (2020-09-16) Find objects with an 'update' time newer than the specified date * @param [params.hide_search] 0, 1 (if true do not include searches/smartlists in the result) * @param [params.show_dupes] 0, 1 (if true ignore 'api_hide_dupe_searches' setting) * @param [params.include] 0, 1 (if true include the objects in the playlist) * @param [params.offset] * @param [params.limit] * @param [params.cond] * @param [params.sort] * @see {@link https://ampache.org/api/api-json-methods#playlists} */ playlists(params?: { filter?: string; exact?: BinaryBoolean; add?: Date; update?: Date; hide_search?: BinaryBoolean; show_dupes?: BinaryBoolean; include?: BinaryBoolean; } & ExtendedPagination): Promise<PlaylistsResponse>; /** * This returns smartlists based on the specified filter. NOTE: Filtered from Playlists() so pagination is invalid. * @remarks MINIMUM_API_VERSION=380001 * @param [params.filter] Filter results to match this string * @param [params.exact] 0, 1 (if true filter is exact = rather than fuzzy LIKE) * @param [params.add] ISO 8601 Date Format (2020-09-16) Find objects with an 'add' date newer than the specified date * @param [params.update] ISO 8601 Date Format (2020-09-16) Find objects with an 'update' time newer than the specified date * @param [params.show_dupes] 0, 1 (if true ignore 'api_hide_dupe_searches' setting) * @see {@link https://ampache.org/api/api-json-methods#playlists} */ smartlists(params?: { filter?: string; exact?: BinaryBoolean; add?: Date; update?: Date; show_dupes?: BinaryBoolean; }): Promise<PlaylistsResponse>; /** * This returns a single playlist * @remarks MINIMUM_API_VERSION=380001 * @param params.filter UID to find * @see {@link https://ampache.org/api/api-json-methods#playlist} */ playlist(params: { filter: UID; }): Promise<PlaylistResponse>; /** * This returns a user's playlists based on the specified filter * @remarks MINIMUM_API_VERSION=6.3.0 * @param [params.filter] Filter results to match this string * @param [params.exact] 0, 1 (if true filter is exact = rather than fuzzy LIKE) * @param [params.add] ISO 8601 Date Format (2020-09-16) Find objects with an 'add' date newer than the specified date * @param [params.update] ISO 8601 Date Format (2020-09-16) Find objects with an 'update' time newer than the specified date * @param [params.offset] * @param [params.limit] * @param [params.cond] * @param [params.sort] * @see {@link https://ampache.org/api/api-json-methods#user_playlists} */ userPlaylists(params?: { filter?: string; exact?: BinaryBoolean; add?: Date; update?: Date; } & ExtendedPagination): Promise<PlaylistsResponse>; /** * This returns a user's smartlists based on the specified filter * @remarks MINIMUM_API_VERSION=6.3.0 * @param [params.filter] Filter results to match this string * @param [params.exact] 0, 1 (if true filter is exact = rather than fuzzy LIKE) * @param [params.add] ISO 8601 Date Format (2020-09-16) Find objects with an 'add' date newer than the specified date * @param [params.update] ISO 8601 Date Format (2020-09-16) Find objects with an 'update' time newer than the specified date * @param [params.offset] * @param [params.limit] * @param [params.cond] * @param [params.sort] * @see {@link https://ampache.org/api/api-json-methods#user_smartlists} */ userSmartlists(params?: { filter?: string; exact?: BinaryBoolean; add?: Date; update?: Date; } & ExtendedPagination): Promise<PlaylistsResponse>; /** * This creates a new playlist and returns it * @remarks MINIMUM_API_VERSION=380001 * @param params.name Playlist name * @param [params.type] public, private (Playlist type) * @see {@link https://ampache.org/api/api-json-methods#playlist_create} */ playlistCreate(params: { name: string; type?: "public" | "private"; }): Promise<PlaylistResponse>; /** * This adds an item to a playlist * @remarks MINIMUM_API_VERSION=6.3.0 * @param params.filter UID of Playlist * @param params.id UID of the object to add to playlist * @param params.type 'song', 'album', 'artist', 'playlist' * @see {@link https://ampache.org/api/api-json-methods#playlist_add} */ playlistAdd(params: { filter: UID; id: UID; type: "song" | "album" | "artist" | "playlist"; }): Promise<Success>; /** * This modifies name and type of the playlist. * NOTE items and tracks must be sent together and be of equal length. * @remarks MINIMUM_API_VERSION=400001 * @param params.filter UID to find * @param [params.name] Playlist name * @param [params.type] public, private (Playlist type) * @param [params.owner] Change playlist owner to the user id (-1 = System playlist) * @param [params.items] comma-separated song_id's (replaces existing items with a new id) * @param [params.tracks] comma-separated playlisttrack numbers matched to 'items' in order * @see {@link https://ampache.org/api/api-json-methods#playlist_edit} */ playlistEdit(params: { filter: UID; name?: string; type?: "public" | "private"; owner?: string; items?: string; tracks?: string; }): Promise<Success>; /** * This deletes a playlist * @remarks MINIMUM_API_VERSION=380001 * @param params.filter UID of playlist to delete * @see {@link https://ampache.org/api/api-json-methods#playlist_delete} */ playlistDelete(params: { filter: UID; }): Promise<Success>; /** * This adds a song to a playlist * @remarks MINIMUM_API_VERSION=380001; CHANGED_IN_API_VERSION=400003 * @param params.filter UID of Playlist * @param params.song UID of song to add to playlist * @param [params.check] 0, 1 Whether to check and ignore duplicates (default = 0) * @see {@link https://ampache.org/api/api-json-methods#playlist_add_song} * @deprecated Being removed in 7.0.0. Use `playlist_add` instead. */ playlistAddSong(params: { filter: UID; song: UID; check?: BinaryBoolean; }): Promise<Success>; /** * This remove a song from a playlist * @remarks MINIMUM_API_VERSION=380001; CHANGED_IN_API_VERSION=400001 * @param params.filter UID of Playlist * @param [params.song] UID of song to remove from playlist * @param [params.track] Track number to remove from playlist * @see {@link https://ampache.org/api/api-json-methods#playlist_remove_song} */ playlistRemoveSong(params: { filter: UID; song?: UID; track?: number; }): Promise<Success>; /** * Get a list of song JSON, indexes or id's based on some simple search criteria * @remarks MINIMUM_API_VERSION=400001; CHANGED_IN_API_VERSION=400002; 'recent' will search for tracks played after 'Popular Threshold' days; 'forgotten' will search for tracks played before 'Popular Threshold' days; 'unplayed' added in 400002 for searching unplayed tracks * @param [params.mode] (default = 'random') * @param [params.filter] string LIKE matched to song title * @param [params.album] UID of album * @param [params.artist] UID of artist * @param [params.flag] 0, 1 (get flagged songs only. default = 0) * @param [params.format] song, index, id (default = 'song') * @param [params.offset] * @param [params.limit] * @see {@link https://ampache.org/api/api-json-methods#playlist_generate} */ playlistGenerate(params?: { mode?: "recent" | "forgotten" | "unplayed" | "random"; filter?: string; album?: number; artist?: number; flag?: BinaryBoolean; format?: "song" | "index" | "id"; } & Pagination): Promise<SongsResponse>; /** * This returns the md5 hash for the songs in a playlist * @remarks MINIMUM_API_VERSION=6.6.0 * @param params.filter string UID of Playlist * @see {@link https://ampache.org/api/api-json-methods#playlist_hash} */ playlistHash(params: { filter: UID; }): Promise<HashResponse>; }