const markdownInclude = require('markdown-include') const path = require('path') const fs = require('fs') const countries = require('./countries.json') const file = require('./file.js') async function main() { console.log('Starting...') file .list(['ad'], []) .then(files => { files = files.map(str => str.match(/channels\/(.*).xml/i)[1]) generateTable(files) generateReadme() }) .finally(() => { console.log('Finish') }) } function generateTable(files) { console.log('Generating countries table...') const output = [] for (const country of countries) { if (files.includes(country.code)) { output.push({ country: `${country.flag} ${country.name}`, guide: `https://iptv-org.github.io/epg/guides/${country.code}.epg.xml` }) } } const table = generateHtmlTable(output, { columns: [ { name: 'Country', align: 'left', nowrap: true }, { name: 'EPG', align: 'left', nowrap: true } ] }) fs.writeFileSync(path.resolve('./.readme/_countries.md'), table) } function generateHtmlTable(data, options) { let output = '\n' output += '\t\n\t\t' for (let column of options.columns) { output += `` } output += '\n\t\n' output += '\t\n' for (let item of data) { output += '\t\t' let i = 0 for (let prop in item) { const column = options.columns[i] let nowrap = column.nowrap let align = column.align output += `` i++ } output += '\n' } output += '\t\n' output += '
${column.name}
${item[prop]}
' return output } function generateReadme() { console.log('Generating README.md...') markdownInclude.compileFiles(path.resolve('.readme/config.json')) } main()