2025-01-01 12:27:22 +03:00
|
|
|
const dayjs = require('dayjs')
|
2023-10-15 14:08:23 +03:00
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
|
site: 'tvtv.us',
|
|
|
|
|
days: 2,
|
2025-01-27 04:50:14 +03:00
|
|
|
url({ date, channel }) {
|
2024-01-20 11:29:53 -06:00
|
|
|
return `https://www.tvtv.us/api/v1/lineup/USA-NY71652-X/grid/${date.toJSON()}/${date
|
2024-11-20 15:41:59 -06:00
|
|
|
.add(1, 'day')
|
2023-10-15 14:08:23 +03:00
|
|
|
.toJSON()}/${channel.site_id}`
|
|
|
|
|
},
|
2025-01-27 04:50:14 +03:00
|
|
|
parser({ content }) {
|
2023-10-15 14:08:23 +03:00
|
|
|
let programs = []
|
|
|
|
|
|
|
|
|
|
const items = parseItems(content)
|
|
|
|
|
items.forEach(item => {
|
2025-01-27 04:50:14 +03:00
|
|
|
const start = dayjs(item.startTime)
|
|
|
|
|
const stop = start.add(item.duration, 'minute')
|
|
|
|
|
|
2023-10-15 14:08:23 +03:00
|
|
|
programs.push({
|
|
|
|
|
title: item.title,
|
2025-01-27 04:50:14 +03:00
|
|
|
subtitle: item.subtitle || null,
|
2023-10-15 14:08:23 +03:00
|
|
|
start,
|
|
|
|
|
stop
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
return programs
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function parseItems(content) {
|
2025-01-27 04:50:14 +03:00
|
|
|
try {
|
|
|
|
|
const json = JSON.parse(content)
|
|
|
|
|
if (!json.length) return []
|
|
|
|
|
|
|
|
|
|
return json[0]
|
|
|
|
|
} catch {
|
|
|
|
|
return []
|
|
|
|
|
}
|
2023-10-15 14:08:23 +03:00
|
|
|
}
|