Update update-readme.js

This commit is contained in:
Aleksandr Statciuk 2021-08-01 20:42:11 +03:00
parent e3941ae31c
commit 35a1e96ca2
1 changed files with 53 additions and 27 deletions

View File

@ -1,20 +1,25 @@
const utils = require('./utils') const utils = require('./helpers/utils')
const db = require('./db') const file = require('./helpers/file')
const parser = require('./parser') const log = require('./helpers/log')
const db = require('./helpers/db')
db.load() async function main() {
log.start()
function main() { await loadDatabase()
start()
generateCategoriesTable() generateCategoriesTable()
generateCountriesTable() generateCountriesTable()
generateLanguagesTable() generateLanguagesTable()
generateReadme() generateReadme()
finish() log.finish()
}
async function loadDatabase() {
log.print('Loading database...\n')
await db.load()
} }
function generateCategoriesTable() { function generateCategoriesTable() {
console.log(`Generating categories table...`) log.print('Generating categories table...\n')
const categories = [] const categories = []
for (const category of [...db.categories.all(), { name: 'Other', id: 'other' }]) { for (const category of [...db.categories.all(), { name: 'Other', id: 'other' }]) {
@ -25,7 +30,7 @@ function generateCategoriesTable() {
}) })
} }
const table = utils.generateTable(categories, { const table = generateTable(categories, {
columns: [ columns: [
{ name: 'Category', align: 'left' }, { name: 'Category', align: 'left' },
{ name: 'Channels', align: 'right' }, { name: 'Channels', align: 'right' },
@ -33,11 +38,11 @@ function generateCategoriesTable() {
] ]
}) })
utils.createFile('./.readme/_categories.md', table) file.create('./.readme/_categories.md', table)
} }
function generateCountriesTable() { function generateCountriesTable() {
console.log(`Generating countries table...`) log.print('Generating countries table...\n')
const countries = [] const countries = []
for (const country of [ for (const country of [
@ -53,7 +58,7 @@ function generateCountriesTable() {
}) })
} }
const table = utils.generateTable(countries, { const table = generateTable(countries, {
columns: [ columns: [
{ name: 'Country', align: 'left' }, { name: 'Country', align: 'left' },
{ name: 'Channels', align: 'right' }, { name: 'Channels', align: 'right' },
@ -61,11 +66,11 @@ function generateCountriesTable() {
] ]
}) })
utils.createFile('./.readme/_countries.md', table) file.create('./.readme/_countries.md', table)
} }
function generateLanguagesTable() { function generateLanguagesTable() {
console.log(`Generating languages table...`) log.print('Generating languages table...\n')
const languages = [] const languages = []
for (const language of [ for (const language of [
@ -79,7 +84,7 @@ function generateLanguagesTable() {
}) })
} }
const table = utils.generateTable(languages, { const table = generateTable(languages, {
columns: [ columns: [
{ name: 'Language', align: 'left' }, { name: 'Language', align: 'left' },
{ name: 'Channels', align: 'right' }, { name: 'Channels', align: 'right' },
@ -87,20 +92,41 @@ function generateLanguagesTable() {
] ]
}) })
utils.createFile('./.readme/_languages.md', table) file.create('./.readme/_languages.md', table)
}
function generateTable(data, options) {
let output = '<table>\n'
output += '\t<thead>\n\t\t<tr>'
for (let column of options.columns) {
output += `<th align="${column.align}">${column.name}</th>`
}
output += '</tr>\n\t</thead>\n'
output += '\t<tbody>\n'
for (let item of data) {
output += '\t\t<tr>'
let i = 0
for (let prop in item) {
const column = options.columns[i]
let nowrap = column.nowrap
let align = column.align
output += `<td align="${align}"${nowrap ? ' nowrap' : ''}>${item[prop]}</td>`
i++
}
output += '</tr>\n'
}
output += '\t</tbody>\n'
output += '</table>'
return output
} }
function generateReadme() { function generateReadme() {
console.log(`Generating README.md...`) log.print('Generating README.md...\n')
utils.compileMarkdown('../.readme/config.json') file.compileMarkdown('.readme/config.json')
}
function start() {
console.log(`Starting...`)
}
function finish() {
console.log(`Done.`)
} }
main() main()