From 79612eb8464eb9710ba9e39ac97a7f31d33e3fc5 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Tue, 10 Jan 2023 12:41:38 +0300 Subject: [PATCH] Update update.js --- scripts/commands/readme/update.js | 52 +++++++++++++++++-------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/scripts/commands/readme/update.js b/scripts/commands/readme/update.js index 59388b60..fb9a8196 100644 --- a/scripts/commands/readme/update.js +++ b/scripts/commands/readme/update.js @@ -1,5 +1,6 @@ const { file, markdown, parser, logger, api, table } = require('../../core') const { program } = require('commander') +const langs = require('langs') const _ = require('lodash') const LOGS_DIR = process.env.LOGS_DIR || 'scripts/logs' @@ -22,7 +23,7 @@ async function main() { main() async function createTable(log) { - let files = _.uniqBy(log, i => i.site + i.channel).reduce((acc, curr) => { + let files = log.reduce((acc, curr) => { if (!acc[curr.filename]) { acc[curr.filename] = { site: curr.site, @@ -37,38 +38,43 @@ async function createTable(log) { return acc }, {}) - let data = [] + let groups = {} for (const filename in files) { const item = files[filename] + const lang = langs.where('1', item.lang) - data.push([ - item.site, - item.lang, + if (!lang) continue + + if (!groups[lang.name]) groups[lang.name] = { lang: lang.name, data: [] } + + groups[lang.name].data.push([ + `${item.site}`, item.channels, `https://iptv-org.github.io/epg/guides/${filename}.xml`, - `${filename}` + `${item.site}` ]) } - data = _.orderBy( - data, - [item => item[0], item => (item[1] === 'en' ? Infinity : item[2])], - ['asc', 'desc'] - ) - data = data.map(i => { - i.splice(1, 1) - return i - }) - data = Object.values(_.groupBy(data, item => item[0])) + groups = _.sortBy(Object.values(groups), 'lang') - const output = table.create(data, [ - 'Site', - 'Channels', - 'EPG', - 'Status                                                   ' - ]) + let guides = '' + for (let group of groups) { + let lang = group.lang + let data = group.data - await file.create('./.readme/_sites.md', output) + data = _.orderBy(data, [item => item[0], item => item[1]], ['asc', 'desc']) + data = Object.values(_.groupBy(data, item => item[0])) + + guides += `### ${lang}\r\n\r\n` + guides += table.create(data, [ + 'Site', + 'Channels', + 'EPG', + 'Status                                                   ' + ]) + guides += `\r\n\r\n` + } + await file.create('./.readme/_guides.md', guides) } async function updateReadme() {