diff --git a/sites/sky.de/sky.de.config.js b/sites/sky.de/sky.de.config.js new file mode 100644 index 00000000..37576f4f --- /dev/null +++ b/sites/sky.de/sky.de.config.js @@ -0,0 +1,45 @@ +const dayjs = require('dayjs') + +module.exports = { + site: 'sky.de', + url: `https://www.sky.de/sgtvg/service/getBroadcastsForGrid`, + request: { + method: 'POST', + 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, + icon: item.pu ? `http://sky.de${item.pu}` : null + }) + }) + + return programs + } +} + + +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 : [] + } diff --git a/sites/sky.de/sky.de.test.js b/sites/sky.de/sky.de.test.js new file mode 100644 index 00000000..c2f85fb0 --- /dev/null +++ b/sites/sky.de/sky.de.test.js @@ -0,0 +1,55 @@ +const { parser, url } = require('./sky.de.config.js') +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: 'WarnerTVComedyDeutschlandHD.us' +} + +const content = `{"cl":[{"ci":522,"el":[{"ei":122309300,"bsdt":1645916700000,"bst":"00:05","bedt":1645918200000,"len":25,"et":"King of Queens","ec":"Comedyserie","cop":"USA","yop":2001,"fsk":"ab 0 Jahre","epit":"Der Experte","sn":"4","en":"11","pu":"/static/img/program_guide/1522936_s.jpg"},{"ei":122309301,"bsdt":1645918200000,"bst":"00:30","bedt":1645919700000,"len":25,"et":"King of Queens","ec":"Comedyserie","cop":"USA","yop":2001,"fsk":"ab 0 Jahre","epit":"Speedy Gonzales","sn":"4","en":"12","pu":"/static/img/program_guide/1522937_s.jpg"}]}]}` + + +it('can generate valid url', () => { + expect(url).toBe('https://www.sky.de/sgtvg/service/getBroadcastsForGrid') +}) + +it('can parse response', () => { + 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', + icon: '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', + icon: 'http://sky.de/static/img/program_guide/1522937_s.jpg' + } + ]) +}) + +it('can handle empty guide', () => { + const result = parser({ + content: `[]` + }) + expect(result).toMatchObject([]) + }) diff --git a/sites/sky.de/sky.de_de.channels.xml b/sites/sky.de/sky.de_de.channels.xml new file mode 100644 index 00000000..0bfcfa8f --- /dev/null +++ b/sites/sky.de/sky.de_de.channels.xml @@ -0,0 +1,123 @@ + + + + 13th Street Deutschland + Beate Uhse TV + Boomerang Deutschland + Cartoon Network Deutschland + Classica HD + Crime + Investigation Deutschland + DAZN 1 Deutschland + DAZN 2 Deutschland + Discovery Channel Deutschland + E! Europe + Eurosport 1 Germany + Eurosport 2 Germany + Eurosport360 HD 1 + Eurosport360 HD 2 + Eurosport360 HD 3 + Eurosport360 HD 4 + Eurosport360 HD 5 + Eurosport360 HD 6 + Eurosport360 HD 7 + Eurosport360 HD 8 + Eurosport360 HD 9 + Heimatkanal + History Deutschland + Jukebox + Junior + Kinowelt TV + Motorvision TV + National Geographic Deutschland + National Geographic Wild Deutschland + Nick Jr Deutschland + Nicktoons Deutschland + Romance TV Deutschland + Sky Atlantic + Sky Cinema Action + Sky Cinema Action HD + Sky Cinema Best Of + Sky Cinema Best Of HD + Sky Cinema Classics + Sky Cinema Family + Sky Cinema Family HD + Sky Cinema Fun + Sky Cinema Premieren + Sky Cinema Premieren +24 + Sky Cinema Premieren +24 HD + Sky Cinema Premieren HD + Sky Cinema Special + Sky Cinema Thriller + Sky Comedy + Sky Crime + Sky Documentaries Deutschland + Sky Krimi HD + Sky Nature Deutschland + Sky One + Sky Replay Deutschland + Sky Sport 1 + Sky Sport 10 + Sky Sport 11 + Sky Sport 2 + Sky Sport 3 + Sky Sport 4 + Sky Sport 5 + Sky Sport 6 + Sky Sport 7 + Sky Sport 8 + Sky Sport 9 + Sky Sport 1 HD + Sky Sport 10 HD + Sky Sport 11 HD + Sky Sport 2 HD + Sky Sport 3 HD + Sky Sport 4 HD + Sky Sport 5 HD + Sky Sport 6 HD + Sky Sport 7 HD + Sky Sport 8 HD + Sky Sport 9 HD + Sky Sport Austria 1 + Sky Sport Austria 2 + Sky Sport Austria 3 + Sky Sport Austria 4 + Sky Sport Austria 5 + Sky Sport Austria 6 + Sky Sport Austria 7 + Sky Sport Bundesliga 1 + Sky Sport Bundesliga 1 HD + Sky Sport Bundesliga 10 + Sky Sport Bundesliga 10 HD + Sky Sport Bundesliga 2 + Sky Sport Bundesliga 2 HD + Sky Sport Bundesliga 3 + Sky Sport Bundesliga 3 HD + Sky Sport Bundesliga 4 + Sky Sport Bundesliga 4 HD + Sky Sport Bundesliga 5 + Sky Sport Bundesliga 5 HD + Sky Sport Bundesliga 6 + Sky Sport Bundesliga 6 HD + Sky Sport Bundesliga 7 + Sky Sport Bundesliga 7 HD + Sky Sport Bundesliga 8 + Sky Sport Bundesliga 8 HD + Sky Sport Bundesliga 9 + Sky Sport Bundesliga 9 HD + Sky Sport Bundesliga UHD + Sky Sport F1 + Sky Sport News + Sky Sport UHD + Spiegel Geschichte + Spiegel Geschichte HD + Spiegel TV Wissen + Sportdigital Fussball + Syfy Deutschland + Universal TV Deutschland + Warner TV Comedy Deutschland + Warner TV Comedy Deutschland HD + Warner TV Film Deutschland + Warner TV Film Deutschland HD + Warner TV Serie Deutschland + + \ No newline at end of file