From 91989a4f96d302b5bdd42d5d74b2cf50669da151 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Wed, 22 Sep 2021 19:47:23 +0300 Subject: [PATCH] Create tv.cctv.com.config.js --- sites/tv.cctv.com.config.js | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 sites/tv.cctv.com.config.js 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 || [] +}