diff --git a/sites/programetv.ro/programetv.ro.config.js b/sites/programetv.ro/programetv.ro.config.js index 0b5f8a4e..b6df7e74 100644 --- a/sites/programetv.ro/programetv.ro.config.js +++ b/sites/programetv.ro/programetv.ro.config.js @@ -1,4 +1,7 @@ const dayjs = require('dayjs') +const utc = require('dayjs/plugin/utc') + +dayjs.extend(utc) module.exports = { site: 'programetv.ro', @@ -16,21 +19,26 @@ module.exports = { return `https://www.programetv.ro/post/${channel.site_id}/${daysOfWeek[day]}/` }, - parser: function ({ content }) { + parser: function ({ content, channel }) { let programs = [] const data = parseContent(content) if (!data || !data.shows) return programs const items = data.shows items.forEach(item => { - let title = item.title - if (item.season) title += ` Sez.${item.season}` - if (item.episode) title += ` Ep.${item.episode}` programs.push({ - title, - description: item.desc, + title: item.title, + sub_title: item.titleOriginal, + description: item.desc || item.obs, category: item.categories, - start: parseStart(item).toString(), - stop: parseStop(item).toString(), + season: item.season || null, + episode: item.episode || null, + start: parseStart(item), + stop: parseStop(item), + url: item.url || null, + date: item.date, + rating: parseRating(item), + directors: parseDirector(item), + actors: parseActor(item), icon: item.icon }) }) @@ -40,11 +48,11 @@ module.exports = { } function parseStart(item) { - return dayjs(item.start).utc() + return dayjs(item.start).toJSON() } function parseStop(item) { - return dayjs(item.stop).utc() + return dayjs(item.stop).toJSON() } function parseContent(content) { @@ -52,3 +60,21 @@ function parseContent(content) { return data ? JSON.parse(data) : {} } + + +function parseDirector(item) { + return item.credits && item.credits.director ? item.credits.director : null +} + +function parseActor(item) { + return item.credits && item.credits.actor ? item.credits.actor : null +} + +function parseRating(item) { + return item.rating + ? { + system: 'CNC', + value: item.rating.toUpperCase() + } + : null + } diff --git a/sites/programetv.ro/programetv.ro.test.js b/sites/programetv.ro/programetv.ro.test.js index fcac56de..25eac803 100644 --- a/sites/programetv.ro/programetv.ro.test.js +++ b/sites/programetv.ro/programetv.ro.test.js @@ -35,8 +35,8 @@ it('can parse response', () => { const result = parser({ date, channel, content }) expect(result).toMatchObject([ { - start: 'Sun, 07 Nov 2021 05:00:00 GMT', - stop: 'Sun, 07 Nov 2021 07:59:59 GMT', + start: '2021-11-07T05:00:00.000Z', + stop: '2021-11-07T07:59:59.000Z', title: 'Ştirile Pro Tv', description: `În fiecare zi, cele mai importante evenimente, transmisiuni LIVE, analize, anchete şi reportaje sunt la Ştirile ProTV.`, category: ['Ştiri'],