Installed iptv-playlist-parser

This commit is contained in:
freearhey 2019-10-07 02:45:06 +03:00
parent 3d6d0cee3b
commit d43e58bc26
3 changed files with 18 additions and 46 deletions

View File

@ -26,14 +26,7 @@ async function main() {
const unsortedPlaylist = util.parsePlaylist('channels/unsorted.m3u')
for(const item of unsortedPlaylist.items) {
unsorted[item.url] = util.createChannel({
id: item.inf['tvg-id'],
name: item.inf['tvg-name'],
logo: item.inf['tvg-logo'],
group: item.inf['group-title'],
url: item.url,
title: item.inf.title
})
unsorted[item.url] = util.createChannel(item)
}
for(let country of countries) {
@ -55,14 +48,7 @@ async function main() {
}
let channels = []
for(let item of playlist.items) {
let channel = util.createChannel({
id: item.inf['tvg-id'],
name: item.inf['tvg-name'],
logo: item.inf['tvg-logo'],
group: item.inf['group-title'],
url: item.url,
title: item.inf.title
})
let channel = util.createChannel(item)
if(util.checkCache(channel.url)) {
stats.duplicates++

View File

@ -40,20 +40,13 @@ function main() {
const playlist = util.parsePlaylist(country.url)
const c = {
name: country.inf.title,
name: country.name,
code: util.getBasename(country.url).toUpperCase()
}
for(let item of playlist.items) {
let channel = util.createChannel({
id: item.inf['tvg-id'],
name: item.inf['tvg-name'],
logo: item.inf['tvg-logo'],
group: item.inf['group-title'],
url: item.url,
title: item.inf.title
})
let channel = util.createChannel(item)
let group = channel.group

View File

@ -18,7 +18,10 @@ let cache = {}
class Playlist {
constructor(data) {
this.attrs = data.attrs
this.attrs = {
'x-tvg-url': data.tvg.url
}
this.items = data.items
}
@ -26,7 +29,9 @@ class Playlist {
let parts = ['#EXTM3U']
for(let key in this.attrs) {
let value = this.attrs[key]
parts.push(`${key}="${value}"`)
if(value) {
parts.push(`${key}="${value}"`)
}
}
return `${parts.join(' ')}\n`
@ -35,12 +40,12 @@ class Playlist {
class Channel {
constructor(data) {
this.id = data.id || ''
this.name = data.name || ''
this.logo = data.logo || ''
this.group = this._getGroup(data.group)
this.id = data.tvg.id
this.name = data.tvg.name
this.logo = data.tvg.logo
this.group = this._getGroup(data.group.title)
this.url = data.url
this.title = data.title
this.title = data.name
}
_getGroup(groupTitle) {
@ -68,23 +73,11 @@ function parsePlaylist(filename) {
const content = readFile(filename)
const result = parser.parse(content)
console.log(result)
return new Playlist({
attrs: results.attrs,
items: results.segments
})
return new Playlist(result)
}
function createChannel(data) {
return new Channel({
id: data.id,
name: data.name,
logo: data.logo,
group: data.group,
url: data.url,
title: data.title
})
return new Channel(data)
}
async function loadEPG(url) {