Add Freeview description

This commit is contained in:
CasperMcFadden95
2025-10-31 11:00:28 +00:00
committed by GitHub
parent 2f44e5013e
commit aef7f8ea7a
2 changed files with 33 additions and 8 deletions
+18 -3
View File
@@ -14,21 +14,24 @@ module.exports = {
return `https://www.freeview.co.uk/api/tv-guide?nid=${networkId}&start=${startTimestamp}`
},
parser({ content, channel }) {
async parser({ content, channel }) {
let programs = []
let items = parseItems(content, channel)
items.forEach(item => {
for (const item of items) {
const start = parseStart(item)
const duration = parseDuration(item.duration)
const stop = start.add(duration, 'ms')
const details = await loadProgramDetails(item)
const synopsis = details?.synopsis
programs.push({
title: item.main_title,
subtitle: item.secondary_title,
description: synopsis?.long || synopsis?.medium || synopsis?.short || null,
image: parseImage(item),
start,
stop
})
})
}
return programs
},
@@ -71,3 +74,15 @@ function parseItems(content, channel) {
return []
}
}
async function loadProgramDetails(item) {
const url = `https://www.freeview.co.uk/api/program?pid=${item.program_id}&start_time=${item.start_time}&duration=${item.duration}`
const data = await axios
.get(url)
.then(r => {
const programs = r?.data?.data?.programs
return Array.isArray(programs) && programs.length > 0 ? programs[0] : {}
})
.catch(console.log)
return data || {}
}