Create parser.js

This commit is contained in:
Aleksandr Statciuk 2021-10-12 00:34:46 +03:00
parent a3133a2b26
commit 3d27fd729d

30
scripts/parser.js Normal file
View file

@ -0,0 +1,30 @@
const convert = require('xml-js')
const parser = {}
parser.parseChannels = function (xml) {
const result = convert.xml2js(xml)
const siteTag = result.elements.find(el => el.name === 'site')
const channelsTags = siteTag.elements.filter(el => el.name === 'channels')
let output = []
channelsTags.forEach(channelsTag => {
const channels = channelsTag.elements
.filter(el => el.name === 'channel')
.map(el => {
const channel = el.attributes
if (!el.elements) throw new Error(`Channel '${channel.xmltv_id}' has no valid name`)
channel.name = el.elements.find(el => el.type === 'text').text
channel.country = channelsTag.attributes.country
channel.site = siteTag.attributes.site
return channel
})
output = output.concat(channels)
})
return output
}
module.exports = parser