diff --git a/sites/directv.com/directv.com.config.js b/sites/directv.com/directv.com.config.js index 4e17718c..b8b624b8 100644 --- a/sites/directv.com/directv.com.config.js +++ b/sites/directv.com/directv.com.config.js @@ -1,3 +1,4 @@ +const axios = require('axios') const dayjs = require('dayjs') const utc = require('dayjs/plugin/utc') @@ -13,26 +14,39 @@ module.exports = { logo({ channel }) { return channel.logo }, - parser({ content }) { + async parser({ content }) { const programs = [] const items = parseItems(content) - items.forEach(item => { - if (item.programID === '-1') return + for (let item of items) { + if (item.programID === '-1') continue + const detail = await loadProgramDetail(item.programID) const start = parseStart(item) const stop = start.add(item.duration, 'm') programs.push({ title: item.title, - description: item.description, + description: parseDescription(detail), category: item.subcategoryList, start, stop }) - }) + } return programs } } +function parseDescription(detail) { + return detail ? detail.description : null +} + +function loadProgramDetail(programID) { + return axios + .get(`https://www.directv.com/json/program/flip/${programID}`) + .then(r => r.data) + .then(d => d.programDetail) + .catch(console.err) +} + function parseStart(item) { return dayjs.utc(item.airTime) }