From 386c22d7732e82ad974ced9025e0f6d495bd6750 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Wed, 17 Nov 2021 16:23:26 +0300 Subject: [PATCH] Create tvarenasport.hr.config.js --- .../tvarenasport.hr/tvarenasport.hr.config.js | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 sites/tvarenasport.hr/tvarenasport.hr.config.js diff --git a/sites/tvarenasport.hr/tvarenasport.hr.config.js b/sites/tvarenasport.hr/tvarenasport.hr.config.js new file mode 100644 index 00000000..f70bf471 --- /dev/null +++ b/sites/tvarenasport.hr/tvarenasport.hr.config.js @@ -0,0 +1,49 @@ +const axios = require('axios') +const dayjs = require('dayjs') + +module.exports = { + site: 'tvarenasport.hr', + url: function ({ channel, date }) { + return `https://www.tvarenasport.hr/api/schedule?date=${date.format('DD-MM-YYYY')}` + }, + parser: function ({ content, channel }) { + let programs = [] + const items = parseItems(content, channel) + items.forEach(item => { + programs.push({ + title: item.title.trim(), + category: item.sport, + description: item.league.trim(), + start: dayjs(item.start), + stop: dayjs(item.end) + }) + }) + + return programs + }, + async channels({ country, lang }) { + const data = await axios + .get(`https://www.tvarenasport.hr/api/schedule`) + .then(r => r.data) + .catch(console.log) + + const channels = [] + for (let id in data.channels) { + const item = data.channels[id] + channels.push({ + lang: 'hr', + site_id: id, + name: item.name + }) + } + + return channels + } +} + +function parseItems(content, channel) { + const data = JSON.parse(content) + if (!data || !Array.isArray(data.items)) return [] + + return data.items.filter(i => i.group === channel.site_id) +}