From 8632cc2ae1f9dc68ad01951e1f9088897a1def6a Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Fri, 17 Jun 2022 18:44:18 +0300 Subject: [PATCH] Create tv.yettel.hu.config.js --- sites/tv.yettel.hu/tv.yettel.hu.config.js | 68 +++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 sites/tv.yettel.hu/tv.yettel.hu.config.js diff --git a/sites/tv.yettel.hu/tv.yettel.hu.config.js b/sites/tv.yettel.hu/tv.yettel.hu.config.js new file mode 100644 index 00000000..7d2447ec --- /dev/null +++ b/sites/tv.yettel.hu/tv.yettel.hu.config.js @@ -0,0 +1,68 @@ +const axios = require('axios') +const dayjs = require('dayjs') + +module.exports = { + site: 'tv.yettel.hu', + url: function ({ channel, date }) { + return `https://dev.mytvback.com/api/19/default/hu-HU/schedules?livechannelpids=${ + channel.site_id + }&includeImages=cover%3A100%3A144&filterAvailability=false&startTime=${date.unix()}&endTime=${date + .add(1, 'd') + .unix()}` + }, + parser: function ({ content }) { + let programs = [] + const items = parseItems(content) + items.forEach(item => { + programs.push({ + title: item.Title, + description: item.ShortDescription, + icon: parseIcon(item), + start: parseStart(item), + stop: parseStop(item) + }) + }) + + return programs + }, + async channels() { + const data = await axios + .get(`https://dev.mytvback.com/api/19/default/hu-HU/content/CHA_LIVE_MYTV2_HU/children`) + .then(r => r.data) + .catch(console.log) + + const channels = [] + for (let item of data.Content.List) { + channels.push({ + lang: 'hu', + site_id: item.Pid, + name: item.CallLetter + }) + } + + return channels + } +} + +function parseIcon(item) { + if (Array.isArray(item.Images.Cover) && item.Images.Cover.length) { + return item.Images.Cover[0].Url + } + + return null +} + +function parseStart(item) { + return dayjs.unix(item.Start) +} + +function parseStop(item) { + return dayjs.unix(item.End) +} + +function parseItems(content) { + const data = JSON.parse(content) + if (!data || !Array.isArray(data.Content)) return [] + + return data.Content +}