Files
epg/sites/astro.com.my/astro.com.my.config.js
2022-08-29 10:39:33 +01:00

40 lines
1.0 KiB
JavaScript

const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
dayjs.extend(utc)
module.exports = {
site: 'astro.com.my',
url: function ({ channel }) {
return `https://contenthub-api.eco.astro.com.my/channel/${channel.site_id}.json`
},
parser: function ({ content }) {
const programs = []
const data = JSON.parse(content)
const schedules = data.response.schedule
for(let items of Object.values(schedules)){
items.forEach(item => {
const start = dayjs.utc(item.datetimeInUtc)
const duration = parseDuration(item.duration)
const stop = start.add(duration, 's')
programs.push({
title: item.title,
start: start,
stop: stop
})
})
}
return programs
}
}
function parseDuration(duration) {
const match = duration.match(/(\d{2}):(\d{2}):(\d{2})/)
const hours = parseInt(match[1])
const minutes = parseInt(match[2])
const seconds = parseInt(match[3])
return hours * 3600 + minutes * 60 + seconds
}