mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-10 00:50:09 -04:00
74 lines
1.6 KiB
JavaScript
74 lines
1.6 KiB
JavaScript
const _ = require('lodash')
|
||
const dayjs = require('dayjs')
|
||
const utc = require('dayjs/plugin/utc')
|
||
const timezone = require('dayjs/plugin/timezone')
|
||
|
||
dayjs.extend(utc)
|
||
dayjs.extend(timezone)
|
||
|
||
module.exports = {
|
||
site: 'digiturk.com.tr',
|
||
days: 2,
|
||
url: function ({ date, channel }) {
|
||
return `https://www.digiturk.com.tr/yayin-akisi/api/program/kanal/${
|
||
channel.site_id
|
||
}/${date.format('YYYY-MM-DD')}/0`
|
||
},
|
||
parser: function ({ content, channel }) {
|
||
let programs = []
|
||
const items = parseItems(content, channel)
|
||
items.forEach(item => {
|
||
const start = parseStart(item)
|
||
const stop = start.add(item.BroadcastDuration, 's')
|
||
programs.push({
|
||
title: item.ProgramName,
|
||
description: item.LongDescription,
|
||
category: parseCategory(item),
|
||
start,
|
||
stop
|
||
})
|
||
})
|
||
|
||
programs = _.sortBy(programs, 'start')
|
||
|
||
return programs
|
||
}
|
||
}
|
||
|
||
function parseStart(item) {
|
||
return dayjs.tz(item.BroadcastStart, 'Europe/Istanbul')
|
||
}
|
||
|
||
function parseCategory(item) {
|
||
const categories = {
|
||
'00': 'Diğer',
|
||
E0: 'Romantik Komedi',
|
||
E1: 'Aksiyon',
|
||
E4: 'Macera',
|
||
E5: 'Dram',
|
||
E6: 'Fantastik',
|
||
E7: 'Komedi',
|
||
E8: 'Korku',
|
||
EB: 'Polisiye',
|
||
EF: 'Western',
|
||
FA: 'Macera',
|
||
FB: 'Yarışma',
|
||
FC: 'Eğlence',
|
||
F0: 'Reality-Show',
|
||
F2: 'Haberler',
|
||
F4: 'Belgesel',
|
||
F6: 'Eğitim',
|
||
F7: 'Sanat ve Kültür',
|
||
F9: 'Life Style'
|
||
}
|
||
|
||
return categories[item.Genre]
|
||
}
|
||
|
||
function parseItems(content, channel) {
|
||
const data = JSON.parse(content)
|
||
const items = data.listings[channel.site_id]
|
||
if (!Array.isArray(items)) return []
|
||
|
||
return items
|
||
}
|