From 26c172f6d348514d7e51568cbf3fdb5db0caeb43 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Mon, 28 Nov 2022 19:27:35 +0300 Subject: [PATCH] Create toonamiaftermath.com.config.js --- .../toonamiaftermath.com.config.js | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 sites/toonamiaftermath.com/toonamiaftermath.com.config.js diff --git a/sites/toonamiaftermath.com/toonamiaftermath.com.config.js b/sites/toonamiaftermath.com/toonamiaftermath.com.config.js new file mode 100644 index 00000000..2de581a2 --- /dev/null +++ b/sites/toonamiaftermath.com/toonamiaftermath.com.config.js @@ -0,0 +1,53 @@ +process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0' + +const dayjs = require('dayjs') +const axios = require('axios') + +const API_ENDPOINT = `https://api.toonamiaftermath.com` + +module.exports = { + site: 'toonamiaftermath.com', + async url({ channel, date }) { + const playlists = await axios + .get( + `${API_ENDPOINT}/playlists?scheduleName=${channel.site_id}&startDate=${date + .add(1, 'd') + .toJSON()}&thisWeek=true&weekStartDay=monday` + ) + .then(r => r.data) + .catch(console.error) + + const playlist = playlists.find(p => date.isSame(p.startDate, 'day')) + + return `https://api.toonamiaftermath.com/playlist?id=${playlist._id}&addInfo=true` + }, + parser({ content, date }) { + let programs = [] + const items = parseItems(content, date) + items.forEach(item => { + programs.push({ + title: item.name, + sub_title: item?.info?.episode, + icon: item?.info?.image, + start: dayjs(item.startDate), + stop: dayjs(item.endDate) + }) + }) + + return programs + } +} + +function parseItems(content, date) { + if (!content) return [] + const data = JSON.parse(content) + const blocks = data?.playlist?.blocks || [] + + return blocks + .reduce((acc, curr) => { + acc = acc.concat(curr.mediaList) + + return acc + }, []) + .filter(i => date.isSame(i.startDate, 'day')) +}