Files
epg/sites/wavve.com/wavve.com.config.js

63 lines
1.6 KiB
JavaScript
Raw Normal View History

2022-04-17 17:49:47 +03:00
const axios = require('axios')
2023-05-29 04:26:26 +03:00
const { DateTime } = require('luxon')
2022-04-17 17:49:47 +03:00
module.exports = {
site: 'wavve.com',
2023-01-10 12:40:01 +03:00
days: 2,
2022-04-17 17:49:47 +03:00
url: function ({ channel, date }) {
2023-05-29 04:26:26 +03:00
return `https://apis.pooq.co.kr/live/epgs/channels/${
channel.site_id
}?startdatetime=${date.format('YYYY-MM-DD')}%2000%3A00&enddatetime=${date
2022-04-17 17:49:47 +03:00
.add(1, 'd')
.format('YYYY-MM-DD')}%2000%3A00&apikey=E5F3E0D30947AA5440556471321BB6D9&limit=500`
},
parser: function ({ content }) {
let programs = []
const items = parseItems(content)
items.forEach(item => {
programs.push({
title: item.title,
start: parseStart(item),
stop: parseStop(item)
})
})
return programs
},
2023-10-02 06:35:33 +03:00
async channels() {
2022-04-17 17:49:47 +03:00
const channels = []
const data = await axios
.get(
2023-10-02 06:35:33 +03:00
'https://apis.pooq.co.kr/live/epgs?enddatetime=2022-04-17%2019%3A00&genre=all&limit=500&startdatetime=2022-04-17%2016%3A00&apikey=E5F3E0D30947AA5440556471321BB6D9'
2022-04-17 17:49:47 +03:00
)
.then(r => r.data)
.catch(console.log)
data.list.forEach(i => {
channels.push({
name: i.channelname,
site_id: i.channelid,
lang: 'ko'
})
})
return channels
}
}
function parseStart(item) {
2023-05-29 04:26:26 +03:00
return DateTime.fromFormat(item.starttime, 'yyyy-MM-dd HH:mm', { zone: 'Asia/Seoul' }).toUTC()
2022-04-17 17:49:47 +03:00
}
function parseStop(item) {
2023-05-29 04:26:26 +03:00
return DateTime.fromFormat(item.endtime, 'yyyy-MM-dd HH:mm', { zone: 'Asia/Seoul' }).toUTC()
2022-04-17 17:49:47 +03:00
}
function parseItems(content) {
const data = JSON.parse(content)
if (!data || !Array.isArray(data.list)) return []
return data.list
}