From 38ce5bd0e194696ebd382e9df2eb7750dd05cfda Mon Sep 17 00:00:00 2001 From: RevGear <95308545+RevGear@users.noreply.github.com> Date: Thu, 22 Dec 2022 22:39:37 +0000 Subject: [PATCH] Initial config --- sites/skylink.cz/skylink.cz.config.js | 70 ++++++++++++++++++ sites/skylink.cz/skylink.cz.test.js | 0 sites/skylink.cz/skylink.cz_cz.channels.xml | 81 +++++++++++++++++++++ 3 files changed, 151 insertions(+) create mode 100644 sites/skylink.cz/skylink.cz.config.js create mode 100644 sites/skylink.cz/skylink.cz.test.js create mode 100644 sites/skylink.cz/skylink.cz_cz.channels.xml diff --git a/sites/skylink.cz/skylink.cz.config.js b/sites/skylink.cz/skylink.cz.config.js new file mode 100644 index 00000000..94f9c271 --- /dev/null +++ b/sites/skylink.cz/skylink.cz.config.js @@ -0,0 +1,70 @@ +const dayjs = require('dayjs') +const utc = require('dayjs/plugin/utc') +const timezone = require('dayjs/plugin/timezone') +const customParseFormat = require('dayjs/plugin/customParseFormat') + +dayjs.extend(utc) +dayjs.extend(timezone) +dayjs.extend(customParseFormat) + +module.exports = { + site: 'skylink.cz', + request: { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + }, + data: function ({ channel, date }) { + const params = new URLSearchParams() + params.append('channel_cid', channel.site_id) + // 0 = today, 1 = tomorrow, etc + const diff = date.diff(dayjs.utc().startOf('d'), 'd') + params.append('day', diff) + return params + } + }, + url() { + return `https://services.mujtvprogram.cz/tvprogram2services/services/tvprogrammelist_mobile.php` + }, + parser({ content}) { + let programs = [] + const items = parseItems(content) + items.forEach(item => { + programs.push({ + title: item.name, + start: parseTime(item.startDate), + stop: parseTime(item.endDate), + description: item.longDescription || item.shortDescription, + category: parseCategory(item), + date: item.year || null, + director: parseList(item.directors), + actor: parseList(item.actors) + + }) + }) + return programs + } +} + +function parseItems(content) { + try { + const data = JSON.parse(content) + if (!data) return [] + const programmes = data['tv-program-programmes'] + return programmes && Array.isArray(programmes) ? programmes : [] + } catch (err) { + return [] + } +} + +function parseList(list) { + return typeof list === 'string' ? list.split(',') : [] + } +function parseTime(time) { + return dayjs.utc(time, 'DD.MM.YYYY HH.mm') +} + +function parseCategory(item) { + if (!item['programme-type']) return null + return item['programme-type'].name +} diff --git a/sites/skylink.cz/skylink.cz.test.js b/sites/skylink.cz/skylink.cz.test.js new file mode 100644 index 00000000..e69de29b diff --git a/sites/skylink.cz/skylink.cz_cz.channels.xml b/sites/skylink.cz/skylink.cz_cz.channels.xml new file mode 100644 index 00000000..d6f57d3f --- /dev/null +++ b/sites/skylink.cz/skylink.cz_cz.channels.xml @@ -0,0 +1,81 @@ + + + + ČT1 HD + ČT2 HD + ČT3 HD + Dvojka HD + Jednotka HD + JOJ Family HD + Markíza International + Nova Action HD + Nova Fun HD + Nova HD + Paramount Network + Prima COOL HD + Prima HD + Prima KRIMI HD + Prima LOVE HD + Skylink 7 + Televize Seznam + TV Barrandov HD + Arena Sport 1 HD + CANAL+ Sport + ČT Sport HD + FightBox + Nova Sport 1 HD + Nova Sport 2 HD + Sport 1 HD + Sport 2 HD + AMC + AXN + CS Film + Film Europe HD + Film+ + FilmBox + JOJ Cinema HD + Nova Cinema HD + Prima MAX HD + ČT art HD + Hobby TV + Love Nature HD + National Geographic HD + National Geographic Wild + Nautical HD + Prima ZOOM HD + Spektrum HD + Travelxp HD + Viasat History HD + Viasat Nature HD + CANAL+ Domo + Mezzo HD + MTV 00s + MTV 80s + ÓČKO + ÓČKO BLACK HD + ÓČKO EXPRES HD + ÓČKO STAR + Retro + Stingray Classica HD + Stingray CMusic + Stingray iConcerts HD + Cartoon Network + ČT :D HD + Disney Channel + ducktv + JimJam + Minimax + Nickelodeon + Dorcel TV + Dorcel XXX + Penthouse Gold + Playboy TV Europe + VIXEN HD + CNN Prima NEWS HD + ČT24 HD + France 24 + France 24 HD + RTVS 24 HD + TA3 HD + + \ No newline at end of file