diff --git a/sites/tv.lv.config.js b/sites/tv.lv.config.js index 483a72a1..30f8ba08 100644 --- a/sites/tv.lv.config.js +++ b/sites/tv.lv.config.js @@ -2,6 +2,7 @@ const dayjs = require('dayjs') module.exports = { site: 'tv.lv', + lang: 'lv', url: function ({ date, channel }) { return `https://www.tv.lv/programme/listing/none/${date.format( 'DD-MM-YYYY' @@ -9,31 +10,43 @@ module.exports = { }, logo: function ({ content }) { const data = JSON.parse(content) - const logo = data.schedule.programme.length ? data.schedule.programme[0].channel.logo_64 : null + const logo = + data.schedule.programme && data.schedule.programme.length + ? data.schedule.programme[0].channel.logo_64 + : null return logo ? `https://cdn.tvstart.com/img/channel/${logo}` : null }, parser: function ({ content }) { const programs = [] - const data = JSON.parse(content) - const items = data.schedule.programme - if (!items.length) return programs - + const items = parseItems(content) items.forEach(item => { - if (item.title && item.start_unix && item.stop_unix) { - const start = dayjs.unix(item.start_unix) - const stop = dayjs.unix(item.stop_unix) - programs.push({ - title: item.title, - description: item.description_long, - category: item.categorystring, - icon: item.image, - start: start.toString(), - stop: stop.toString() - }) - } + const start = parseStart(item) + const stop = parseStop(item) + programs.push({ + title: item.title, + description: item.description_long, + category: item.categorystring, + icon: item.image, + start, + stop + }) }) return programs } } + +function parseStart(item) { + return item.start_unix ? dayjs.unix(item.start_unix) : null +} + +function parseStop(item) { + return item.stop_unix ? dayjs.unix(item.stop_unix) : null +} + +function parseItems(content) { + const data = JSON.parse(content) + + return data.schedule.programme || [] +}