From e3e0ef3b9b75014822e9c86149cad13a06b35ec2 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Fri, 14 Jan 2022 16:44:06 +0300 Subject: [PATCH] Update update-api.js --- scripts/commands/update-api.js | 77 +++---------------------------- tests/commands/update-api.test.js | 11 ----- 2 files changed, 6 insertions(+), 82 deletions(-) diff --git a/scripts/commands/update-api.js b/scripts/commands/update-api.js index b20a5b9d..7772c361 100644 --- a/scripts/commands/update-api.js +++ b/scripts/commands/update-api.js @@ -1,25 +1,21 @@ const { db, logger, file, xml } = require('../core') const _ = require('lodash') -let channels = [] -let programs = [] -let sources = {} - const DB_DIR = process.env.DB_DIR || 'scripts/database' const API_DIR = process.env.API_DIR || '.gh-pages/api' async function main() { - await setUp() - await generateChannelsJson() - await generateProgramsJson() } main() -async function setUp() { - channels = await loadChannels() - programs = await loadPrograms() +async function generateChannelsJson() { + logger.info('Generating channels.json...') + + const channels = await loadChannels() + + await file.create(`${API_DIR}/channels.json`, JSON.stringify(channels)) } async function loadChannels() { @@ -44,64 +40,3 @@ async function loadChannels() { return Object.values(output) } - -async function loadPrograms() { - let items = await db.programs.find({}) - - items = _.sortBy(items, ['channel', 'start']) - items = _.groupBy(items, 'channel') - - for (let channel in items) { - let channelPrograms = items[channel] - channelPrograms = Object.values(_.groupBy(channelPrograms, i => i.site))[0] - let slots = _.groupBy(channelPrograms, i => `${i.start}_${i.stop}`) - - for (let slotId in slots) { - let program = { - channel, - title: [], - description: [], - categories: [], - image: null, - start: null, - stop: null - } - - slots[slotId].forEach(item => { - if (item.title) program.title.push({ lang: item.lang, value: item.title }) - if (item.description) - program.description.push({ - lang: item.lang, - value: item.description - }) - if (item.category) program.categories.push({ lang: item.lang, value: item.category }) - program.image = program.image || item.icon - program.start = item.start - program.stop = item.stop - sources[channel] = item.site - }) - - program.title = _.uniqBy(program.title, 'lang') - program.description = _.uniqBy(program.description, 'lang') - program.categories = _.uniqBy(program.categories, 'lang') - - slots[slotId] = program - } - - items[channel] = Object.values(slots) - } - - return items -} - -async function generateChannelsJson() { - logger.info('Generating channels.json...') - - await file.create(`${API_DIR}/channels.json`, JSON.stringify(channels)) -} - -async function generateProgramsJson() { - logger.info('Generating programs.json...') - - await file.create(`${API_DIR}/programs.json`, JSON.stringify(programs)) -} diff --git a/tests/commands/update-api.test.js b/tests/commands/update-api.test.js index 22bcec7b..f0fe65d4 100644 --- a/tests/commands/update-api.test.js +++ b/tests/commands/update-api.test.js @@ -10,10 +10,6 @@ beforeEach(() => { 'tests/__data__/input/database/channels.db', 'tests/__data__/temp/database/channels.db' ) - fs.copyFileSync( - 'tests/__data__/input/database/programs.db', - 'tests/__data__/temp/database/programs.db' - ) execSync( 'DB_DIR=tests/__data__/temp/database API_DIR=tests/__data__/output/api node scripts/commands/update-api.js', @@ -32,13 +28,6 @@ it('can generate channels.json', () => { expect(output).toBe(expected) }) -it('can generate programs.json', () => { - const output = content('tests/__data__/output/api/programs.json') - const expected = content('tests/__data__/expected/api/programs.json') - - expect(output).toBe(expected) -}) - function content(filepath) { const data = fs.readFileSync(path.resolve(filepath), { encoding: 'utf8'