mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-09 16:40:07 -04:00
Update cluster/load.js
Process will be terminated if programs not found
This commit is contained in:
parent
ef6d151596
commit
67ef5aa13e
2 changed files with 41 additions and 24 deletions
|
@ -35,8 +35,8 @@ async function main() {
|
|||
const total = items.length
|
||||
|
||||
logger.info('Loading...')
|
||||
const results = {}
|
||||
let i = 1
|
||||
let totalPrograms = 0
|
||||
let config = require(file.resolve(items[0].configPath))
|
||||
config = _.merge(config, {
|
||||
debug: options.debug,
|
||||
|
@ -48,30 +48,42 @@ async function main() {
|
|||
const grabber = new EPGGrabber(config)
|
||||
for (const item of items) {
|
||||
const channel = new Channel(item.channel)
|
||||
await grabber.grab(channel, item.date, async (data, err) => {
|
||||
logger.info(
|
||||
`[${i}/${total}] ${channel.site} (${channel.lang}) - ${channel.id} - ${dayjs
|
||||
.utc(data.date)
|
||||
.format('MMM D, YYYY')} (${data.programs.length} programs)`
|
||||
)
|
||||
|
||||
if (err) logger.error(err.message)
|
||||
await new Promise(resolve => {
|
||||
grabber.grab(channel, item.date, async (data, err) => {
|
||||
logger.info(
|
||||
`[${i}/${total}] ${channel.site} (${channel.lang}) - ${channel.id} - ${dayjs
|
||||
.utc(data.date)
|
||||
.format('MMM D, YYYY')} (${data.programs.length} programs)`
|
||||
)
|
||||
|
||||
const result = {
|
||||
_qid: item._id,
|
||||
programs: data.programs,
|
||||
error: err ? err.message : null
|
||||
}
|
||||
if (err) logger.error(err.message)
|
||||
|
||||
await file.append(CLUSTER_PATH, JSON.stringify(result) + '\n')
|
||||
const result = {
|
||||
_qid: item._id,
|
||||
programs: data.programs,
|
||||
error: err ? err.message : null
|
||||
}
|
||||
|
||||
if (i < total) i++
|
||||
await file.append(CLUSTER_PATH, JSON.stringify(result) + '\n')
|
||||
|
||||
totalPrograms += data.programs.length
|
||||
|
||||
if (i < total) i++
|
||||
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
db.queue.compact()
|
||||
|
||||
logger.info(`Done in ${timer.format('HH[h] mm[m] ss[s]')}`)
|
||||
|
||||
if (totalPrograms === 0) {
|
||||
logger.error('\nError: No programs found')
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
main()
|
||||
|
|
|
@ -5,17 +5,22 @@ const path = require('path')
|
|||
beforeEach(() => {
|
||||
fs.emptyDirSync('tests/__data__/output')
|
||||
fs.copyFileSync('tests/__data__/input/database/queue.db', 'tests/__data__/output/queue.db')
|
||||
|
||||
execSync(
|
||||
'DB_DIR=tests/__data__/output LOGS_DIR=tests/__data__/output/logs npm run cluster:load -- --cluster-id=1 --timeout=10000',
|
||||
{ encoding: 'utf8' }
|
||||
)
|
||||
})
|
||||
|
||||
it('can load cluster', () => {
|
||||
expect(content('tests/__data__/output/logs/cluster/load/cluster_1.log')).toEqual(
|
||||
content('tests/__data__/expected/logs/cluster/load/cluster_1.log')
|
||||
)
|
||||
it('can load cluster and will terminate process if programs not found', () => {
|
||||
try {
|
||||
execSync(
|
||||
'DB_DIR=tests/__data__/output LOGS_DIR=tests/__data__/output/logs npm run cluster:load -- --cluster-id=1 --timeout=10000',
|
||||
{ encoding: 'utf8' }
|
||||
)
|
||||
process.exit(1)
|
||||
} catch (err) {
|
||||
expect(err.status).toBe(1)
|
||||
expect(err.stdout.includes('Error: No programs found')).toBe(true)
|
||||
expect(content('tests/__data__/output/logs/cluster/load/cluster_1.log')).toEqual(
|
||||
content('tests/__data__/expected/logs/cluster/load/cluster_1.log')
|
||||
)
|
||||
}
|
||||
})
|
||||
|
||||
function content(filepath) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue