mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-09 16:40:07 -04:00
Fixes channels:editor script
This commit is contained in:
parent
11856161c2
commit
6e2cc42bc6
5 changed files with 23 additions and 7 deletions
|
@ -17,7 +17,6 @@ const programOptions = program.opts()
|
||||||
const defaultCountry = programOptions.country.toLowerCase()
|
const defaultCountry = programOptions.country.toLowerCase()
|
||||||
const newLabel = ` [new]`
|
const newLabel = ` [new]`
|
||||||
|
|
||||||
let site: string
|
|
||||||
let options = new Collection()
|
let options = new Collection()
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
|
@ -119,7 +118,7 @@ function save() {
|
||||||
.filter((option: { channel: Channel; delete: boolean }) => !option.delete)
|
.filter((option: { channel: Channel; delete: boolean }) => !option.delete)
|
||||||
.map((option: { channel: Channel; delete: boolean }) => option.channel)
|
.map((option: { channel: Channel; delete: boolean }) => option.channel)
|
||||||
|
|
||||||
const xml = new XML(channels, site)
|
const xml = new XML(channels)
|
||||||
|
|
||||||
storage.saveSync(filepath, xml.toString())
|
storage.saveSync(filepath, xml.toString())
|
||||||
|
|
||||||
|
|
|
@ -50,6 +50,11 @@ async function main() {
|
||||||
if (isPromise(parsedChannels)) {
|
if (isPromise(parsedChannels)) {
|
||||||
parsedChannels = await parsedChannels
|
parsedChannels = await parsedChannels
|
||||||
}
|
}
|
||||||
|
parsedChannels = parsedChannels.map((channel: Channel) => {
|
||||||
|
channel.site = config.site
|
||||||
|
|
||||||
|
return channel
|
||||||
|
})
|
||||||
|
|
||||||
channels = channels
|
channels = channels
|
||||||
.mergeBy(
|
.mergeBy(
|
||||||
|
@ -62,7 +67,7 @@ async function main() {
|
||||||
(channel: Channel) => channel.site_id
|
(channel: Channel) => channel.site_id
|
||||||
])
|
])
|
||||||
|
|
||||||
const xml = new XML(channels, config.site)
|
const xml = new XML(channels)
|
||||||
|
|
||||||
await storage.save(outputFilepath, xml.toString())
|
await storage.save(outputFilepath, xml.toString())
|
||||||
|
|
||||||
|
|
|
@ -3,11 +3,9 @@ import { Channel } from 'epg-grabber'
|
||||||
|
|
||||||
export class XML {
|
export class XML {
|
||||||
items: Collection
|
items: Collection
|
||||||
site: string
|
|
||||||
|
|
||||||
constructor(items: Collection, site: string) {
|
constructor(items: Collection) {
|
||||||
this.items = items
|
this.items = items
|
||||||
this.site = site
|
|
||||||
}
|
}
|
||||||
|
|
||||||
toString() {
|
toString() {
|
||||||
|
@ -18,7 +16,7 @@ export class XML {
|
||||||
const xmltv_id = channel.xmltv_id || ''
|
const xmltv_id = channel.xmltv_id || ''
|
||||||
const lang = channel.lang || ''
|
const lang = channel.lang || ''
|
||||||
const site_id = channel.site_id || ''
|
const site_id = channel.site_id || ''
|
||||||
output += ` <channel site="${this.site}" lang="${lang}" xmltv_id="${escapeString(
|
output += ` <channel site="${channel.site}" lang="${lang}" xmltv_id="${escapeString(
|
||||||
xmltv_id
|
xmltv_id
|
||||||
)}" site_id="${site_id}"${logo}>${escapeString(channel.name)}</channel>\r\n`
|
)}" site_id="${site_id}"${logo}>${escapeString(channel.name)}</channel>\r\n`
|
||||||
})
|
})
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<channels>
|
||||||
|
<channel site="example.com" lang="" xmltv_id="" site_id="140">CNN International</channel>
|
||||||
|
</channels>
|
|
@ -1,6 +1,7 @@
|
||||||
import fs from 'fs-extra'
|
import fs from 'fs-extra'
|
||||||
import { execSync } from 'child_process'
|
import { execSync } from 'child_process'
|
||||||
import os from 'os'
|
import os from 'os'
|
||||||
|
import path from 'path'
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
fs.emptyDirSync('tests/__data__/output')
|
fs.emptyDirSync('tests/__data__/output')
|
||||||
|
@ -25,5 +26,14 @@ describe('channels:editor', () => {
|
||||||
expect(stdout).toContain('Overwrite')
|
expect(stdout).toContain('Overwrite')
|
||||||
expect(stdout).toContain('Skip')
|
expect(stdout).toContain('Skip')
|
||||||
expect(stdout).toContain("File 'tests/__data__/output/channels.xml' successfully saved")
|
expect(stdout).toContain("File 'tests/__data__/output/channels.xml' successfully saved")
|
||||||
|
expect(content('tests/__data__/output/channels.xml')).toEqual(
|
||||||
|
content('tests/__data__/expected/sites/channels-editor/channels-editor.channels.xml')
|
||||||
|
)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
function content(filepath: string) {
|
||||||
|
return fs.readFileSync(path.resolve(filepath), {
|
||||||
|
encoding: 'utf8'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue