Create opto.sic.pt.config.js

This commit is contained in:
freearhey 2025-01-15 19:58:40 +03:00
parent cb1921d008
commit f2311ca484

View file

@ -0,0 +1,53 @@
const axios = require('axios')
const dayjs = require('dayjs')
module.exports = {
site: 'opto.sic.pt',
days: 2,
url({ date, channel }) {
const startDate = date.unix()
const endDate = date.add(1, 'd').unix()
return `https://opto.sic.pt/api/v1/content/epg?startDate=${startDate}&endDate=${endDate}&channels=${channel.site_id}`
},
parser({ content }) {
let programs = []
let items = parseItems(content)
items.forEach(item => {
programs.push({
title: item.title,
episode: item.episode_number || null,
season: item.season_number || null,
start: dayjs.unix(item.start_time),
stop: dayjs.unix(item.end_time)
})
})
return programs
},
async channels() {
const data = await axios
.get('https://opto.sic.pt/api/v1/content/channel')
.then(r => r.data)
.catch(console.error)
return data.map(channel => {
return {
lang: 'pt',
site_id: channel.id,
name: channel.name
}
})
}
}
function parseItems(content) {
try {
const data = JSON.parse(content)
if (!Array.isArray(data)) return []
return data
} catch {
return []
}
}