Files
epg/scripts/commands/programs/save.js

35 lines
973 B
JavaScript
Raw Normal View History

2022-02-26 23:21:44 +03:00
const { db, logger, file, parser } = require('../../core')
2022-06-16 21:58:15 +03:00
const { Program } = require('epg-grabber')
2022-01-09 18:15:38 +03:00
const _ = require('lodash')
2022-01-09 20:14:41 +03:00
const LOGS_DIR = process.env.LOGS_DIR || 'scripts/logs'
2022-01-09 18:15:38 +03:00
async function main() {
2022-01-30 02:36:40 +03:00
await db.queue.load()
2022-01-15 18:21:51 +03:00
await db.programs.load()
2022-01-10 15:00:35 +03:00
await db.programs.reset()
2022-02-26 23:21:44 +03:00
const files = await file.list(`${LOGS_DIR}/cluster/load/cluster_*.log`)
2022-01-09 18:15:38 +03:00
for (const filepath of files) {
2022-01-15 16:59:03 +03:00
logger.info(`Parsing "${filepath}"...`)
2022-01-09 18:15:38 +03:00
const results = await parser.parseLogs(filepath)
2022-01-15 16:59:03 +03:00
for (const result of results) {
2022-01-31 00:02:13 +03:00
const queue = await db.queue.find({ _id: result._qid }).limit(1)
if (!queue.length) continue
const item = queue[0]
2022-06-16 21:58:15 +03:00
const programs = result.programs.map(p => {
p = new Program(p)
p._qid = result._qid
return p
2022-01-09 18:15:38 +03:00
})
2022-01-15 16:59:03 +03:00
await db.programs.insert(programs)
2022-01-21 19:42:27 +03:00
2022-01-30 23:46:20 +03:00
await db.queue.update({ _id: result._qid }, { $set: { error: result.error } })
2022-01-15 16:59:03 +03:00
}
2022-01-09 18:15:38 +03:00
}
2022-01-16 15:31:06 +03:00
2022-01-30 02:36:40 +03:00
await db.queue.compact()
2022-01-09 18:15:38 +03:00
}
main()