diff --git a/sites/rtb.gov.bn/rtb.gov.bn.config.js b/sites/rtb.gov.bn/rtb.gov.bn.config.js index e80718b7..62a705e0 100644 --- a/sites/rtb.gov.bn/rtb.gov.bn.config.js +++ b/sites/rtb.gov.bn/rtb.gov.bn.config.js @@ -24,21 +24,23 @@ module.exports = { return channel.logo }, parser: async function ({ buffer, date }) { - let PM = false let programs = [] const items = await parseItems(buffer) items.forEach(item => { + const prev = programs[programs.length - 1] let start = parseStart(item, date) - if (start.hour() > 11) PM = true - if (start.hour() < 12 && PM) start = start.add(1, 'd') - const stop = start.add(1, 'h') - if (programs.length) { - programs[programs.length - 1].stop = start.toJSON() + if (prev) { + if (start.isBefore(prev.start)) { + start = start.add(1, 'd') + date = date.add(1, 'd') + } + prev.stop = start } + const stop = start.add(1, 'h') programs.push({ title: item.title, - start: start.toJSON(), - stop: stop.toJSON() + start, + stop }) }) @@ -47,9 +49,9 @@ module.exports = { } function parseStart(item, date) { - const time = `${date.format('YYYY-MM-DD')} ${item.time}` + const dateString = `${date.format('YYYY-MM-DD')} ${item.time}` - return dayjs.tz(time, 'YYYY-MM-DD HH:mm', 'Asia/Brunei') + return dayjs.tz(dateString, 'YYYY-MM-DD HH:mm', 'Asia/Brunei') } async function parseItems(buffer) { diff --git a/sites/rtb.gov.bn/rtb.gov.bn.test.js b/sites/rtb.gov.bn/rtb.gov.bn.test.js index 474df3d9..2f31c19b 100644 --- a/sites/rtb.gov.bn/rtb.gov.bn.test.js +++ b/sites/rtb.gov.bn/rtb.gov.bn.test.js @@ -37,6 +37,11 @@ it('can parse Sukmaindera 11 November 2021.pdf', done => { ) parser({ buffer, date }) .then(results => { + results = results.map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) expect(results.length).toBe(47) expect(results[0]).toMatchObject({ start: '2021-11-10T22:00:00.000Z', @@ -61,6 +66,11 @@ it('can parse Aneka 11 November 2021.pdf', done => { }) parser({ buffer, date }) .then(results => { + results = results.map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) expect(results.length).toBe(26) expect(results[4]).toMatchObject({ start: '2021-11-11T03:00:00.000Z',