From a728d3d5a5bfc5a08d1c4729fe96feae0479465c Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Mon, 7 Feb 2022 07:00:48 +0300 Subject: [PATCH] Update update-playlist.js --- scripts/commands/update-playlists.js | 9 +++++--- tests/commands/update-playlists.test.js | 30 +++++++++++-------------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/scripts/commands/update-playlists.js b/scripts/commands/update-playlists.js index 4ef3b7f00c..782f1b1f94 100644 --- a/scripts/commands/update-playlists.js +++ b/scripts/commands/update-playlists.js @@ -1,15 +1,18 @@ const _ = require('lodash') -const { generator, db, logger } = require('../core') +const { create: createPlaylist } = require('../core/playlist') +const { db, logger, file } = require('../core') async function main() { - let items = await db + await db.streams.load() + let items = await db.streams .find({}) .sort({ name: 1, 'status.level': 1, 'resolution.height': -1, url: 1 }) const files = _.groupBy(items, 'filepath') for (const filepath in files) { const items = files[filepath] - await generator.saveAsM3U(filepath, items) + const playlist = createPlaylist(items, { public: false }) + await file.create(filepath, playlist.toString()) } } diff --git a/tests/commands/update-playlists.test.js b/tests/commands/update-playlists.test.js index 402a64f6a8..d66d1b4076 100644 --- a/tests/commands/update-playlists.test.js +++ b/tests/commands/update-playlists.test.js @@ -1,33 +1,29 @@ const fs = require('fs-extra') const path = require('path') +const glob = require('glob') const { execSync } = require('child_process') beforeEach(() => { fs.emptyDirSync('tests/__data__/temp') - fs.copyFileSync('tests/__data__/input/streams.db', 'tests/__data__/temp/streams.db') + fs.copyFileSync('tests/__data__/input/database/streams.db', 'tests/__data__/temp/streams.db') - const stdout = execSync( - 'DB_FILEPATH=tests/__data__/temp/streams.db node scripts/commands/update-playlists.js', - { encoding: 'utf8' } - ) + const stdout = execSync('DB_DIR=tests/__data__/temp node scripts/commands/update-playlists.js', { + encoding: 'utf8' + }) }) -it('can update playlist', () => { - expect(content('tests/__data__/output/channels/ad.m3u')).toBe( - content('tests/__data__/expected/channels/ad.m3u') - ) +it('can update playlists', () => { + const files = glob + .sync('tests/__data__/expected/channels/*.m3u') + .map(f => f.replace('tests/__data__/expected/', '')) - expect(content('tests/__data__/output/channels/ru.m3u')).toBe( - content('tests/__data__/expected/channels/ru.m3u') - ) - - expect(content('tests/__data__/output/channels/uk.m3u')).toBe( - content('tests/__data__/expected/channels/uk.m3u') - ) + files.forEach(filepath => { + expect(content(`output/${filepath}`), filepath).toBe(content(`expected/${filepath}`)) + }) }) function content(filepath) { - return fs.readFileSync(path.resolve(filepath), { + return fs.readFileSync(`tests/__data__/${filepath}`, { encoding: 'utf8' }) }