mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-09 16:40:07 -04:00
Update update.js
This commit is contained in:
parent
81f1157027
commit
0c169d699d
1 changed files with 19 additions and 18 deletions
|
@ -35,7 +35,9 @@ async function main() {
|
||||||
db_programs = db_programs
|
db_programs = db_programs
|
||||||
.map(p => {
|
.map(p => {
|
||||||
if (p.titles.length) {
|
if (p.titles.length) {
|
||||||
|
p.score = calcScore(p)
|
||||||
p.lang = p.titles[0].lang
|
p.lang = p.titles[0].lang
|
||||||
|
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
|
@ -143,34 +145,33 @@ function convertLangCode(code, from, to) {
|
||||||
function getChannelPrograms(programs) {
|
function getChannelPrograms(programs) {
|
||||||
let sites = _.groupBy(programs, 'site')
|
let sites = _.groupBy(programs, 'site')
|
||||||
|
|
||||||
let priority = 0
|
let topScore = 0
|
||||||
let selected
|
let selected
|
||||||
for (let site in sites) {
|
for (let site in sites) {
|
||||||
let sitePriority = calcPriority(sites[site])
|
let sitePrograms = sites[site]
|
||||||
|
let siteScore = _.sumBy(sitePrograms, 'score')
|
||||||
|
|
||||||
if (sitePriority > priority) {
|
if (siteScore > topScore) {
|
||||||
selected = site
|
selected = site
|
||||||
priority = sitePriority
|
topScore = siteScore
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return sites[selected] || []
|
return sites[selected] || []
|
||||||
}
|
}
|
||||||
|
|
||||||
function calcPriority(programs) {
|
function calcScore(program) {
|
||||||
return programs.reduce((total, program) => {
|
let score = 0
|
||||||
let values = Object.values(program)
|
let values = Object.values(program)
|
||||||
|
for (let value of values) {
|
||||||
for (let value of values) {
|
if (Array.isArray(value) && value.length) {
|
||||||
if (Array.isArray(value) && value.length) {
|
score++
|
||||||
total++
|
} else if (typeof value === 'string' && value) {
|
||||||
} else if (typeof value === 'string' && value) {
|
score++
|
||||||
total++
|
} else if (value && typeof value === 'object' && Object.values(value).map(Boolean).length) {
|
||||||
} else if (value && typeof value === 'object' && Object.values(value).map(Boolean).length) {
|
score++
|
||||||
total++
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return total
|
return score
|
||||||
}, 0)
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue