mirror of
https://github.com/iptv-org/epg
synced 2026-05-10 03:17:04 -04:00
Replace LF line endings with CRLF
This commit is contained in:
@@ -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
|
||||
```
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 : []
|
||||
}
|
||||
|
||||
@@ -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([])
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user