Files
epg/sites/turksatkablo.com.tr/turksatkablo.com.tr.config.js
T

62 lines
1.5 KiB
JavaScript
Raw Normal View History

2023-06-03 21:37:56 +03:00
const { DateTime } = require('luxon')
2021-10-27 08:11:56 +03:00
module.exports = {
site: 'turksatkablo.com.tr',
2023-01-10 12:40:01 +03:00
days: 2,
2021-10-27 08:11:56 +03:00
url: function ({ date }) {
return `https://www.turksatkablo.com.tr/userUpload/EPG/y.json?_=${date.valueOf()}`
},
2021-11-25 21:44:25 +03:00
request: {
timeout: 60000
},
2021-10-27 08:11:56 +03:00
parser: function ({ content, channel, date }) {
let programs = []
const items = parseItems(content, channel)
items.forEach(item => {
2021-11-25 00:57:29 +03:00
const prev = programs[programs.length - 1]
2021-10-27 08:11:56 +03:00
let start = parseStart(item, date)
2023-06-03 21:37:56 +03:00
if (prev && start < prev.start) {
start = start.plus({ days: 1 })
2021-11-25 00:57:29 +03:00
date = date.add(1, 'd')
}
2021-10-27 08:11:56 +03:00
let stop = parseStop(item, date)
2023-06-03 21:37:56 +03:00
if (prev && stop < start) {
stop = stop.plus({ days: 1 })
2021-11-25 00:57:29 +03:00
date = date.add(1, 'd')
}
2021-10-27 08:11:56 +03:00
programs.push({
title: item.b,
2021-11-25 00:57:29 +03:00
start,
stop
2021-10-27 08:11:56 +03:00
})
})
return programs
}
}
function parseStart(item, date) {
2021-11-25 00:57:29 +03:00
const time = `${date.format('YYYY-MM-DD')} ${item.c}`
2021-10-27 08:11:56 +03:00
2023-06-03 21:37:56 +03:00
return DateTime.fromFormat(time, 'yyyy-MM-dd HH:mm', { zone: 'Europe/Istanbul' }).toUTC()
2021-10-27 08:11:56 +03:00
}
function parseStop(item, date) {
2021-11-25 00:57:29 +03:00
const time = `${date.format('YYYY-MM-DD')} ${item.d}`
2021-10-27 08:11:56 +03:00
2023-06-03 21:37:56 +03:00
return DateTime.fromFormat(time, 'yyyy-MM-dd HH:mm', { zone: 'Europe/Istanbul' }).toUTC()
2021-10-27 08:11:56 +03:00
}
function parseItems(content, channel) {
2021-11-25 00:57:29 +03:00
let parsed
try {
parsed = JSON.parse(content)
2023-10-02 06:35:33 +03:00
} catch (error) {
return []
}
2021-11-25 00:57:29 +03:00
if (!parsed || !parsed.k) return []
const data = parsed.k.find(c => c.x == channel.site_id)
2021-10-27 08:11:56 +03:00
return data ? data.p : []
}