mirror of
https://github.com/iptv-org/epg
synced 2026-05-06 09:27:03 -04:00
extend extracted information for web.magentatv.de
Now populates: - season - episode - director - producers - adapters - country - date - urls
This commit is contained in:
@@ -3,6 +3,7 @@ const dayjs = require('dayjs')
|
||||
const utc = require('dayjs/plugin/utc')
|
||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||
const fetch = require('node-fetch')
|
||||
const { upperCase } = require('lodash')
|
||||
|
||||
let X_CSRFTOKEN
|
||||
let COOKIE
|
||||
@@ -29,7 +30,7 @@ module.exports = {
|
||||
offset: 0,
|
||||
properties: [
|
||||
{
|
||||
include: 'endtime,genres,id,name,starttime,channelid,pictures,introduce',
|
||||
include: 'endtime,genres,id,name,starttime,channelid,pictures,introduce,subName,seasonNum,subNum,cast,country,producedate,externalIds',
|
||||
name: 'playbill'
|
||||
}
|
||||
],
|
||||
@@ -50,7 +51,16 @@ module.exports = {
|
||||
image: parseImage(item),
|
||||
category: parseCategory(item),
|
||||
start: parseStart(item),
|
||||
stop: parseStop(item)
|
||||
stop: parseStop(item),
|
||||
sub_title: item.subName,
|
||||
season: item.seasonNum,
|
||||
episode: item.subNum,
|
||||
directors: parseDirectors(item),
|
||||
producers: parseProducers(item),
|
||||
adapters: parseAdapters(item),
|
||||
country: upperCase(item.country),
|
||||
date: item.producedate,
|
||||
urls: parseUrls(item)
|
||||
})
|
||||
})
|
||||
return programs
|
||||
@@ -102,6 +112,38 @@ function parseCategory(item) {
|
||||
: []
|
||||
}
|
||||
|
||||
function parseDirectors(item) {
|
||||
if (!item.cast || !item.cast.director) return [];
|
||||
return item.cast.director
|
||||
.replace('und', ',')
|
||||
.split(',')
|
||||
.map(i => i.trim());
|
||||
}
|
||||
|
||||
function parseProducers(item) {
|
||||
if (!item.cast || !item.cast.producer) return [];
|
||||
return item.cast.producer
|
||||
.replace('und', ',')
|
||||
.split(',')
|
||||
.map(i => i.trim())
|
||||
}
|
||||
|
||||
function parseAdapters(item) {
|
||||
if (!item.cast || !item.cast.adaptor) return [];
|
||||
return item.cast.adaptor
|
||||
.replace('und', ',')
|
||||
.split(',')
|
||||
.map(i => i.trim())
|
||||
}
|
||||
|
||||
function parseUrls(item) {
|
||||
// currently only a imdb id is returned by the api, thus we can construct the url here
|
||||
if (!item.externalIds) return [];
|
||||
return JSON.parse(item.externalIds)
|
||||
.filter(externalId => externalId.type === 'imdb' && externalId.id)
|
||||
.map(externalId => ({ system: 'imdb', value: `https://www.imdb.com/title/${externalId.id}` }))
|
||||
}
|
||||
|
||||
function parseImage(item) {
|
||||
if (!Array.isArray(item.pictures) || !item.pictures.length) return null
|
||||
|
||||
|
||||
Reference in New Issue
Block a user