Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 1x 1x 1x 1x 1x 3x 1x 1x 1x 3x 1x 1x 1x | "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.M3uGenerator = void 0; const m3u_playlist_1 = require("./m3u-playlist"); class M3uGenerator { static generate(playlist) { const pls = playlist.title ? `${m3u_playlist_1.M3uDirectives.PLAYLIST}:${playlist.title}` : undefined; const medias = playlist.medias.map(item => this.getMedia(item)).join('\n'); return [m3u_playlist_1.M3uDirectives.EXTM3U, pls, medias].filter(item => item).join('\n'); } static getMedia(media) { const attributesString = this.getAttributes(media.attributes); const info = this.shouldAddInfoDirective(media, attributesString) ? `${m3u_playlist_1.M3uDirectives.EXTINF}:${media.duration} ${attributesString},${media.name}` : null; const group = media.group ? `${m3u_playlist_1.M3uDirectives.EXTGRP}:${media.group}` : null; return [info, group, media.location].filter(item => item).join('\n'); } static getAttributes(attributes) { return Object.keys(attributes).map(key => `${key}="${attributes[key]}"`).join(' '); } static shouldAddInfoDirective(media, attributesString) { return media.duration !== m3u_playlist_1.DEFAULT_MEDIA_DURATION || attributesString !== '' || media.name !== undefined; } } exports.M3uGenerator = M3uGenerator; |