From 8fc1b2aa0bfd2b0fd0aa1f921b9c71daf7b409eb Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Fri, 12 Nov 2021 15:13:46 +0300 Subject: [PATCH] Create siba.com.co.config.js --- sites/siba.com.co/siba.com.co.config.js | 60 +++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 sites/siba.com.co/siba.com.co.config.js diff --git a/sites/siba.com.co/siba.com.co.config.js b/sites/siba.com.co/siba.com.co.config.js new file mode 100644 index 00000000..30682689 --- /dev/null +++ b/sites/siba.com.co/siba.com.co.config.js @@ -0,0 +1,60 @@ +const dayjs = require('dayjs') + +module.exports = { + site: 'siba.com.co', + url: 'http://devportal.siba.com.co/index.php?action=grilla', + request: { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + }, + data({ channel, date }) { + const params = new URLSearchParams() + params.append('servicio', '10') + params.append('ini', date.unix()) + params.append('end', date.add(1, 'd').unix()) + params.append('chn', channel.site_id) + + return params + } + }, + logo({ content, channel }) { + const data = parseContent(content, channel) + + return data && data.logo ? `http://cdn-std-1.sibasa.netdna-cdn.com/co/${data.logo}` : null + }, + parser: function ({ content, channel }) { + let programs = [] + const items = parseItems(content, channel) + items.forEach(item => { + programs.push({ + title: item.nom, + start: parseStart(item).toJSON(), + stop: parseStop(item).toJSON() + }) + }) + + return programs + } +} + +function parseStart(item) { + return dayjs.unix(item.ini) +} + +function parseStop(item) { + return dayjs.unix(item.fin) +} + +function parseContent(content, channel) { + const data = JSON.parse(content) + if (!data || !Array.isArray(data.list)) return null + + return data.list.find(i => i.id === channel.site_id) +} + +function parseItems(content, channel) { + const data = parseContent(content, channel) + + return data ? data.prog : [] +}