diff --git a/sites/tv.cctv.com.config.js b/sites/tv.cctv.com.config.js new file mode 100644 index 00000000..a7f5b328 --- /dev/null +++ b/sites/tv.cctv.com.config.js @@ -0,0 +1,47 @@ +const dayjs = require('dayjs') + +module.exports = { + lang: 'cn', + days: 3, + request: { + timeout: 10000 + }, + site: 'tv.cctv.com', + channels: 'tv.cctv.com.channels.xml', + output: '.gh-pages/guides/tv.cctv.com.guide.xml', + url({ channel, date }) { + return `https://api.cntv.cn/epg/getEpgInfoByChannelNew?serviceId=tvcctv&c=${ + channel.site_id + }&d=${date.format('YYYYMMDD')}` + }, + parser({ content, channel }) { + const programs = [] + const items = parseItems(content, channel) + items.forEach(item => { + const title = item.title + const start = parseStart(item) + const stop = parseStop(item) + programs.push({ + title, + start, + stop + }) + }) + + return programs + } +} + +function parseStop(item) { + return dayjs.unix(item.endTime) +} + +function parseStart(item) { + return dayjs.unix(item.startTime) +} + +function parseItems(content, channel) { + const data = JSON.parse(content) + + return data.data[channel.site_id].list || [] +}