diff --git a/scripts/format.js b/scripts/format.js index 87e896b31..ce6c8d1de 100644 --- a/scripts/format.js +++ b/scripts/format.js @@ -40,40 +40,6 @@ async function main() { log.finish() } -function loadCodes() { - return epg.codes - .load() - .then(codes => { - let output = {} - codes.forEach(item => { - output[item['tvg_id']] = item - }) - return output - }) - .catch(console.log) -} - -function loadChannelJson() { - return axios - .get('https://iptv-org.github.io/iptv/channels.json') - .then(r => r.data) - .then(channels => { - let output = {} - channels.forEach(channel => { - const item = output[channel.tvg.id] - if (!item) { - output[channel.tvg.id] = channel - } else { - item.logo = item.logo || channel.logo - item.languages = item.languages.length ? item.languages : channel.languages - item.category = item.category || channel.category - } - }) - return output - }) - .catch(console.log) -} - function savePlaylist(playlist) { if (file.read(playlist.url) !== playlist.toString()) { log.print(`File '${playlist.url}' has been updated\n`) @@ -87,10 +53,15 @@ async function updatePlaylist(playlist) { const total = playlist.channels.length log.print(`Processing '${playlist.url}'...\n`) + let channels = {} + let codes = {} + if (!config.offline) { + channels = await loadChannelJson() + codes = await loadCodes() + } + buffer = {} origins = {} - const channels = await loadChannelJson() - const codes = await loadCodes() for (const [i, channel] of playlist.channels.entries()) { const curr = i + 1 updateTvgName(channel) @@ -287,4 +258,38 @@ function parseNumber(str) { return parseInt(str) } +function loadCodes() { + return epg.codes + .load() + .then(codes => { + let output = {} + codes.forEach(item => { + output[item['tvg_id']] = item + }) + return output + }) + .catch(console.log) +} + +function loadChannelJson() { + return axios + .get('https://iptv-org.github.io/iptv/channels.json') + .then(r => r.data) + .then(channels => { + let output = {} + channels.forEach(channel => { + const item = output[channel.tvg.id] + if (!item) { + output[channel.tvg.id] = channel + } else { + item.logo = item.logo || channel.logo + item.languages = item.languages.length ? item.languages : channel.languages + item.category = item.category || channel.category + } + }) + return output + }) + .catch(console.log) +} + main()