const parser = require('./parser') const utils = require('./utils') const blacklist = require('./blacklist.json') async function main() { const playlists = parseIndex() for (const playlist of playlists) { await loadPlaylist(playlist.url).then(removeBlacklisted).then(savePlaylist).then(done) } finish() } function parseIndex() { console.info(`Parsing 'index.m3u'...`) let playlists = parser.parseIndex() console.info(`Found ${playlists.length} playlist(s)\n`) return playlists } async function loadPlaylist(url) { console.info(`Processing '${url}'...`) return parser.parsePlaylist(url) } async function removeBlacklisted(playlist) { console.info(` Looking for blacklisted channels...`) playlist.channels = playlist.channels.filter(channel => { return !blacklist.find(i => { const channelName = channel.name.toLowerCase() return ( (i.name.toLowerCase() === channelName || i.aliases.map(i => i.toLowerCase()).includes(channelName)) && i.country === channel.filename ) }) }) return playlist } async function savePlaylist(playlist) { console.info(` Saving playlist...`) const original = utils.readFile(playlist.url) const output = playlist.toString({ raw: true }) if (original === output) { console.info(`No changes have been made.`) return false } else { utils.createFile(playlist.url, output) console.info(`Playlist has been updated.`) } return true } async function done() { console.info(` `) } function finish() { console.info('Done.') } main()