epg/sites/raiplay.it/raiplay.it.config.js
Michele Castellaneta ee400bd0ff
Create raiplay.it.config.js
Add support for url
2022-05-06 11:57:02 +02:00

62 lines
1.7 KiB
JavaScript

const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(utc)
dayjs.extend(customParseFormat)
module.exports = {
site: 'raiplay.it',
url: function ({ date, channel }) {
return `https://www.raiplay.it/palinsesto/app/${channel.site_id}/${date.format('DD-MM-YYYY')}.json`
},
parser: function ({ content, date }) {
const programs = []
const data = JSON.parse(content)
if (!data.events) return programs
data.events.forEach(item => {
if (item.name && item.hour && item.duration_in_minutes) {
const startDate = dayjs
.utc(item.hour, 'HH:mm')
.set('D', date.get('D'))
.set('M', date.get('M'))
.set('y', date.get('y'))
const start = startDate.toJSON()
const duration = parseInt(item.duration_in_minutes)
const stopDate = startDate.add(duration,'m')
const stop = stopDate.toJSON()
programs.push({
title: item.name || item.program.name,
description: item.description,
season: item.season || null,
episode: item.episode || null,
sub_title : item['episode_title'] || null,
url : parseURL(item),
start,
stop,
icon: parseIcon(item)
})
}
})
return programs
}
}
function parseIcon(item) {
return cover = item.image ? `https://www.raiplay.it${item.image}` : null
}
function parseURL(item) {
let url = null
if(item.weblink){
url = `https://www.raiplay.it${item.weblink}`
}
if(item.event_weblink){
url = `https://www.raiplay.it${item.event_weblink}`
}
return url
}