pipebomb.js
Version:
Library for interacting with Pipe Bomb servers
36 lines (35 loc) • 1.36 kB
TypeScript
import Context from "../Context.js";
import Track from "../music/Track.js";
import User from "../User.js";
export default class Playlist {
private readonly context;
readonly rawCollectionID: string;
readonly collectionID: string;
private name;
readonly owner: User;
private trackList;
private isDeleted;
private updateCallbacks;
private suggestedTracks;
private suggestedTracksUpdated;
private checkTimer;
private lastChecked;
constructor(context: Context, collectionID: string, name: string, owner: User, trackList?: Track[]);
getTrackList(): Promise<Track[]>;
getSuggestedTracks(): Promise<Track[]>;
getName(): string;
addTracks(...tracks: Track[]): Promise<void>;
removeTracks(...tracks: Track[]): Promise<void>;
setName(name: string): Promise<void>;
deleteCollection(): Promise<void>;
copyFromOtherPlaylist(collection: Playlist): void;
static convertJsonToPlaylist(context: Context, json: any): Playlist;
private checkDeletion;
private pushToCallbacks;
isCollectionDeleted(): boolean;
registerUpdateCallback(callback: (collection: Playlist) => void): void;
unregisterUpdateCallback(callback: (collection: Playlist) => void): void;
private setLoop;
checkForUpdates(outOfDateThreshold: number): Promise<void>;
getThumbnailUrl(): string;
}