UNPKG

@ashiteam/ashi-smule

Version:

AES encription/decription library for my use

84 lines (83 loc) 5.06 kB
import { SmuleChanelData, PerformanceData, SmuleUserIdData, SmuleUserData, SmuleUserSongData } from './models/ashi-smule-interfaces'; import { SmuleFilter } from './models/ashi-smule-filter-interface'; export declare class ProxyData { host: string; port: number; country: string; constructor(host: string, port: number, country: string); } export interface IAshiSmulFetchData { getHtmlBody(url: string): Promise<any>; getJson(url: string): Promise<any>; addAvoidCurrentProxy(): void; } export declare class AshiSmulUniversalFetchData implements IAshiSmulFetchData { private ky; private getData; getHtmlBody(url: string): Promise<any>; getJson(url: string): Promise<any>; addAvoidCurrentProxy(): void; } export declare class AshiSmule { protected readonly smuleBaseUrl = "https://www.smule.com/"; protected readonly chanelUrlBase = "s/profile/performance/USER_NAME/sing"; protected readonly favUrlBase = "USER_NAME/favorites/json"; protected readonly offsetParam = "?offset="; protected readonly sizeParam = "&size="; protected httpData: IAshiSmulFetchData; constructor(httpData: IAshiSmulFetchData | null); protected log(data: any): void; protected getOffsetSizeParamUrlPart(offset: number, size?: number): string; protected fixUserNameInUrl(url: string, user: string): string; protected getUrl(urlPart: string, user: string, startAt: number, size?: number): string; protected getData(urlPart: string, user: string, startAt: number, retryCount?: number): Promise<SmuleChanelData | null>; protected getAllData(urlPart: string, user: string, expandCollabs: boolean, chunkFetched?: (dataChunk: SmuleChanelData) => boolean): Promise<PerformanceData[]>; protected isSoloForOthers(perf: PerformanceData): boolean | "" | null | undefined; protected getCollabsFetchUrl(key: string, startAt: number): string; protected getCollabsForPerf(performanceData: PerformanceData | null, attempt?: number): Promise<PerformanceData[]>; protected fixUser(user?: SmuleUserIdData): Promise<void>; protected fixFilter(filter: SmuleFilter): Promise<void>; protected isOnlyOneMatch(filter?: SmuleFilter): boolean; protected canUseSong(song: PerformanceData, filter?: SmuleFilter): boolean; protected filterList(songs?: PerformanceData[], filter?: SmuleFilter): PerformanceData[]; protected getDataFiltered(urlPart: string, user: string, filter: SmuleFilter, expandCollabs: boolean, chunkFetched?: () => boolean): Promise<PerformanceData[]>; protected getWebUrls(urlPart: string, user: string, startAt: number): Promise<{ url_list: string[]; next_offset?: number; }>; getUser(user: string, attempt?: number): Promise<SmuleUserData | null>; getUsers(users: string[]): Promise<Array<SmuleUserData | null>>; getUserId(user: string): Promise<number>; getUserIds(users: string[]): Promise<SmuleUserIdData[]>; getChanelData(user: string, startAt: number): Promise<SmuleChanelData | null>; getFavData(user: string, startAt: number): Promise<SmuleChanelData | null>; getAllChanelData(user: string, expandCollabs: boolean, chunkFetched?: (dataChunk: SmuleChanelData) => boolean): Promise<PerformanceData[]>; getAllFavData(user: string, expandCollabs: boolean, chunkFetched?: (dataChunk: SmuleChanelData) => boolean): Promise<PerformanceData[]>; getChanelWebUrls(user: string, startAt: number): Promise<{ url_list: string[]; next_offset?: number; }>; getFavWebUrls(user: string, startAt: number): Promise<{ url_list: string[]; next_offset?: number; }>; getChanelDataFiltered(user: string, filter: SmuleFilter, expandCollabs: boolean, chunkFetched?: () => boolean): Promise<PerformanceData[]>; getFavDataFiltered(user: string, filter: SmuleFilter, expandCollabs: boolean, chunkFetched?: () => boolean): Promise<PerformanceData[]>; private getPerformanceData; getSingerNames(performanceData: PerformanceData | null): string[]; getCollaborations(url: string): Promise<PerformanceData[]>; expandCollaborations(perfomances: PerformanceData[]): Promise<PerformanceData[]>; private mergeLists; logSongInfo(perf: PerformanceData): void; private updateSongs; loadUserSongData(songData: SmuleUserSongData, user?: string): Promise<void>; updateMediaUrl(perf: PerformanceData): Promise<void>; private getDownloadUrl; private sanitizeFileName; getMediaFilePath(user: string, perf: PerformanceData): string; getAudioFilePath(user: string, perf: PerformanceData): string | undefined; getVideoFilePath(user: string, perf: PerformanceData): string | undefined; protected addPerfs(toPerfs: PerformanceData[], fromPerfs: PerformanceData[], checkIfExist: boolean): void; getAllPerformances(data: SmuleUserSongData): PerformanceData[]; getLinksNeededPerfs(data: SmuleUserSongData, force?: boolean): PerformanceData[]; }