mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-10 00:50:09 -04:00
Update update.js
This commit is contained in:
parent
43e4aedc2f
commit
500746eaa5
1 changed files with 25 additions and 25 deletions
|
@ -9,6 +9,7 @@ const CURR_DATE = process.env.CURR_DATE || new Date()
|
||||||
const logPath = `${LOGS_DIR}/guides/update.log`
|
const logPath = `${LOGS_DIR}/guides/update.log`
|
||||||
|
|
||||||
let api_channels = {}
|
let api_channels = {}
|
||||||
|
let db_queue = []
|
||||||
let db_programs = []
|
let db_programs = []
|
||||||
let guides = []
|
let guides = []
|
||||||
|
|
||||||
|
@ -22,6 +23,11 @@ async function main() {
|
||||||
api_channels[channel.id] = channel
|
api_channels[channel.id] = channel
|
||||||
})
|
})
|
||||||
|
|
||||||
|
logger.info('loading database/queue.db...')
|
||||||
|
await db.queue.load()
|
||||||
|
db_queue = await db.queue.find({})
|
||||||
|
logger.info(`found ${db_queue.length} channels`)
|
||||||
|
|
||||||
logger.info('loading database/programs.db...')
|
logger.info('loading database/programs.db...')
|
||||||
await db.programs.load()
|
await db.programs.load()
|
||||||
db_programs = await db.programs.find({})
|
db_programs = await db.programs.find({})
|
||||||
|
@ -38,14 +44,27 @@ async function main() {
|
||||||
main()
|
main()
|
||||||
|
|
||||||
async function generate() {
|
async function generate() {
|
||||||
|
let queue = _.groupBy(db_queue, i => (i.channel ? `${i.channel.lang}/${i.channel.site}` : `_`))
|
||||||
|
delete queue['_']
|
||||||
|
|
||||||
let programs = _.groupBy(db_programs, p =>
|
let programs = _.groupBy(db_programs, p =>
|
||||||
p.titles.length ? `${p.titles[0].lang}/${p.site}` : `_`
|
p.titles.length ? `${p.titles[0].lang}/${p.site}` : `_`
|
||||||
)
|
)
|
||||||
|
|
||||||
delete programs['_']
|
delete programs['_']
|
||||||
|
|
||||||
for (let filename in programs) {
|
for (let filename in queue) {
|
||||||
let { channels } = await save(filename, programs[filename])
|
if (!queue[filename]) continue
|
||||||
|
const channels = queue[filename].map(i => {
|
||||||
|
const channelData = api_channels[i.channel.id]
|
||||||
|
channelData.site = i.channel.site
|
||||||
|
channelData.site_id = i.channel.site_id
|
||||||
|
channelData.lang = i.channel.lang
|
||||||
|
|
||||||
|
return new Channel(channelData)
|
||||||
|
})
|
||||||
|
|
||||||
|
await save(filename, channels, programs[filename])
|
||||||
|
|
||||||
for (let channel of channels) {
|
for (let channel of channels) {
|
||||||
const configPath = `sites/${channel.site}/${channel.site}.config.js`
|
const configPath = `sites/${channel.site}/${channel.site}.config.js`
|
||||||
|
@ -62,24 +81,19 @@ async function generate() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function save(filepath, programs) {
|
async function save(filepath, channels, programs = []) {
|
||||||
let output = {
|
let output = {
|
||||||
channels: [],
|
channels,
|
||||||
programs: [],
|
programs: [],
|
||||||
date: CURR_DATE
|
date: CURR_DATE
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let programData of programs) {
|
for (let programData of programs) {
|
||||||
let channelData = api_channels[programData.channel]
|
let channel = channels.find(c => c.id === programData.channel)
|
||||||
if (!channelData) continue
|
if (!channel) continue
|
||||||
|
|
||||||
channelData.site = programData.site
|
|
||||||
channelData.lang = programData.titles[0].lang
|
|
||||||
|
|
||||||
let channel = new Channel(channelData)
|
|
||||||
let program = new Program(programData, channel)
|
let program = new Program(programData, channel)
|
||||||
|
|
||||||
output.channels.push(channel)
|
|
||||||
output.programs.push(program)
|
output.programs.push(program)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,17 +114,3 @@ async function save(filepath, programs) {
|
||||||
|
|
||||||
return output
|
return output
|
||||||
}
|
}
|
||||||
|
|
||||||
// function merge(p1, p2) {
|
|
||||||
// for (let prop in p1) {
|
|
||||||
// if (Array.isArray(p1[prop])) {
|
|
||||||
// p1[prop] = _.orderBy(
|
|
||||||
// _.uniqWith(p1[prop].concat(p2[prop]), _.isEqual),
|
|
||||||
// v => (v.lang === 'en' ? Infinity : 1),
|
|
||||||
// 'desc'
|
|
||||||
// )
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return p1
|
|
||||||
// }
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue