Replace LF line endings with CRLF

This commit is contained in:
freearhey
2025-09-28 17:55:05 +03:00
parent efc74efcf8
commit b6a589c62a
1192 changed files with 445631 additions and 445631 deletions

View File

@@ -1,21 +1,21 @@
# sky.de
https://www.sky.de/tvguide-7599
### Download the guide
```sh
npm run grab --- --site=sky.de
```
### Update channel list
```sh
npm run channels:parse --- --config=./sites/sky.de/sky.de.config.js --output=./sites/sky.de/sky.de.channels.xml
```
### Test
```sh
npm test --- sky.de
```
# sky.de
https://www.sky.de/tvguide-7599
### Download the guide
```sh
npm run grab --- --site=sky.de
```
### Update channel list
```sh
npm run channels:parse --- --config=./sites/sky.de/sky.de.config.js --output=./sites/sky.de/sky.de.channels.xml
```
### Test
```sh
npm test --- sky.de
```

View File

@@ -1,78 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="sky.de" lang="de" xmltv_id="13thStreetUniversal.de@HD" site_id="116">13th Street HD</channel>
<channel site="sky.de" lang="de" xmltv_id="BeateUhseTV.de@HD" site_id="690">Beate Uhse HD</channel>
<channel site="sky.de" lang="de" xmltv_id="CartoonitoCEE.uk@Germany" site_id="761">Cartoonito</channel>
<channel site="sky.de" lang="de" xmltv_id="CartoonNetworkCEE.uk@Germany" site_id="95">Cartoon Network</channel>
<channel site="sky.de" lang="de" xmltv_id="CrimePlusInvestigation.de" site_id="451">Crime + Investigation</channel>
<channel site="sky.de" lang="de" xmltv_id="DAZN1.uk@GermanyHD" site_id="659">DAZN 1 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="DAZN2.uk@GermanyHD" site_id="900">DAZN 2 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="DiscoveryChannel.de@HD" site_id="83">Discovery HD</channel>
<channel site="sky.de" lang="de" xmltv_id="Heimatkanal.de" site_id="72">Heimatkanal</channel>
<channel site="sky.de" lang="de" xmltv_id="History.de@HD" site_id="86">HISTORY Channel HD</channel>
<channel site="sky.de" lang="de" xmltv_id="Jukebox.de" site_id="452">Jukebox</channel>
<channel site="sky.de" lang="de" xmltv_id="Motorvision.de" site_id="52">Motorvision+</channel>
<channel site="sky.de" lang="de" xmltv_id="NickJr.de" site_id="783">Nick Jr.</channel>
<channel site="sky.de" lang="de" xmltv_id="Nicktoons.de" site_id="798">Nicktoons</channel>
<channel site="sky.de" lang="de" xmltv_id="RomanceTV.de@HD" site_id="16">Romance TV HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyAtlantic.de@HD" site_id="2">Sky Atlantic HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaAction.de@HD" site_id="60">Sky Cinema Action HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaBestOf.de@HD" site_id="792">Sky Cinema Best Of HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaClassics.de@HD" site_id="1043">Sky Cinema Classics HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaFamily.de@HD" site_id="533">Sky Cinema Family HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaFun.de@HD" site_id="1040">Sky Cinema Fun HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaPremieren.de@HD" site_id="788">Sky Cinema Premieren HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaPremieren.de@Plus24HD" site_id="791">Sky Cinema Premieren +24 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaSpecial.de@HD" site_id="890">Sky Cinema Special HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaThriller.de@HD" site_id="784">Sky Cinema Thriller HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCrime.de@HD" site_id="855">Sky Crime HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyDocumentaries.de@HD" site_id="876">Sky Documentaries HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyKrimi.de@HD" site_id="753">Sky Krimi HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyNature.de@HD" site_id="875">Sky Nature HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyOne.de@HD" site_id="535">Sky One HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyReplay.de@HD" site_id="888">Sky Replay HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyShowcase.de@HD" site_id="1019">Sky Showcase HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport10.de@HD" site_id="999">Sky Sport 10 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport1.de@HD" site_id="130">Sky Sport 1 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport2.de@HD" site_id="131">Sky Sport 2 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport3.de@HD" site_id="132">Sky Sport 3 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport4.de@HD" site_id="133">Sky Sport 4 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport5.de@HD" site_id="134">Sky Sport 5 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport6.de@HD" site_id="135">Sky Sport 6 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport7.de@HD" site_id="136">Sky Sport 7 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport8.de@HD" site_id="137">Sky Sport 8 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport9.de@HD" site_id="138">Sky Sport 9 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportAustria1.at@HD" site_id="492">Sky Sport Austria 1 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportAustria2.at@HD" site_id="729">Sky Sport Austria 2 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportAustria3.at@HD" site_id="730">Sky Sport Austria 3 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportAustria4.at@HD" site_id="898">Sky Sport Austria 4 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportAustria5.at@HD" site_id="883">Sky Sport Austria 5 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportAustria6.at@HD" site_id="884">Sky Sport Austria 6 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportAustria7.at@HD" site_id="885">Sky Sport Austria 7 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga10.de@HD" site_id="998">Sky Sport Bundesliga 10 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga1.de@HD" site_id="119">Sky Sport Bundesliga 1 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga2.de@HD" site_id="120">Sky Sport Bundesliga 2 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga3.de@HD" site_id="121">Sky Sport Bundesliga 3 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga4.de@HD" site_id="122">Sky Sport Bundesliga 4 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga5.de@HD" site_id="123">Sky Sport Bundesliga 5 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga6.de@HD" site_id="124">Sky Sport Bundesliga 6 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga7.de@HD" site_id="125">Sky Sport Bundesliga 7 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga8.de@HD" site_id="126">Sky Sport Bundesliga 8 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga9.de@HD" site_id="127">Sky Sport Bundesliga 9 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga.de@HD" site_id="1018">Sky Sport Bundesliga HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga.de@UHD" site_id="531">Sky Sport Bundesliga UHD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportF1.de@HD" site_id="853">Sky Sport F1 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportGolf.de@HD" site_id="1002">Sky Sport Golf HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportMix.de@HD" site_id="1005">Sky Sport Mix HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportNews.de@HD" site_id="17">Sky Sport News HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportPremierLeague.de@HD" site_id="1000">Sky Sport Premier League HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportTennis.de@HD" site_id="1012">Sky Sport Tennis HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportTopEvent.de@HD" site_id="1014">Sky Sport Top Event HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport.de@UHD" site_id="526">Sky Sport UHD</channel>
<channel site="sky.de" lang="de" xmltv_id="SYFY.de@HD" site_id="115">SYFY HD</channel>
<channel site="sky.de" lang="de" xmltv_id="UniversalTV.de@HD" site_id="172">Universal TV HD</channel>
<channel site="sky.de" lang="de" xmltv_id="WarnerTVComedy.de@HD" site_id="522">Warner TV Comedy HD</channel>
<channel site="sky.de" lang="de" xmltv_id="WarnerTVFilm.de" site_id="762">Warner TV Film</channel>
<channel site="sky.de" lang="de" xmltv_id="WarnerTVFilm.de@HD" site_id="689">Warner TV Film HD</channel>
<channel site="sky.de" lang="de" xmltv_id="WarnerTVSerie.de@HD" site_id="6">Warner TV Serie HD</channel>
</channels>
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="sky.de" lang="de" xmltv_id="13thStreetUniversal.de@HD" site_id="116">13th Street HD</channel>
<channel site="sky.de" lang="de" xmltv_id="BeateUhseTV.de@HD" site_id="690">Beate Uhse HD</channel>
<channel site="sky.de" lang="de" xmltv_id="CartoonitoCEE.uk@Germany" site_id="761">Cartoonito</channel>
<channel site="sky.de" lang="de" xmltv_id="CartoonNetworkCEE.uk@Germany" site_id="95">Cartoon Network</channel>
<channel site="sky.de" lang="de" xmltv_id="CrimePlusInvestigation.de" site_id="451">Crime + Investigation</channel>
<channel site="sky.de" lang="de" xmltv_id="DAZN1.uk@GermanyHD" site_id="659">DAZN 1 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="DAZN2.uk@GermanyHD" site_id="900">DAZN 2 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="DiscoveryChannel.de@HD" site_id="83">Discovery HD</channel>
<channel site="sky.de" lang="de" xmltv_id="Heimatkanal.de" site_id="72">Heimatkanal</channel>
<channel site="sky.de" lang="de" xmltv_id="History.de@HD" site_id="86">HISTORY Channel HD</channel>
<channel site="sky.de" lang="de" xmltv_id="Jukebox.de" site_id="452">Jukebox</channel>
<channel site="sky.de" lang="de" xmltv_id="Motorvision.de" site_id="52">Motorvision+</channel>
<channel site="sky.de" lang="de" xmltv_id="NickJr.de" site_id="783">Nick Jr.</channel>
<channel site="sky.de" lang="de" xmltv_id="Nicktoons.de" site_id="798">Nicktoons</channel>
<channel site="sky.de" lang="de" xmltv_id="RomanceTV.de@HD" site_id="16">Romance TV HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyAtlantic.de@HD" site_id="2">Sky Atlantic HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaAction.de@HD" site_id="60">Sky Cinema Action HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaBestOf.de@HD" site_id="792">Sky Cinema Best Of HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaClassics.de@HD" site_id="1043">Sky Cinema Classics HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaFamily.de@HD" site_id="533">Sky Cinema Family HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaFun.de@HD" site_id="1040">Sky Cinema Fun HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaPremieren.de@HD" site_id="788">Sky Cinema Premieren HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaPremieren.de@Plus24HD" site_id="791">Sky Cinema Premieren +24 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaSpecial.de@HD" site_id="890">Sky Cinema Special HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCinemaThriller.de@HD" site_id="784">Sky Cinema Thriller HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyCrime.de@HD" site_id="855">Sky Crime HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyDocumentaries.de@HD" site_id="876">Sky Documentaries HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyKrimi.de@HD" site_id="753">Sky Krimi HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyNature.de@HD" site_id="875">Sky Nature HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyOne.de@HD" site_id="535">Sky One HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyReplay.de@HD" site_id="888">Sky Replay HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkyShowcase.de@HD" site_id="1019">Sky Showcase HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport10.de@HD" site_id="999">Sky Sport 10 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport1.de@HD" site_id="130">Sky Sport 1 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport2.de@HD" site_id="131">Sky Sport 2 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport3.de@HD" site_id="132">Sky Sport 3 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport4.de@HD" site_id="133">Sky Sport 4 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport5.de@HD" site_id="134">Sky Sport 5 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport6.de@HD" site_id="135">Sky Sport 6 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport7.de@HD" site_id="136">Sky Sport 7 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport8.de@HD" site_id="137">Sky Sport 8 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport9.de@HD" site_id="138">Sky Sport 9 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportAustria1.at@HD" site_id="492">Sky Sport Austria 1 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportAustria2.at@HD" site_id="729">Sky Sport Austria 2 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportAustria3.at@HD" site_id="730">Sky Sport Austria 3 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportAustria4.at@HD" site_id="898">Sky Sport Austria 4 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportAustria5.at@HD" site_id="883">Sky Sport Austria 5 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportAustria6.at@HD" site_id="884">Sky Sport Austria 6 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportAustria7.at@HD" site_id="885">Sky Sport Austria 7 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga10.de@HD" site_id="998">Sky Sport Bundesliga 10 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga1.de@HD" site_id="119">Sky Sport Bundesliga 1 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga2.de@HD" site_id="120">Sky Sport Bundesliga 2 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga3.de@HD" site_id="121">Sky Sport Bundesliga 3 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga4.de@HD" site_id="122">Sky Sport Bundesliga 4 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga5.de@HD" site_id="123">Sky Sport Bundesliga 5 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga6.de@HD" site_id="124">Sky Sport Bundesliga 6 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga7.de@HD" site_id="125">Sky Sport Bundesliga 7 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga8.de@HD" site_id="126">Sky Sport Bundesliga 8 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga9.de@HD" site_id="127">Sky Sport Bundesliga 9 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga.de@HD" site_id="1018">Sky Sport Bundesliga HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportBundesliga.de@UHD" site_id="531">Sky Sport Bundesliga UHD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportF1.de@HD" site_id="853">Sky Sport F1 HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportGolf.de@HD" site_id="1002">Sky Sport Golf HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportMix.de@HD" site_id="1005">Sky Sport Mix HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportNews.de@HD" site_id="17">Sky Sport News HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportPremierLeague.de@HD" site_id="1000">Sky Sport Premier League HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportTennis.de@HD" site_id="1012">Sky Sport Tennis HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySportTopEvent.de@HD" site_id="1014">Sky Sport Top Event HD</channel>
<channel site="sky.de" lang="de" xmltv_id="SkySport.de@UHD" site_id="526">Sky Sport UHD</channel>
<channel site="sky.de" lang="de" xmltv_id="SYFY.de@HD" site_id="115">SYFY HD</channel>
<channel site="sky.de" lang="de" xmltv_id="UniversalTV.de@HD" site_id="172">Universal TV HD</channel>
<channel site="sky.de" lang="de" xmltv_id="WarnerTVComedy.de@HD" site_id="522">Warner TV Comedy HD</channel>
<channel site="sky.de" lang="de" xmltv_id="WarnerTVFilm.de" site_id="762">Warner TV Film</channel>
<channel site="sky.de" lang="de" xmltv_id="WarnerTVFilm.de@HD" site_id="689">Warner TV Film HD</channel>
<channel site="sky.de" lang="de" xmltv_id="WarnerTVSerie.de@HD" site_id="6">Warner TV Serie HD</channel>
</channels>

View File

@@ -1,78 +1,78 @@
const dayjs = require('dayjs')
module.exports = {
site: 'sky.de',
days: 2,
url: 'https://www.sky.de/sgtvg/service/getBroadcastsForGrid',
request: {
method: 'POST',
headers: {
'accept-language': 'en-GB',
'accept-encoding': 'gzip, deflate, br',
accept: 'application/json'
},
data: function ({ channel, date }) {
return {
cil: [channel.site_id],
d: date.valueOf()
}
}
},
parser: function ({ content, channel }) {
const programs = []
const items = parseItems(content, channel)
items.forEach(item => {
programs.push({
title: item.et,
description: item.epit,
category: item.ec,
start: dayjs(item.bsdt),
stop: dayjs(item.bedt),
season: item.sn,
episode: item.en,
image: item.pu ? `http://sky.de${item.pu}` : null
})
})
return programs
},
async channels() {
const axios = require('axios')
const data = await axios
.post(
'https://www.sky.de/sgtvg/service/getChannelList',
{ dom: 'de', s: 0, feed: 1 },
{
headers: {
'Content-Type': 'application/json',
Referer: 'https://www.sky.de/tvguide-7599',
'X-Requested-With': 'XMLHttpRequest'
}
}
)
.then(r => r.data)
.catch(console.log)
let channels = []
data.cl.forEach(item => {
channels.push({
lang: 'de',
name: item.cn,
site_id: item.ci
})
})
return channels
}
}
function parseContent(content, channel) {
const json = JSON.parse(content)
if (!Array.isArray(json.cl)) return null
return json.cl.find(i => i.ci == channel.site_id)
}
function parseItems(content, channel) {
const data = parseContent(content, channel)
return data && Array.isArray(data.el) ? data.el : []
}
const dayjs = require('dayjs')
module.exports = {
site: 'sky.de',
days: 2,
url: 'https://www.sky.de/sgtvg/service/getBroadcastsForGrid',
request: {
method: 'POST',
headers: {
'accept-language': 'en-GB',
'accept-encoding': 'gzip, deflate, br',
accept: 'application/json'
},
data: function ({ channel, date }) {
return {
cil: [channel.site_id],
d: date.valueOf()
}
}
},
parser: function ({ content, channel }) {
const programs = []
const items = parseItems(content, channel)
items.forEach(item => {
programs.push({
title: item.et,
description: item.epit,
category: item.ec,
start: dayjs(item.bsdt),
stop: dayjs(item.bedt),
season: item.sn,
episode: item.en,
image: item.pu ? `http://sky.de${item.pu}` : null
})
})
return programs
},
async channels() {
const axios = require('axios')
const data = await axios
.post(
'https://www.sky.de/sgtvg/service/getChannelList',
{ dom: 'de', s: 0, feed: 1 },
{
headers: {
'Content-Type': 'application/json',
Referer: 'https://www.sky.de/tvguide-7599',
'X-Requested-With': 'XMLHttpRequest'
}
}
)
.then(r => r.data)
.catch(console.log)
let channels = []
data.cl.forEach(item => {
channels.push({
lang: 'de',
name: item.cn,
site_id: item.ci
})
})
return channels
}
}
function parseContent(content, channel) {
const json = JSON.parse(content)
if (!Array.isArray(json.cl)) return null
return json.cl.find(i => i.ci == channel.site_id)
}
function parseItems(content, channel) {
const data = parseContent(content, channel)
return data && Array.isArray(data.el) ? data.el : []
}

View File

@@ -1,66 +1,66 @@
const { parser, url, request } = require('./sky.de.config.js')
const fs = require('fs')
const path = require('path')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
dayjs.extend(utc)
const date = dayjs.utc('2022-02-28', 'YYYY-MM-DD').startOf('d')
const channel = {
site_id: '522',
xmltv_id: 'WarnerTVComedyHD.de'
}
it('can generate valid url', () => {
expect(url).toBe('https://www.sky.de/sgtvg/service/getBroadcastsForGrid')
})
it('can generate valid request method', () => {
expect(request.method).toBe('POST')
})
it('can generate valid request data', () => {
expect(request.data({ channel, date })).toMatchObject({
cil: [channel.site_id],
d: date.valueOf()
})
})
it('can parse response', () => {
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'))
const result = parser({ content, channel }).map(p => {
p.start = p.start.toJSON()
p.stop = p.stop.toJSON()
return p
})
expect(result).toMatchObject([
{
title: 'King of Queens',
description: 'Der Experte',
category: 'Comedyserie',
start: '2022-02-26T23:05:00.000Z',
stop: '2022-02-26T23:30:00.000Z',
season: '4',
episode: '11',
image: 'http://sky.de/static/img/program_guide/1522936_s.jpg'
},
{
title: 'King of Queens',
description: 'Speedy Gonzales',
category: 'Comedyserie',
start: '2022-02-26T23:30:00.000Z',
stop: '2022-02-26T23:55:00.000Z',
season: '4',
episode: '12',
image: 'http://sky.de/static/img/program_guide/1522937_s.jpg'
}
])
})
it('can handle empty guide', () => {
const result = parser({
content: '[]'
})
expect(result).toMatchObject([])
})
const { parser, url, request } = require('./sky.de.config.js')
const fs = require('fs')
const path = require('path')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
dayjs.extend(utc)
const date = dayjs.utc('2022-02-28', 'YYYY-MM-DD').startOf('d')
const channel = {
site_id: '522',
xmltv_id: 'WarnerTVComedyHD.de'
}
it('can generate valid url', () => {
expect(url).toBe('https://www.sky.de/sgtvg/service/getBroadcastsForGrid')
})
it('can generate valid request method', () => {
expect(request.method).toBe('POST')
})
it('can generate valid request data', () => {
expect(request.data({ channel, date })).toMatchObject({
cil: [channel.site_id],
d: date.valueOf()
})
})
it('can parse response', () => {
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'))
const result = parser({ content, channel }).map(p => {
p.start = p.start.toJSON()
p.stop = p.stop.toJSON()
return p
})
expect(result).toMatchObject([
{
title: 'King of Queens',
description: 'Der Experte',
category: 'Comedyserie',
start: '2022-02-26T23:05:00.000Z',
stop: '2022-02-26T23:30:00.000Z',
season: '4',
episode: '11',
image: 'http://sky.de/static/img/program_guide/1522936_s.jpg'
},
{
title: 'King of Queens',
description: 'Speedy Gonzales',
category: 'Comedyserie',
start: '2022-02-26T23:30:00.000Z',
stop: '2022-02-26T23:55:00.000Z',
season: '4',
episode: '12',
image: 'http://sky.de/static/img/program_guide/1522937_s.jpg'
}
])
})
it('can handle empty guide', () => {
const result = parser({
content: '[]'
})
expect(result).toMatchObject([])
})