From 4587a1bae7c52958247b8e50efdf3811b824e4ea Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Sun, 7 Nov 2021 22:21:34 +0300 Subject: [PATCH] Create tvplus.com.tr.config.js --- sites/tvplus.com.tr/tvplus.com.tr.config.js | 76 +++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 sites/tvplus.com.tr/tvplus.com.tr.config.js diff --git a/sites/tvplus.com.tr/tvplus.com.tr.config.js b/sites/tvplus.com.tr/tvplus.com.tr.config.js new file mode 100644 index 00000000..f26a7fdd --- /dev/null +++ b/sites/tvplus.com.tr/tvplus.com.tr.config.js @@ -0,0 +1,76 @@ +const axios = require('axios') +const dayjs = require('dayjs') +const utc = require('dayjs/plugin/utc') +const customParseFormat = require('dayjs/plugin/customParseFormat') + +dayjs.extend(utc) +dayjs.extend(customParseFormat) + +module.exports = { + site: 'tvplus.com.tr', + url: 'https://izmottvsc23.tvplus.com.tr:33207/EPG/JSON/PlayBillList', + request: { + method: 'POST', + async headers() { + const response = await axios + .post('https://izmottvsc23.tvplus.com.tr:33207/EPG/JSON/Authenticate', { + terminaltype: 'WEBTV_WIDEVINE', + userType: '3', + timezone: 'UTC' + }) + .catch(console.log) + const cookie = Array.isArray(response.headers['set-cookie']) + ? response.headers['set-cookie'].join('; ') + : '' + + return { cookie } + }, + data({ date, channel }) { + return { + type: '2', + channelid: channel.site_id, + begintime: date.format('YYYYMMDDHHmmss'), + endtime: date.add(1, 'd').format('YYYYMMDDHHmmss') + } + } + }, + logo({ channel }) { + return channel.logo + }, + parser: function ({ content }) { + let programs = [] + const items = parseItems(content) + items.forEach(item => { + const start = parseStart(item) + const stop = parseStop(item) + programs.push({ + title: item.name, + category: item.genres, + description: item.introduce, + icon: parseIcon(item), + start: start.toJSON(), + stop: stop.toJSON() + }) + }) + + return programs + } +} + +function parseIcon(item) { + return item.pictures && item.pictures.length ? item.pictures[0].href : null +} + +function parseStart(item) { + return dayjs.utc(item.starttime, 'YYYYMMDDHHmmss') +} + +function parseStop(item) { + return dayjs.utc(item.endtime, 'YYYYMMDDHHmmss') +} + +function parseItems(content) { + const data = JSON.parse(content) + + return data.playbilllist || [] +}