Files
epg/sites/tvguide.com/tvguide.com.config.js
2022-10-04 16:26:51 +03:00

45 lines
1.1 KiB
JavaScript

const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const timezone = require('dayjs/plugin/timezone')
dayjs.extend(utc)
dayjs.extend(timezone)
module.exports = {
site: 'tvguide.com',
url: function ({ date, channel }) {
const parts = channel.site_id.split('#')
const start = date.startOf('d')
const duration = date.endOf('d').diff(start, 'm')
const url = `https://cmg-prod.apigee.net/v1/xapi/tvschedules/tvguide/${
parts[0]
}/web?start=${start.unix()}&duration=${duration}&channelSourceIds=${parts[1]}`
return url
},
parser: function ({ content }) {
const programs = []
const items = parseItems(content)
items.forEach(item => {
programs.push({
title: item.title,
start: parseTime(item.startTime),
stop: parseTime(item.endTime)
})
})
return programs
}
}
function parseTime(timestamp) {
return dayjs.unix(timestamp)
}
function parseItems(content) {
const data = JSON.parse(content)
if (!Array.isArray(data.data.items) || !data.data.items.length) return []
return data.data.items[0].programSchedules
}