mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-10 00:50:09 -04:00
Create sky.com.config.js
This commit is contained in:
parent
dc5a3df414
commit
f3ab134146
3 changed files with 183 additions and 0 deletions
35
sites/sky.com/sky.com.config.js
Normal file
35
sites/sky.com/sky.com.config.js
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
const dayjs = require('dayjs')
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
site: 'sky.com',
|
||||||
|
url: function ({ date, channel }) {
|
||||||
|
return `https://epgservices.sky.com/5.2.2/api/2.0/channel/json/${channel.site_id}/${date.unix()}/86400/4`
|
||||||
|
},
|
||||||
|
logo: function ({ channel }) {
|
||||||
|
return `https://d2n0069hmnqmmx.cloudfront.net/epgdata/1.0/newchanlogos/400/160/skychb${channel.site_id}.png`
|
||||||
|
},
|
||||||
|
parser: function ({ content, date, channel }) {
|
||||||
|
const programs = []
|
||||||
|
const items = parseItems(content, channel)
|
||||||
|
|
||||||
|
items.forEach(item => {
|
||||||
|
programs.push({
|
||||||
|
title: item.t,
|
||||||
|
description: item.d,
|
||||||
|
start: dayjs.unix(item.s),
|
||||||
|
stop: dayjs.unix(item.s + item.m[1]),
|
||||||
|
icon: item.img
|
||||||
|
? `http://epgstatic.sky.com/epgdata/1.0/paimage/46/1/${item.img}`
|
||||||
|
: null
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
return programs
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseItems(content, channel) {
|
||||||
|
const data = JSON.parse(content)
|
||||||
|
|
||||||
|
return data && data.listings ? data.listings[channel.site_id] : []
|
||||||
|
}
|
59
sites/sky.com/sky.com.test.js
Normal file
59
sites/sky.com/sky.com.test.js
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
// npx epg-grabber --config=sites/sky.com/sky.com.config.js --channels=sites/sky.com/sky.com_uk.channels.xml --output=.gh-pages/guides/au/sky.com.epg.xml --days=2
|
||||||
|
|
||||||
|
const { parser, url, logo } = require('./sky.com.config.js')
|
||||||
|
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('2021-12-15', 'YYYY-MM-DD').startOf('d')
|
||||||
|
const channel = {
|
||||||
|
site_id: '2002',
|
||||||
|
xmltv_id: 'BBCOneLondon.uk'
|
||||||
|
}
|
||||||
|
const content = `{"listings":{"2002":[{"s":1639446600,"t":"Question of Sport","audioDescription":false,"m":[27170,1800,1,1,"--"],"rr":"S","subtitleHearing":true,"sid":53228,"d":"14/36. In this Christmas special, Paddy, Sam and Ugo are joined by Anton Du Beke, Shaun Wallace, Big Zuu and Jules Breach. Also in HD. [S]","img":"lisa/5.2.2/linear/channel/7f80ef03-3d8a-4f73-bf7d-6b03f410c7a8/2002"},{"s":1639448400,"t":"Weather for the Week Ahead","audioDescription":false,"m":[27171,300,1,1,"--"],"rr":"S","subtitleHearing":true,"sid":64799,"d":"Detailed weather forecast. Also in HD. [S]","img":"lisa/5.2.2/linear/channel/8fcf08b7-4081-499a-bf63-d100908e2d75/2002"}]}}`
|
||||||
|
|
||||||
|
it('can generate valid url', () => {
|
||||||
|
expect(url({ channel, date })).toBe(
|
||||||
|
'https://epgservices.sky.com/5.2.2/api/2.0/channel/json/2002/1639526400/86400/4'
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('can generate valid logo url', () => {
|
||||||
|
expect(logo({ channel })).toBe(
|
||||||
|
'https://d2n0069hmnqmmx.cloudfront.net/epgdata/1.0/newchanlogos/400/160/skychb2002.png'
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('can parse response', () => {
|
||||||
|
const result = parser({ content, channel, date }).map(p => {
|
||||||
|
p.start = p.start.toJSON()
|
||||||
|
p.stop = p.stop.toJSON()
|
||||||
|
return p
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(result).toMatchObject([
|
||||||
|
{
|
||||||
|
start: '2021-12-14T01:50:00.000Z',
|
||||||
|
stop: '2021-12-14T02:20:00.000Z',
|
||||||
|
title: 'Question of Sport',
|
||||||
|
icon: 'http://epgstatic.sky.com/epgdata/1.0/paimage/46/1/lisa/5.2.2/linear/channel/7f80ef03-3d8a-4f73-bf7d-6b03f410c7a8/2002',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
start: '2021-12-14T02:20:00.000Z',
|
||||||
|
stop: '2021-12-14T02:25:00.000Z',
|
||||||
|
title: 'Weather for the Week Ahead',
|
||||||
|
icon: 'http://epgstatic.sky.com/epgdata/1.0/paimage/46/1/lisa/5.2.2/linear/channel/8fcf08b7-4081-499a-bf63-d100908e2d75/2002',
|
||||||
|
}
|
||||||
|
])
|
||||||
|
})
|
||||||
|
|
||||||
|
it('can handle empty guide', () => {
|
||||||
|
const result = parser({
|
||||||
|
date,
|
||||||
|
channel,
|
||||||
|
content: `{"listings":{"2002":[]}}`
|
||||||
|
})
|
||||||
|
expect(result).toMatchObject([])
|
||||||
|
})
|
89
sites/sky.com/sky.com_uk.channels.xml
Normal file
89
sites/sky.com/sky.com_uk.channels.xml
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<site site="sky.com">
|
||||||
|
<channels>
|
||||||
|
<channel lang="en" xmltv_id="4Music.uk" site_id="1758">4Music</channel>
|
||||||
|
<channel lang="en" xmltv_id="4Seven.uk" site_id="3150">4seven</channel>
|
||||||
|
<channel lang="en" xmltv_id="5Select.uk" site_id="3028">5SELECT</channel>
|
||||||
|
<channel lang="en" xmltv_id="5Star.uk" site_id="3023">5STAR</channel>
|
||||||
|
<channel lang="en" xmltv_id="5USA.uk" site_id="3022">5 USA</channel>
|
||||||
|
<channel lang="en" xmltv_id="92News.pk" site_id="3822">92 News</channel>
|
||||||
|
<channel lang="en" xmltv_id="AhlulbaytTV.uk" site_id="3701">Ahlulbayt TV</channel>
|
||||||
|
<channel lang="en" xmltv_id="AkaalChannelUK.uk" site_id="5087">Akaal Channel</channel>
|
||||||
|
<channel lang="en" xmltv_id="AljazeeraEnglish.qa" site_id="1023">Al Jazeera HD</channel>
|
||||||
|
<channel lang="en" xmltv_id="BBCFour.uk" site_id="2018">BBC Four</channel>
|
||||||
|
<channel lang="en" xmltv_id="BBCNews.uk" site_id="2011">BBC NEWS</channel>
|
||||||
|
<channel lang="en" xmltv_id="BBCOne.uk" site_id="2076">BBC One HD</channel>
|
||||||
|
<channel lang="en" xmltv_id="BBCOneLondon.uk" site_id="2002">BBC One Lon</channel>
|
||||||
|
<channel lang="en" xmltv_id="BBCOneScotland.uk" site_id="2004">BBC One Scot</channel>
|
||||||
|
<channel lang="en" xmltv_id="BBCParliament.uk" site_id="2072">BBC Parliament</channel>
|
||||||
|
<channel lang="en" xmltv_id="BBCRedButton1.uk" site_id="2051">BBC RB 1</channel>
|
||||||
|
<channel lang="en" xmltv_id="BBCTwo.uk" site_id="2006">BBC Two</channel>
|
||||||
|
<channel lang="en" xmltv_id="BlazeUK.us" site_id="1065">BLAZE</channel>
|
||||||
|
<channel lang="en" xmltv_id="BoxHits.uk" site_id="1350">Box Hits</channel>
|
||||||
|
<channel lang="en" xmltv_id="BritAsiaTV.uk" site_id="3653">Brit Asia TV</channel>
|
||||||
|
<channel lang="en" xmltv_id="CBBC.uk" site_id="2020">CBBC</channel>
|
||||||
|
<channel lang="en" xmltv_id="CBeebiesUK.uk" site_id="2019">CBeebies</channel>
|
||||||
|
<channel lang="en" xmltv_id="CBSDramaUK.us" site_id="3617">CBS Drama</channel>
|
||||||
|
<channel lang="en" xmltv_id="CBSJusticeUK.us" site_id="4610">CBS Justice</channel>
|
||||||
|
<channel lang="en" xmltv_id="CBSRealityUK.us" site_id="3352">CBS Reality</channel>
|
||||||
|
<channel lang="en" xmltv_id="ChallengeUK.uk" site_id="2202">Challenge</channel>
|
||||||
|
<channel lang="en" xmltv_id="Channel5.uk" site_id="1800">Channel 5</channel>
|
||||||
|
<channel lang="en" xmltv_id="Channel5Plus1.uk" site_id="1839">Channel 5+1</channel>
|
||||||
|
<channel lang="en" xmltv_id="CITV.uk" site_id="6273">CITV</channel>
|
||||||
|
<channel lang="en" xmltv_id="CreateandCraft.uk" site_id="1245">Create&CraftHD</channel>
|
||||||
|
<channel lang="en" xmltv_id="Cruise1stTV.uk" site_id="1018">Cruise1st.tv</channel>
|
||||||
|
<channel lang="en" xmltv_id="Davejavu.uk" site_id="2320">Dave ja vu</channel>
|
||||||
|
<channel lang="en" xmltv_id="DaveUK.uk" site_id="2306">Dave</channel>
|
||||||
|
<channel lang="en" xmltv_id="DMAXUK.us" site_id="3618">DMAX</channel>
|
||||||
|
<channel lang="en" xmltv_id="DramaUK.uk" site_id="2612">Drama</channel>
|
||||||
|
<channel lang="en" xmltv_id="DramaUKPlus1.uk" site_id="1081">Drama+1</channel>
|
||||||
|
<channel lang="en" xmltv_id="E4UK.uk" site_id="1628">E4</channel>
|
||||||
|
<channel lang="en" xmltv_id="E4UKPlus1.uk" site_id="3300">E4+1</channel>
|
||||||
|
<channel lang="en" xmltv_id="EmanChannel.uk" site_id="3111">Eman Channel</channel>
|
||||||
|
<channel lang="en" xmltv_id="Film4UK.uk" site_id="1627">Film4</channel>
|
||||||
|
<channel lang="en" xmltv_id="Film4UKPlus1.uk" site_id="1629">Film4+1</channel>
|
||||||
|
<channel lang="en" xmltv_id="FoodNetworkUK.us" site_id="3590">Food Network</channel>
|
||||||
|
<channel lang="en" xmltv_id="ForcesTV.uk" site_id="5415">Forces TV</channel>
|
||||||
|
<channel lang="en" xmltv_id="FreeSports.uk" site_id="1150">FreeSports HD</channel>
|
||||||
|
<channel lang="en" xmltv_id="GemsTV.us" site_id="3010">Gems TV</channel>
|
||||||
|
<channel lang="en" xmltv_id="HGTVUK.us" site_id="2301">HGTV</channel>
|
||||||
|
<channel lang="en" xmltv_id="HorrorChannelUK.uk" site_id="3605">horror channel</channel>
|
||||||
|
<channel lang="en" xmltv_id="IdealExtra.uk" site_id="5740">Ideal Extra</channel>
|
||||||
|
<channel lang="en" xmltv_id="IdealWorld.uk" site_id="1244">Ideal World HD</channel>
|
||||||
|
<channel lang="en" xmltv_id="ITV2.uk" site_id="6240">ITV2</channel>
|
||||||
|
<channel lang="en" xmltv_id="ITV2Plus1.uk" site_id="6241">ITV2+1</channel>
|
||||||
|
<channel lang="en" xmltv_id="ITV3.uk" site_id="6260">ITV3</channel>
|
||||||
|
<channel lang="en" xmltv_id="ITV3Plus1.uk" site_id="6261">ITV3+1</channel>
|
||||||
|
<channel lang="en" xmltv_id="ITV4.uk" site_id="6272">ITV4</channel>
|
||||||
|
<channel lang="en" xmltv_id="ITV4Plus1.uk" site_id="6274">ITV4+1</channel>
|
||||||
|
<channel lang="en" xmltv_id="ITVBe.uk" site_id="6508">ITVBe</channel>
|
||||||
|
<channel lang="en" xmltv_id="ITVLondon.uk" site_id="6000">ITV</channel>
|
||||||
|
<channel lang="en" xmltv_id="JewelleryMaker.uk" site_id="3354">JewelleryMaker</channel>
|
||||||
|
<channel lang="en" xmltv_id="KanshiTV.uk" site_id="3753">Kanshi TV</channel>
|
||||||
|
<channel lang="en" xmltv_id="LondonLive.uk" site_id="5090">London Live</channel>
|
||||||
|
<channel lang="en" xmltv_id="More4UK.uk" site_id="3340">More4</channel>
|
||||||
|
<channel lang="en" xmltv_id="Now80s.uk" site_id="3682">NOW 80s</channel>
|
||||||
|
<channel lang="en" xmltv_id="ParamountNetworkUK.us" site_id="1036">Paramount</channel>
|
||||||
|
<channel lang="en" xmltv_id="PBSAmerica.us" site_id="5500">PBS America</channel>
|
||||||
|
<channel lang="en" xmltv_id="PickUK.uk" site_id="1832">Pick</channel>
|
||||||
|
<channel lang="en" xmltv_id="Pop.uk" site_id="3750">POP</channel>
|
||||||
|
<channel lang="en" xmltv_id="QuestRedUK.us" site_id="2411">Quest Red</channel>
|
||||||
|
<channel lang="en" xmltv_id="QuestRedUKPlus1.us" site_id="4547">Quest Red+1</channel>
|
||||||
|
<channel lang="en" xmltv_id="QVCBeauty.us" site_id="4105">QVC Beauty</channel>
|
||||||
|
<channel lang="en" xmltv_id="QVCStyleUK.us" site_id="4410">QVC Style</channel>
|
||||||
|
<channel lang="en" xmltv_id="RacingTV.uk" site_id="3636">Racing TV</channel>
|
||||||
|
<channel lang="en" xmltv_id="ReallyUK.uk" site_id="2325">Really</channel>
|
||||||
|
<channel lang="en" xmltv_id="RTUK.ru" site_id="3213">RT</channel>
|
||||||
|
<channel lang="en" xmltv_id="SangatTV.uk" site_id="3355">Sangat</channel>
|
||||||
|
<channel lang="en" xmltv_id="SkyArtsUK.uk" site_id="1752">Sky Arts</channel>
|
||||||
|
<channel lang="en" xmltv_id="SmithsonianChannelUK.us" site_id="1089">Smithsonian</channel>
|
||||||
|
<channel lang="en" xmltv_id="SpotlightTV.uk" site_id="4933">Spotlight TV</channel>
|
||||||
|
<channel lang="en" xmltv_id="TalkingPicturesTV.uk" site_id="5252">TalkingPictures</channel>
|
||||||
|
<channel lang="en" xmltv_id="TBNUK.us" site_id="3109">TBN UK</channel>
|
||||||
|
<channel lang="en" xmltv_id="TinyPop.uk" site_id="3780">Tiny Pop</channel>
|
||||||
|
<channel lang="en" xmltv_id="TJC.uk" site_id="1033">TJC</channel>
|
||||||
|
<channel lang="en" xmltv_id="TogetherTV.uk" site_id="1872">Together</channel>
|
||||||
|
<channel lang="en" xmltv_id="Yesterday.uk" site_id="2305">YESTERDAY</channel>
|
||||||
|
<channel lang="en" xmltv_id="YesterdayPlus1.uk" site_id="2615">YESTERDAY+1</channel>
|
||||||
|
</channels>
|
||||||
|
</site>
|
Loading…
Add table
Add a link
Reference in a new issue