mirror of
https://github.com/iptv-org/epg
synced 2026-05-01 06:56:59 -04:00
Replace LF line endings with CRLF
This commit is contained in:
@@ -1,50 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<channels>
|
||||
<channel site="cgates.lt" lang="en" xmltv_id="BlueHustler.nl" site_id="blue-hustler">Blue Hustler</channel>
|
||||
<channel site="cgates.lt" lang="en" xmltv_id="DiscoveryChannel.lv" site_id="discovery-channel-hd">Discovery Channel</channel>
|
||||
<channel site="cgates.lt" lang="en" xmltv_id="DocuBox.nl" site_id="docubox-hd">DocuBox</channel>
|
||||
<channel site="cgates.lt" lang="en" xmltv_id="Duo3.ee" site_id="sony-channel-hd">Duo 3</channel>
|
||||
<channel site="cgates.lt" lang="en" xmltv_id="Go3SportOpen.ee" site_id="tv3-sport-open-hd">Go3 Sport Open</channel>
|
||||
<channel site="cgates.lt" lang="en" xmltv_id="KidZoneMax.ee" site_id="kidzone-tv">Kidzone Max</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="animal-planet-hd">Animal Planet</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="deutsche-welle">Deutsche Welle</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="eurosport-1-hd">Eurosport 1</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="eurosport-2-hd">Eurosport 2</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="food-network">Food Network</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="freedom-tv">Freedom TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="geru-naujienu-televizija">JPTV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="hgtv-hd">HGTV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="id-xtra-hd">Investigation Discovery</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="national-geographic-hd">National Geographic</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="rtv-international">RTV International</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="super-plius-hd">Super+</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="tlc">TLC</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="travel-channel-hd">Travel Channel</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="tv7">TV7</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="viasat-history-hd">Viasat History</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="viasat-kino-comedy">Viasat Kino Comedy</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="2TV.lt" site_id="2tv">2TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="BalticumAuksinis.lt" site_id="balticum-auksinis">Balticum Auksinis</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="BalticumTV.lt" site_id="balticum-tv">Balticum TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="BTV.lt@HD" site_id="btv-hd">BTV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="CurrentTimeTV.cz" site_id="nastojashcheje-vremya">Nastojashcheje Vremya</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="DelfiTV.lt" site_id="delfi-tv-hd">Delfi TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="InfoTV.lt" site_id="info-tv-hd">Info TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="LietuvosRytasTV.lt" site_id="lietuvos-ryto-tv-hd">Lietuvos ryto TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="LNK.lt@HD" site_id="lnk-hd">LNK</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="LRTPlius.lt" site_id="lrt-kultura-hd">LRT Plius</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="LRTTV.lt" site_id="lrt-televizija-hd">LRT Televizija</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="MarijampolesTV.lt" site_id="marijampoles-tv">Marijampolės TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="SiauliuTV.lt" site_id="siauliu-televizija">Etaplius TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="Sport1.lt" site_id="sport-1-hd">Sport 1</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="TV1.lt" site_id="tv1-hd">TV1</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="TV3.lt" site_id="tv3-hd">TV3</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="TV3Plus.lv" site_id="tv3-plus-hd">TV3 Plus</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="TV6.lt" site_id="tv6-hd">TV6</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="TV8.lt" site_id="tv8-hd">TV8</channel>
|
||||
<channel site="cgates.lt" lang="ru" xmltv_id="Kanal7.ee" site_id="duo-7">Kanal 7 Baltic</channel>
|
||||
<channel site="cgates.lt" lang="ru" xmltv_id="StarFamily.ru" site_id="star-family">Star Family</channel>
|
||||
<channel site="cgates.lt" lang="uk" xmltv_id="BalticumPlatinumHD.lt" site_id="balticum-platinum-hd">Balticum Platinum</channel>
|
||||
<channel site="cgates.lt" lang="uk" xmltv_id="FilmUADrama.ua" site_id="film-ua-drama">Film UA Drama</channel>
|
||||
<channel site="cgates.lt" lang="uk" xmltv_id="StarCinema.ua" site_id="star-cinema">Star Cinema</channel>
|
||||
</channels>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<channels>
|
||||
<channel site="cgates.lt" lang="en" xmltv_id="BlueHustler.nl" site_id="blue-hustler">Blue Hustler</channel>
|
||||
<channel site="cgates.lt" lang="en" xmltv_id="DiscoveryChannel.lv" site_id="discovery-channel-hd">Discovery Channel</channel>
|
||||
<channel site="cgates.lt" lang="en" xmltv_id="DocuBox.nl" site_id="docubox-hd">DocuBox</channel>
|
||||
<channel site="cgates.lt" lang="en" xmltv_id="Duo3.ee" site_id="sony-channel-hd">Duo 3</channel>
|
||||
<channel site="cgates.lt" lang="en" xmltv_id="Go3SportOpen.ee" site_id="tv3-sport-open-hd">Go3 Sport Open</channel>
|
||||
<channel site="cgates.lt" lang="en" xmltv_id="KidZoneMax.ee" site_id="kidzone-tv">Kidzone Max</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="animal-planet-hd">Animal Planet</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="deutsche-welle">Deutsche Welle</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="eurosport-1-hd">Eurosport 1</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="eurosport-2-hd">Eurosport 2</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="food-network">Food Network</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="freedom-tv">Freedom TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="geru-naujienu-televizija">JPTV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="hgtv-hd">HGTV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="id-xtra-hd">Investigation Discovery</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="national-geographic-hd">National Geographic</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="rtv-international">RTV International</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="super-plius-hd">Super+</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="tlc">TLC</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="travel-channel-hd">Travel Channel</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="tv7">TV7</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="viasat-history-hd">Viasat History</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="" site_id="viasat-kino-comedy">Viasat Kino Comedy</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="2TV.lt" site_id="2tv">2TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="BalticumAuksinis.lt" site_id="balticum-auksinis">Balticum Auksinis</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="BalticumTV.lt" site_id="balticum-tv">Balticum TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="BTV.lt@HD" site_id="btv-hd">BTV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="CurrentTimeTV.cz" site_id="nastojashcheje-vremya">Nastojashcheje Vremya</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="DelfiTV.lt" site_id="delfi-tv-hd">Delfi TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="InfoTV.lt" site_id="info-tv-hd">Info TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="LietuvosRytasTV.lt" site_id="lietuvos-ryto-tv-hd">Lietuvos ryto TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="LNK.lt@HD" site_id="lnk-hd">LNK</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="LRTPlius.lt" site_id="lrt-kultura-hd">LRT Plius</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="LRTTV.lt" site_id="lrt-televizija-hd">LRT Televizija</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="MarijampolesTV.lt" site_id="marijampoles-tv">Marijampolės TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="SiauliuTV.lt" site_id="siauliu-televizija">Etaplius TV</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="Sport1.lt" site_id="sport-1-hd">Sport 1</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="TV1.lt" site_id="tv1-hd">TV1</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="TV3.lt" site_id="tv3-hd">TV3</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="TV3Plus.lv" site_id="tv3-plus-hd">TV3 Plus</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="TV6.lt" site_id="tv6-hd">TV6</channel>
|
||||
<channel site="cgates.lt" lang="lt" xmltv_id="TV8.lt" site_id="tv8-hd">TV8</channel>
|
||||
<channel site="cgates.lt" lang="ru" xmltv_id="Kanal7.ee" site_id="duo-7">Kanal 7 Baltic</channel>
|
||||
<channel site="cgates.lt" lang="ru" xmltv_id="StarFamily.ru" site_id="star-family">Star Family</channel>
|
||||
<channel site="cgates.lt" lang="uk" xmltv_id="BalticumPlatinumHD.lt" site_id="balticum-platinum-hd">Balticum Platinum</channel>
|
||||
<channel site="cgates.lt" lang="uk" xmltv_id="FilmUADrama.ua" site_id="film-ua-drama">Film UA Drama</channel>
|
||||
<channel site="cgates.lt" lang="uk" xmltv_id="StarCinema.ua" site_id="star-cinema">Star Cinema</channel>
|
||||
</channels>
|
||||
|
||||
@@ -1,92 +1,92 @@
|
||||
const dayjs = require('dayjs')
|
||||
const axios = require('axios')
|
||||
const cheerio = require('cheerio')
|
||||
const utc = require('dayjs/plugin/utc')
|
||||
const timezone = require('dayjs/plugin/timezone')
|
||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||
|
||||
dayjs.extend(utc)
|
||||
dayjs.extend(timezone)
|
||||
dayjs.extend(customParseFormat)
|
||||
|
||||
module.exports = {
|
||||
site: 'cgates.lt',
|
||||
days: 2,
|
||||
url: function ({ channel }) {
|
||||
return `https://www.cgates.lt/tv-kanalai/${channel.site_id}/`
|
||||
},
|
||||
parser: function ({ content, date }) {
|
||||
let programs = []
|
||||
const items = parseItems(content, date)
|
||||
items.forEach(item => {
|
||||
const prev = programs[programs.length - 1]
|
||||
const $item = cheerio.load(item)
|
||||
let start = parseStart($item, date)
|
||||
if (prev) {
|
||||
if (start.isBefore(prev.start)) {
|
||||
start = start.add(1, 'd')
|
||||
date = date.add(1, 'd')
|
||||
}
|
||||
prev.stop = start
|
||||
}
|
||||
const stop = start.add(30, 'm')
|
||||
programs.push({
|
||||
title: parseTitle($item),
|
||||
description: parseDescription($item),
|
||||
start,
|
||||
stop
|
||||
})
|
||||
})
|
||||
|
||||
return programs
|
||||
},
|
||||
async channels() {
|
||||
let html = await axios
|
||||
.get('https://www.cgates.lt/televizija/tv-programa-savaitei/')
|
||||
.then(r => r.data)
|
||||
.catch(console.log)
|
||||
let $ = cheerio.load(html)
|
||||
const items = $('.vc_tta-panel.vc_active .kanalas_wrap').toArray()
|
||||
|
||||
return items.map(item => {
|
||||
const name = $(item).find('h6').text().trim()
|
||||
const link = $(item).find('a').attr('href')
|
||||
const [, site_id] = link.match(/\/tv-kanalai\/(.*)\//) || [null, null]
|
||||
|
||||
return {
|
||||
lang: 'lt',
|
||||
site_id,
|
||||
name
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function parseTitle($item) {
|
||||
const title = $item('td:nth-child(2) > .vc_toggle > .vc_toggle_title').text().trim()
|
||||
|
||||
return title || $item('td:nth-child(2)').text().trim()
|
||||
}
|
||||
|
||||
function parseDescription($item) {
|
||||
return $item('.vc_toggle_content > p').text().trim()
|
||||
}
|
||||
|
||||
function parseStart($item, date) {
|
||||
const time = $item('.laikas')
|
||||
|
||||
return dayjs.tz(`${date.format('YYYY-MM-DD')} ${time}`, 'YYYY-MM-DD HH:mm', 'Europe/Vilnius')
|
||||
}
|
||||
|
||||
function parseItems(content, date) {
|
||||
const $ = cheerio.load(content)
|
||||
const section = $(
|
||||
'article > div:nth-child(2) > div.vc_row.wpb_row.vc_row-fluid > div > div > div > div > div'
|
||||
)
|
||||
.filter(function () {
|
||||
return $(`.dt-fancy-title:contains("${date.format('YYYY-MM-DD')}")`, this).length === 1
|
||||
})
|
||||
.first()
|
||||
|
||||
return $('.tv_programa tr', section).toArray()
|
||||
}
|
||||
const dayjs = require('dayjs')
|
||||
const axios = require('axios')
|
||||
const cheerio = require('cheerio')
|
||||
const utc = require('dayjs/plugin/utc')
|
||||
const timezone = require('dayjs/plugin/timezone')
|
||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||
|
||||
dayjs.extend(utc)
|
||||
dayjs.extend(timezone)
|
||||
dayjs.extend(customParseFormat)
|
||||
|
||||
module.exports = {
|
||||
site: 'cgates.lt',
|
||||
days: 2,
|
||||
url: function ({ channel }) {
|
||||
return `https://www.cgates.lt/tv-kanalai/${channel.site_id}/`
|
||||
},
|
||||
parser: function ({ content, date }) {
|
||||
let programs = []
|
||||
const items = parseItems(content, date)
|
||||
items.forEach(item => {
|
||||
const prev = programs[programs.length - 1]
|
||||
const $item = cheerio.load(item)
|
||||
let start = parseStart($item, date)
|
||||
if (prev) {
|
||||
if (start.isBefore(prev.start)) {
|
||||
start = start.add(1, 'd')
|
||||
date = date.add(1, 'd')
|
||||
}
|
||||
prev.stop = start
|
||||
}
|
||||
const stop = start.add(30, 'm')
|
||||
programs.push({
|
||||
title: parseTitle($item),
|
||||
description: parseDescription($item),
|
||||
start,
|
||||
stop
|
||||
})
|
||||
})
|
||||
|
||||
return programs
|
||||
},
|
||||
async channels() {
|
||||
let html = await axios
|
||||
.get('https://www.cgates.lt/televizija/tv-programa-savaitei/')
|
||||
.then(r => r.data)
|
||||
.catch(console.log)
|
||||
let $ = cheerio.load(html)
|
||||
const items = $('.vc_tta-panel.vc_active .kanalas_wrap').toArray()
|
||||
|
||||
return items.map(item => {
|
||||
const name = $(item).find('h6').text().trim()
|
||||
const link = $(item).find('a').attr('href')
|
||||
const [, site_id] = link.match(/\/tv-kanalai\/(.*)\//) || [null, null]
|
||||
|
||||
return {
|
||||
lang: 'lt',
|
||||
site_id,
|
||||
name
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function parseTitle($item) {
|
||||
const title = $item('td:nth-child(2) > .vc_toggle > .vc_toggle_title').text().trim()
|
||||
|
||||
return title || $item('td:nth-child(2)').text().trim()
|
||||
}
|
||||
|
||||
function parseDescription($item) {
|
||||
return $item('.vc_toggle_content > p').text().trim()
|
||||
}
|
||||
|
||||
function parseStart($item, date) {
|
||||
const time = $item('.laikas')
|
||||
|
||||
return dayjs.tz(`${date.format('YYYY-MM-DD')} ${time}`, 'YYYY-MM-DD HH:mm', 'Europe/Vilnius')
|
||||
}
|
||||
|
||||
function parseItems(content, date) {
|
||||
const $ = cheerio.load(content)
|
||||
const section = $(
|
||||
'article > div:nth-child(2) > div.vc_row.wpb_row.vc_row-fluid > div > div > div > div > div'
|
||||
)
|
||||
.filter(function () {
|
||||
return $(`.dt-fancy-title:contains("${date.format('YYYY-MM-DD')}")`, this).length === 1
|
||||
})
|
||||
.first()
|
||||
|
||||
return $('.tv_programa tr', section).toArray()
|
||||
}
|
||||
|
||||
@@ -1,49 +1,49 @@
|
||||
const { parser, url } = require('./cgates.lt.config.js')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const dayjs = require('dayjs')
|
||||
const utc = require('dayjs/plugin/utc')
|
||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||
dayjs.extend(customParseFormat)
|
||||
dayjs.extend(utc)
|
||||
|
||||
const date = dayjs.utc('2022-08-30', 'YYYY-MM-DD').startOf('d')
|
||||
const channel = {
|
||||
site_id: 'lrt-televizija-hd',
|
||||
xmltv_id: 'LRTTV.lt'
|
||||
}
|
||||
|
||||
it('can generate valid url', () => {
|
||||
expect(url({ channel, date })).toBe('https://www.cgates.lt/tv-kanalai/lrt-televizija-hd/')
|
||||
})
|
||||
|
||||
it('can parse response', () => {
|
||||
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.html'))
|
||||
const results = parser({ content, date }).map(p => {
|
||||
p.start = p.start.toJSON()
|
||||
p.stop = p.stop.toJSON()
|
||||
return p
|
||||
})
|
||||
|
||||
expect(results.length).toBe(35)
|
||||
expect(results[0]).toMatchObject({
|
||||
start: '2022-08-29T21:05:00.000Z',
|
||||
stop: '2022-08-29T21:30:00.000Z',
|
||||
title: '31-oji nuovada (District 31), Drama, 2016',
|
||||
description:
|
||||
'Seriale pasakojama apie kasdienius policijos išbandymus ir sunkumus. Vadovybė pertvarko Monrealio miesto policijos struktūrą: išskirsto į 36 policijos nuovadas, kad šios būtų arčiau gyventojų. 31-osios nuovados darbuotojams tenka kone sunkiausias darbas: šiame miesto rajone gyvena socialiai remtinos šeimos, nuolat kovojančios su turtingųjų klase, įsipliekia ir rasinių konfliktų. Be to, čia akivaizdus kartų atotrūkis, o tapti nusikalstamo pasaulio dalimi labai lengva. Serialo siužetas – intensyvus, nauji nusikaltimai tiriami kiekvieną savaitę. Čia vaizduojamas nepagražintas nusikalstamas pasaulis, jo poveikis rajono gyventojams. Policijos nuovados darbuotojai narplios įvairiausių nusikaltimų schemas. Tai ir pagrobimai, įsilaužimai, žmogžudystės, smurtas artimoje aplinkoje, lytiniai nusikaltimai, prekyba narkotikais, teroristinių išpuolių grėsmė ir pan. Šis serialas leis žiūrovui įsigilinti į policijos pareigūnų realybę, pateiks skirtingą požiūrį į kiekvieną nusikaltimą.'
|
||||
})
|
||||
|
||||
expect(results[34]).toMatchObject({
|
||||
start: '2022-08-30T20:45:00.000Z',
|
||||
stop: '2022-08-30T21:15:00.000Z',
|
||||
title: '31-oji nuovada (District 31), Drama, 2016!'
|
||||
})
|
||||
})
|
||||
|
||||
it('can handle empty guide', () => {
|
||||
const result = parser({
|
||||
content: ''
|
||||
})
|
||||
expect(result).toMatchObject([])
|
||||
})
|
||||
const { parser, url } = require('./cgates.lt.config.js')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const dayjs = require('dayjs')
|
||||
const utc = require('dayjs/plugin/utc')
|
||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||
dayjs.extend(customParseFormat)
|
||||
dayjs.extend(utc)
|
||||
|
||||
const date = dayjs.utc('2022-08-30', 'YYYY-MM-DD').startOf('d')
|
||||
const channel = {
|
||||
site_id: 'lrt-televizija-hd',
|
||||
xmltv_id: 'LRTTV.lt'
|
||||
}
|
||||
|
||||
it('can generate valid url', () => {
|
||||
expect(url({ channel, date })).toBe('https://www.cgates.lt/tv-kanalai/lrt-televizija-hd/')
|
||||
})
|
||||
|
||||
it('can parse response', () => {
|
||||
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.html'))
|
||||
const results = parser({ content, date }).map(p => {
|
||||
p.start = p.start.toJSON()
|
||||
p.stop = p.stop.toJSON()
|
||||
return p
|
||||
})
|
||||
|
||||
expect(results.length).toBe(35)
|
||||
expect(results[0]).toMatchObject({
|
||||
start: '2022-08-29T21:05:00.000Z',
|
||||
stop: '2022-08-29T21:30:00.000Z',
|
||||
title: '31-oji nuovada (District 31), Drama, 2016',
|
||||
description:
|
||||
'Seriale pasakojama apie kasdienius policijos išbandymus ir sunkumus. Vadovybė pertvarko Monrealio miesto policijos struktūrą: išskirsto į 36 policijos nuovadas, kad šios būtų arčiau gyventojų. 31-osios nuovados darbuotojams tenka kone sunkiausias darbas: šiame miesto rajone gyvena socialiai remtinos šeimos, nuolat kovojančios su turtingųjų klase, įsipliekia ir rasinių konfliktų. Be to, čia akivaizdus kartų atotrūkis, o tapti nusikalstamo pasaulio dalimi labai lengva. Serialo siužetas – intensyvus, nauji nusikaltimai tiriami kiekvieną savaitę. Čia vaizduojamas nepagražintas nusikalstamas pasaulis, jo poveikis rajono gyventojams. Policijos nuovados darbuotojai narplios įvairiausių nusikaltimų schemas. Tai ir pagrobimai, įsilaužimai, žmogžudystės, smurtas artimoje aplinkoje, lytiniai nusikaltimai, prekyba narkotikais, teroristinių išpuolių grėsmė ir pan. Šis serialas leis žiūrovui įsigilinti į policijos pareigūnų realybę, pateiks skirtingą požiūrį į kiekvieną nusikaltimą.'
|
||||
})
|
||||
|
||||
expect(results[34]).toMatchObject({
|
||||
start: '2022-08-30T20:45:00.000Z',
|
||||
stop: '2022-08-30T21:15:00.000Z',
|
||||
title: '31-oji nuovada (District 31), Drama, 2016!'
|
||||
})
|
||||
})
|
||||
|
||||
it('can handle empty guide', () => {
|
||||
const result = parser({
|
||||
content: ''
|
||||
})
|
||||
expect(result).toMatchObject([])
|
||||
})
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
# cgates.lt
|
||||
|
||||
https://www.cgates.lt/televizija/tv-programa-savaitei/
|
||||
|
||||
### Download the guide
|
||||
|
||||
```sh
|
||||
npm run grab --- --site=cgates.lt
|
||||
```
|
||||
|
||||
### Update channel list
|
||||
|
||||
```sh
|
||||
npm run channels:parse --- --config=./sites/cgates.lt/cgates.lt.config.js --output=./sites/cgates.lt/cgates.lt.channels.xml
|
||||
```
|
||||
|
||||
### Test
|
||||
|
||||
```sh
|
||||
npm test --- cgates.lt
|
||||
```
|
||||
# cgates.lt
|
||||
|
||||
https://www.cgates.lt/televizija/tv-programa-savaitei/
|
||||
|
||||
### Download the guide
|
||||
|
||||
```sh
|
||||
npm run grab --- --site=cgates.lt
|
||||
```
|
||||
|
||||
### Update channel list
|
||||
|
||||
```sh
|
||||
npm run channels:parse --- --config=./sites/cgates.lt/cgates.lt.config.js --output=./sites/cgates.lt/cgates.lt.channels.xml
|
||||
```
|
||||
|
||||
### Test
|
||||
|
||||
```sh
|
||||
npm test --- cgates.lt
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user