UNPKG

@evolvejs/evolava

Version:

a lavalink client for evolvejs

67 lines 2.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Utils = void 0; class Utils { static newTrack(data, user) { const trackData = {}; if (!data.info || !data.track) throw new Error(`newTrack() The "data" must be a LavaLink track.`); Object.assign(trackData, data.info); trackData.trackString = data.track; trackData.thumbnail = trackData.uri.includes("youtube") ? { default: `https://img.youtube.com/vi/${data.info.identifier}/default.jpg`, medium: `https://img.youtube.com/vi/${data.info.identifier}/mqdefault.jpg`, high: `https://img.youtube.com/vi/${data.info.identifier}/hqdefault.jpg`, standard: `https://img.youtube.com/vi/${data.info.identifier}/sddefault.jpg`, max: `https://img.youtube.com/vi/${data.info.identifier}/maxresdefault.jpg`, } : {}; trackData.user = user; return trackData; } static newPlaylist(data, user) { const { name, trackCount, tracks: trackArray } = data; if (!(name || trackCount || trackArray || Array.isArray(trackArray))) throw new Error(`newPlaylist() The "data" must be LavaLink playlist.`); const playlistData = { name: name, trackCount: trackCount, duration: trackArray .map((t) => t.info.length) .reduce((acc, val) => acc + val, 0), tracks: [], }; for (let i = 0; i < trackCount; i++) playlistData.tracks.push(this.newTrack(trackArray[i], user)); return playlistData; } static formatTime(ms) { const time = { d: 0, h: 0, m: 0, s: 0, }; time.s = Math.floor(ms / 1000); time.m = Math.floor(time.s / 60); time.s = time.s % 60; time.h = Math.floor(time.m / 60); time.m = time.m % 60; time.d = Math.floor(time.h / 24); time.h = time.h % 24; const res = []; for (const [k, v] of Object.entries(time)) { let first = false; if (k) continue; if (v < 1 && !first) continue; res.push(v < 10 ? `0${v}` : `${v}`); first = true; } return res.join(":"); } } exports.Utils = Utils; //# sourceMappingURL=Utils.js.map