mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-10 00:50:09 -04:00
Optimized parseItems to only process requested date, improved config to accept context as per spec, fixed test parameter.
This commit is contained in:
parent
5e32930c75
commit
307da2bb7c
2 changed files with 28 additions and 21 deletions
|
@ -35,8 +35,7 @@ module.exports = {
|
||||||
|
|
||||||
parser: function (context) {
|
parser: function (context) {
|
||||||
const programs = []
|
const programs = []
|
||||||
|
const items = parseItems(context)
|
||||||
const items = parseItems(context.content)
|
|
||||||
|
|
||||||
items.forEach(function(item, i) {
|
items.forEach(function(item, i) {
|
||||||
programs.push({
|
programs.push({
|
||||||
|
@ -51,23 +50,26 @@ module.exports = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseItems(content) {
|
function parseItems(context) {
|
||||||
const $ = cheerio.load(content)
|
const $ = cheerio.load(context.content)
|
||||||
const schDayMonths = $('.date-slider .slide').toArray()
|
const schDayMonths = $('.date-slider .month').toArray()
|
||||||
const schPrograms = $('.desc-slider .list-slider').toArray()
|
const schPrograms = $('.desc-slider .list-slider').toArray()
|
||||||
let items = [];
|
const monthDate = dayjs(context.date).format('MMM D')
|
||||||
|
const items = [];
|
||||||
|
|
||||||
schDayMonths.forEach(function(schDayMonth, i) {
|
schDayMonths.forEach(function(schDayMonth, i) {
|
||||||
let schDayPrograms = $(schPrograms[i]).find('.accordion').toArray()
|
if (monthDate == $(schDayMonth).text()) {
|
||||||
//let schDayPrograms = $('.accordion').toArray()
|
let schDayPrograms = $(schPrograms[i]).find('.accordion').toArray()
|
||||||
schDayPrograms.forEach(function(program, i) {
|
schDayPrograms.forEach(function(program, i) {
|
||||||
let itemDay = {
|
let itemDay = {
|
||||||
progStart: parseStart(schDayMonth, program),
|
progStart: parseStart(schDayMonth, program),
|
||||||
progStop: parseStop(schDayMonth, program, schDayPrograms[i+1]),
|
progStop: parseStop(schDayMonth, program, schDayPrograms[i+1]),
|
||||||
progTitle: parseTitle(program),
|
progTitle: parseTitle(program),
|
||||||
progDesc: parseDescription(program)
|
progDesc: parseDescription(program)
|
||||||
};
|
};
|
||||||
items.push(itemDay)
|
items.push(itemDay)
|
||||||
})
|
})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
return items
|
return items
|
||||||
|
@ -82,14 +84,14 @@ function parseDescription(item) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseStart(schDayMonth, item) {
|
function parseStart(schDayMonth, item) {
|
||||||
let monthDate = cheerio.load(schDayMonth)('.slide .month').text().split(' ')
|
let monthDate = cheerio.load(schDayMonth).text().split(' ')
|
||||||
let startTime = cheerio.load(item)('.pkl').text()
|
let startTime = cheerio.load(item)('.pkl').text()
|
||||||
let progStart = dayjs.tz(currentYear + ' ' + monthDate[0] + ' ' + monthDate[1] + ' ' + startTime, 'YYYY MMM DD HH:mm', 'Asia/Jakarta')
|
let progStart = dayjs.tz(currentYear + ' ' + monthDate[0] + ' ' + monthDate[1] + ' ' + startTime, 'YYYY MMM DD HH:mm', 'Asia/Jakarta')
|
||||||
return progStart
|
return progStart
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseStop(schDayMonth, itemCurrent, itemNext) {
|
function parseStop(schDayMonth, itemCurrent, itemNext) {
|
||||||
let monthDate = cheerio.load(schDayMonth)('.slide .month').text().split(' ')
|
let monthDate = cheerio.load(schDayMonth).text().split(' ')
|
||||||
|
|
||||||
if (itemNext) {
|
if (itemNext) {
|
||||||
let stopTime = cheerio.load(itemNext)('.pkl').text()
|
let stopTime = cheerio.load(itemNext)('.pkl').text()
|
||||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue