const markdownInclude = require('markdown-include') const path = require('path') const fs = require('fs') const countries = require('./countries.json') const parser = require('./parser') const file = require('./file') async function main() { console.log('Starting...') file .list('sites/*.channels.xml') .then(files => { let data = [] files.forEach(filename => { const channelsFile = file.read(filename) const parsed = parser.parseChannels(channelsFile) parsed.groups.forEach(group => { const country = countries.find(c => c.code === group.country.toLowerCase()) data.push({ countryFlag: country.flag, countryName: country.name, guideUrl: `https://iptv-org.github.io/epg/guides/${country.code}/${parsed.site}.epg.xml`, channelCount: group.channels.length }) }) }) data = data.sort((a, b) => { var nameA = a.countryName.toLowerCase() var nameB = b.countryName.toLowerCase() if (nameA < nameB) return -1 if (nameA > nameB) return 1 return b.channelCount - a.channelCount }) const table = generateTable(data, ['Country', 'Channels', 'EPG']) file.write('./.readme/_table.md', table) generateReadme() }) .finally(() => { console.log('Finish') }) } function generateTable(data, header) { let output = '
${column} | ` } output += '${item.countryFlag} ${item.countryName} | ` : '' output += `\t\t
---|---|
${item.channelCount} | ${item.guideUrl} |