fix sky.nz and add new channels for sky.com

This commit is contained in:
theofficialomega
2025-12-15 00:45:10 +01:00
parent 78c7a13104
commit 0f506fb52f
5 changed files with 28471 additions and 756 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,42 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<channels> <channels>
<channel site="sky.co.nz" site_id="1" lang="en" xmltv_id="TVNZ1.nz@SD">One</channel> <channel site="sky.co.nz" site_id="207" lang="en" xmltv_id="">BBC First</channel>
<channel site="sky.co.nz" site_id="2" lang="en" xmltv_id="TVNZ2.nz@SD">TV2</channel> <channel site="sky.co.nz" site_id="600" lang="en" xmltv_id="">SKY Sport Popup 1</channel>
<channel site="sky.co.nz" site_id="3" lang="en" xmltv_id="Three.nz@SD">Three</channel> <channel site="sky.co.nz" site_id="601" lang="en" xmltv_id="">SKY Sport Popup 2</channel>
<channel site="sky.co.nz" site_id="4" lang="en" xmltv_id="SkyOpen.nz@SD">Prime TV</channel> <channel site="sky.co.nz" site_id="90" lang="en" xmltv_id="AlJazeera.qa@English">Al Jazeera</channel>
<channel site="sky.co.nz" site_id="5" lang="en" xmltv_id="Sky5.nz@SD">Sky 5</channel> <channel site="sky.co.nz" site_id="76" lang="en" xmltv_id="AnimalPlanet.au@SD">Animal Planet</channel>
<channel site="sky.co.nz" site_id="6" lang="en" xmltv_id="Vibe.nz@SD">Vibe</channel> <channel site="sky.co.nz" site_id="74" lang="en" xmltv_id="BBCEarth.uk@NewZealand">BBC Earth</channel>
<channel site="sky.co.nz" site_id="89" lang="en" xmltv_id="BBCNews.uk@AsiaPacific">BBC World News</channel>
<channel site="sky.co.nz" site_id="7" lang="en" xmltv_id="BBCUKTV.au@NewZealand">UKTV</channel> <channel site="sky.co.nz" site_id="7" lang="en" xmltv_id="BBCUKTV.au@NewZealand">UKTV</channel>
<channel site="sky.co.nz" site_id="8" lang="en" xmltv_id="JONES.nz@SD">JONES!</channel> <channel site="sky.co.nz" site_id="512" lang="en" xmltv_id="Bravo.nz@Plus1">BRAVO Plus 1</channel>
<channel site="sky.co.nz" site_id="9" lang="en" xmltv_id="SkyBoxSets.nz@SD">SKY BOX SETS</channel>
<channel site="sky.co.nz" site_id="10" lang="en" xmltv_id="SoHo.nz@SD">SoHo</channel>
<channel site="sky.co.nz" site_id="11" lang="en" xmltv_id="ComedyCentral.au@SD">Comedy Central</channel>
<channel site="sky.co.nz" site_id="12" lang="en" xmltv_id="Bravo.nz@SD">BRAVO</channel> <channel site="sky.co.nz" site_id="12" lang="en" xmltv_id="Bravo.nz@SD">BRAVO</channel>
<channel site="sky.co.nz" site_id="102" lang="en" xmltv_id="CartoonNetwork.au@Australia">Cartoon Network</channel>
<channel site="sky.co.nz" site_id="103" lang="en" xmltv_id="CBeebies.au@SD">CBeebies</channel>
<channel site="sky.co.nz" site_id="310" lang="en" xmltv_id="CGTN.cn@SD">CGTN</channel>
<channel site="sky.co.nz" site_id="309" lang="en" xmltv_id="CGTNDocumentary.cn@SD">CGTN</channel>
<channel site="sky.co.nz" site_id="91" lang="en" xmltv_id="CNBCAustralia.au@SD">CNBC</channel>
<channel site="sky.co.nz" site_id="87" lang="en" xmltv_id="CNNInternational.us@AsiaPacific">CNN International</channel>
<channel site="sky.co.nz" site_id="151" lang="en" xmltv_id="ColorsAsiaPacific.in@SD">Colors</channel>
<channel site="sky.co.nz" site_id="11" lang="en" xmltv_id="ComedyCentral.au@SD">Comedy Central</channel>
<channel site="sky.co.nz" site_id="81" lang="en" xmltv_id="CountryTV.nz@SD">Country TV</channel>
<channel site="sky.co.nz" site_id="71" lang="en" xmltv_id="CrimePlusInvestigation.au@SD">Real Crime</channel>
<channel site="sky.co.nz" site_id="202" lang="en" xmltv_id="DaystarTV.us@SD">Daystar TV Network</channel>
<channel site="sky.co.nz" site_id="70" lang="en" xmltv_id="DiscoveryChannel.nz@SD">Discovery Channel</channel>
<channel site="sky.co.nz" site_id="75" lang="en" xmltv_id="DiscoveryTurbo.au@NewZealand">Discovery Turbo</channel>
<channel site="sky.co.nz" site_id="505" lang="en" xmltv_id="eden.nz@Plus1">eden +1</channel>
<channel site="sky.co.nz" site_id="13" lang="en" xmltv_id="eden.nz@SD">eden</channel> <channel site="sky.co.nz" site_id="13" lang="en" xmltv_id="eden.nz@SD">eden</channel>
<channel site="sky.co.nz" site_id="15" lang="en" xmltv_id="MTV.nz@SD">MTV</channel> <channel site="sky.co.nz" site_id="61" lang="en" xmltv_id="ESPN2.au@SD">ESPN2</channel>
<channel site="sky.co.nz" site_id="16" lang="en" xmltv_id="TLC.nz@SD">TLC</channel> <channel site="sky.co.nz" site_id="60" lang="en" xmltv_id="ESPN.au@SD">ESPN</channel>
<channel site="sky.co.nz" site_id="17" lang="en" xmltv_id="Living.nz@SD">Living Channel</channel> <channel site="sky.co.nz" site_id="83" lang="en" xmltv_id="FaceTV.nz@SD">FACE TV</channel>
<channel site="sky.co.nz" site_id="18" lang="en" xmltv_id="InvestigationDiscovery.au@SD">Investigation Discovery</channel> <channel site="sky.co.nz" site_id="206" lang="en" xmltv_id="Firstlight.nz@SD">Firstlight</channel>
<channel site="sky.co.nz" site_id="19" lang="en" xmltv_id="WhakaataMaori.nz@SD">Maori Television</channel> <channel site="sky.co.nz" site_id="88" lang="en" xmltv_id="FoxNewsChannel.us@SD">Fox News</channel>
<channel site="sky.co.nz" site_id="20" lang="en" xmltv_id="SkyArts.nz@SD">SKY ARTS</channel>
<channel site="sky.co.nz" site_id="21" lang="en" xmltv_id="HGTV.nz@SD">HGTV</channel> <channel site="sky.co.nz" site_id="21" lang="en" xmltv_id="HGTV.nz@SD">HGTV</channel>
<channel site="sky.co.nz" site_id="22" lang="en" xmltv_id="MTVHits.nz@SD">MTV Hits</channel> <channel site="sky.co.nz" site_id="73" lang="en" xmltv_id="History.au@SD">Real History</channel>
<channel site="sky.co.nz" site_id="23" lang="en" xmltv_id="TVNZDUKE.nz@SD">DUKE</channel> <channel site="sky.co.nz" site_id="204" lang="en" xmltv_id="HopeChannelNewZealand.nz@SD">Hope Channel</channel>
<channel site="sky.co.nz" site_id="24" lang="en" xmltv_id="Rush.nz@SD">Rush</channel> <channel site="sky.co.nz" site_id="18" lang="en" xmltv_id="InvestigationDiscovery.au@SD">Investigation Discovery</channel>
<channel site="sky.co.nz" site_id="25" lang="en" xmltv_id="TheShoppingChannel.nz@SD">The Shopping Channel</channel> <channel site="sky.co.nz" site_id="8" lang="en" xmltv_id="JONES.nz@SD">Jones!</channel>
<channel site="sky.co.nz" site_id="30" lang="en" xmltv_id="SkyMoviesPremiere.nz@SD">SKY Movies Premiere</channel> <channel site="sky.co.nz" site_id="17" lang="en" xmltv_id="Living.nz@SD">Living Channel</channel>
<channel site="sky.co.nz" site_id="31" lang="en" xmltv_id="SkyMoviesComedy.nz@SD">SKY Movies Comedy</channel> <channel site="sky.co.nz" site_id="15" lang="en" xmltv_id="MTV.nz@SD">MTV</channel>
<channel site="sky.co.nz" site_id="32" lang="en" xmltv_id="SkyMoviesAction.nz@SD">SKY Movies Action</channel> <channel site="sky.co.nz" site_id="22" lang="en" xmltv_id="MTVHits.nz@SD">MTV Music</channel>
<channel site="sky.co.nz" site_id="33" lang="en" xmltv_id="SkyMoviesGreats.nz@SD">SKY Movies Greats</channel> <channel site="sky.co.nz" site_id="101" lang="en" xmltv_id="Nickelodeon.au@SD">Nick</channel>
<channel site="sky.co.nz" site_id="34" lang="en" xmltv_id="SkyMoviesClassics.nz@SD">SKY Movies Classic</channel> <channel site="sky.co.nz" site_id="104" lang="en" xmltv_id="NickJr.au@SD">nick jr.</channel>
<channel site="sky.co.nz" site_id="35" lang="en" xmltv_id="SkyMoviesCollection.nz@SD">SKY Movies Collection</channel> <channel site="sky.co.nz" site_id="100" lang="en" xmltv_id="NickMusic.au@SD">Nick Music</channel>
<channel site="sky.co.nz" site_id="36" lang="en" xmltv_id="SkyMoviesFamily.nz@SD">SKY Movies Family</channel> <channel site="sky.co.nz" site_id="86" lang="en" xmltv_id="ParliamentTV.nz@SD">Parliament TV</channel>
<channel site="sky.co.nz" site_id="39" lang="en" xmltv_id="Rialto.nz@SD">Rialto</channel> <channel site="sky.co.nz" site_id="39" lang="en" xmltv_id="Rialto.nz@SD">Rialto</channel>
<channel site="sky.co.nz" site_id="24" lang="en" xmltv_id="Rush.nz@SD">Rush</channel>
<channel site="sky.co.nz" site_id="203" lang="en" xmltv_id="SBNTV.au@SD">SBN</channel>
<channel site="sky.co.nz" site_id="201" lang="en" xmltv_id="ShineTV.nz@SD">Shine TV</channel>
<channel site="sky.co.nz" site_id="5" lang="en" xmltv_id="Sky5.nz@SD">Sky 5</channel>
<channel site="sky.co.nz" site_id="65" lang="en" xmltv_id="SkyArena.nz@SD">SKY Arena</channel>
<channel site="sky.co.nz" site_id="20" lang="en" xmltv_id="SkyArts.nz@SD">Arts Channel</channel>
<channel site="sky.co.nz" site_id="40" lang="en" xmltv_id="SkyBoxOffice040.nz@SD">SKY Box Office</channel> <channel site="sky.co.nz" site_id="40" lang="en" xmltv_id="SkyBoxOffice040.nz@SD">SKY Box Office</channel>
<channel site="sky.co.nz" site_id="41" lang="en" xmltv_id="SkyBoxOffice041.nz@SD">SKY Box Office 041</channel> <channel site="sky.co.nz" site_id="41" lang="en" xmltv_id="SkyBoxOffice041.nz@SD">SKY Box Office 041</channel>
<channel site="sky.co.nz" site_id="42" lang="en" xmltv_id="SkyBoxOffice042.nz@SD">SKY Box Office 042</channel> <channel site="sky.co.nz" site_id="42" lang="en" xmltv_id="SkyBoxOffice042.nz@SD">SKY Box Office 042</channel>
<channel site="sky.co.nz" site_id="43" lang="en" xmltv_id="SkyBoxOffice043.nz@SD">SKY Box Office 043</channel> <channel site="sky.co.nz" site_id="43" lang="en" xmltv_id="SkyBoxOffice043.nz@SD">SKY Box Office 043</channel>
<channel site="sky.co.nz" site_id="50" lang="en" xmltv_id="SkySportSelect.nz@SD">SKY Sport Select</channel> <channel site="sky.co.nz" site_id="32" lang="en" xmltv_id="SkyMoviesAction.nz@SD">Action Movies</channel>
<channel site="sky.co.nz" site_id="34" lang="en" xmltv_id="SkyMoviesClassics.nz@SD">Classic Movies</channel>
<channel site="sky.co.nz" site_id="31" lang="en" xmltv_id="SkyMoviesComedy.nz@SD">Comedy Movies</channel>
<channel site="sky.co.nz" site_id="36" lang="en" xmltv_id="SkyMoviesFamily.nz@SD">Family Movies</channel>
<channel site="sky.co.nz" site_id="33" lang="en" xmltv_id="SkyMoviesGreats.nz@SD">Great Movies</channel>
<channel site="sky.co.nz" site_id="30" lang="en" xmltv_id="SkyMoviesPremiere.nz@SD">Premiere Movies</channel>
<channel site="sky.co.nz" site_id="85" lang="en" xmltv_id="SkyNewsNewZealand.nz@SD">SKY NEWS</channel>
<channel site="sky.co.nz" site_id="514" lang="en" xmltv_id="SkyOpen.nz@Plus1">Sky Open +1</channel>
<channel site="sky.co.nz" site_id="4" lang="en" xmltv_id="SkyOpen.nz@SD">Sky Open</channel>
<channel site="sky.co.nz" site_id="51" lang="en" xmltv_id="SkySport1.nz@SD">SKY Sport 1</channel> <channel site="sky.co.nz" site_id="51" lang="en" xmltv_id="SkySport1.nz@SD">SKY Sport 1</channel>
<channel site="sky.co.nz" site_id="52" lang="en" xmltv_id="SkySport2.nz@SD">SKY Sport 2</channel> <channel site="sky.co.nz" site_id="52" lang="en" xmltv_id="SkySport2.nz@SD">SKY Sport 2</channel>
<channel site="sky.co.nz" site_id="53" lang="en" xmltv_id="SkySport3.nz@SD">SKY Sport 3</channel> <channel site="sky.co.nz" site_id="53" lang="en" xmltv_id="SkySport3.nz@SD">SKY Sport 3</channel>
@@ -46,69 +71,24 @@
<channel site="sky.co.nz" site_id="57" lang="en" xmltv_id="SkySport7.nz@SD">SKY Sport 7</channel> <channel site="sky.co.nz" site_id="57" lang="en" xmltv_id="SkySport7.nz@SD">SKY Sport 7</channel>
<channel site="sky.co.nz" site_id="58" lang="en" xmltv_id="SkySport8.nz@SD">SKY Sport 8</channel> <channel site="sky.co.nz" site_id="58" lang="en" xmltv_id="SkySport8.nz@SD">SKY Sport 8</channel>
<channel site="sky.co.nz" site_id="59" lang="en" xmltv_id="SkySport9.nz@SD">SKY Sport 9</channel> <channel site="sky.co.nz" site_id="59" lang="en" xmltv_id="SkySport9.nz@SD">SKY Sport 9</channel>
<channel site="sky.co.nz" site_id="60" lang="en" xmltv_id="ESPN.au@SD">ESPN</channel> <channel site="sky.co.nz" site_id="50" lang="en" xmltv_id="SkySportSelect.nz@SD">SKY Sport Select</channel>
<channel site="sky.co.nz" site_id="61" lang="en" xmltv_id="ESPN2.au@SD">ESPN2</channel> <channel site="sky.co.nz" site_id="10" lang="en" xmltv_id="SoHo.nz@SD">HBO</channel>
<channel site="sky.co.nz" site_id="152" lang="en" xmltv_id="StarGold.in@SD">Star Gold</channel>
<channel site="sky.co.nz" site_id="150" lang="en" xmltv_id="StarPlus.in@SD">Star Plus Hindi</channel>
<channel site="sky.co.nz" site_id="62" lang="en" xmltv_id="TABTrackside1.nz@SD">TAB Trackside 1</channel> <channel site="sky.co.nz" site_id="62" lang="en" xmltv_id="TABTrackside1.nz@SD">TAB Trackside 1</channel>
<channel site="sky.co.nz" site_id="63" lang="en" xmltv_id="TABTrackside2.nz@SD">TAB Trackside 2</channel> <channel site="sky.co.nz" site_id="63" lang="en" xmltv_id="TABTrackside2.nz@SD">TAB Trackside 2</channel>
<channel site="sky.co.nz" site_id="65" lang="en" xmltv_id="SkyArena.nz@SD">SKY Arena</channel>
<channel site="sky.co.nz" site_id="70" lang="en" xmltv_id="DiscoveryChannel.nz@SD">Discovery Channel</channel>
<channel site="sky.co.nz" site_id="71" lang="en" xmltv_id="CrimePlusInvestigation.au@SD">Crime + Investigation</channel>
<channel site="sky.co.nz" site_id="72" lang="en" xmltv_id="NationalGeographic.au@SD">National Geographic</channel>
<channel site="sky.co.nz" site_id="73" lang="en" xmltv_id="History.au@SD">History</channel>
<channel site="sky.co.nz" site_id="74" lang="en" xmltv_id="BBCEarth.uk@NewZealand">BBC Earth</channel>
<channel site="sky.co.nz" site_id="75" lang="en" xmltv_id="DiscoveryTurbo.au@NewZealand">Discovery Turbo</channel>
<channel site="sky.co.nz" site_id="76" lang="en" xmltv_id="AnimalPlanet.au@SD">Animal Planet</channel>
<channel site="sky.co.nz" site_id="81" lang="en" xmltv_id="CountryTV.nz@SD">Country TV</channel>
<channel site="sky.co.nz" site_id="82" lang="en" xmltv_id="TeReo.nz@SD">Te Reo</channel> <channel site="sky.co.nz" site_id="82" lang="en" xmltv_id="TeReo.nz@SD">Te Reo</channel>
<channel site="sky.co.nz" site_id="83" lang="en" xmltv_id="FaceTV.nz@SD">Face TV</channel>
<channel site="sky.co.nz" site_id="85" lang="en" xmltv_id="SkyNewsNewZealand.nz@SD">SKY NEWS</channel>
<channel site="sky.co.nz" site_id="86" lang="en" xmltv_id="ParliamentTV.nz@SD">Parliament TV</channel>
<channel site="sky.co.nz" site_id="87" lang="en" xmltv_id="CNNInternational.us@AsiaPacific">CNN International</channel>
<channel site="sky.co.nz" site_id="88" lang="en" xmltv_id="FoxNewsChannel.us@SD">Fox News</channel>
<channel site="sky.co.nz" site_id="89" lang="en" xmltv_id="BBCNews.uk@AsiaPacific">BBC World News</channel>
<channel site="sky.co.nz" site_id="90" lang="en" xmltv_id="AlJazeera.qa@English">Al Jazeera</channel>
<channel site="sky.co.nz" site_id="91" lang="en" xmltv_id="CNBCAustralia.au@SD">CNBC</channel>
<channel site="sky.co.nz" site_id="100" lang="en" xmltv_id="NickMusic.au@SD">Nick Music</channel>
<channel site="sky.co.nz" site_id="101" lang="en" xmltv_id="Nickelodeon.au@SD">Nick</channel>
<channel site="sky.co.nz" site_id="102" lang="en" xmltv_id="CartoonNetwork.au@Australia">Cartoon Network</channel>
<channel site="sky.co.nz" site_id="103" lang="en" xmltv_id="CBeebies.au@SD">CBeebies</channel>
<channel site="sky.co.nz" site_id="104" lang="en" xmltv_id="NickJr.au@SD">nick jr.</channel>
<channel site="sky.co.nz" site_id="150" lang="en" xmltv_id="StarPlus.in@SD">Star Plus Hindi</channel>
<channel site="sky.co.nz" site_id="151" lang="en" xmltv_id="ColorsAsiaPacific.in@SD">Colors</channel>
<channel site="sky.co.nz" site_id="152" lang="en" xmltv_id="StarGold.in@SD">Star Gold</channel>
<channel site="sky.co.nz" site_id="160" lang="en" xmltv_id="TheFilipinoChannelAsia.us@SD">The Filipino Channel</channel> <channel site="sky.co.nz" site_id="160" lang="en" xmltv_id="TheFilipinoChannelAsia.us@SD">The Filipino Channel</channel>
<channel site="sky.co.nz" site_id="201" lang="en" xmltv_id="ShineTV.nz@SD">Shine TV</channel> <channel site="sky.co.nz" site_id="503" lang="en" xmltv_id="Three.nz@Plus1">ThreePlus1</channel>
<channel site="sky.co.nz" site_id="202" lang="en" xmltv_id="DaystarTV.us@SD">Daystar TV Network</channel> <channel site="sky.co.nz" site_id="3" lang="en" xmltv_id="Three.nz@SD">Three</channel>
<channel site="sky.co.nz" site_id="203" lang="en" xmltv_id="SBNTV.au@SD">SBN</channel> <channel site="sky.co.nz" site_id="16" lang="en" xmltv_id="TLC.nz@SD">TLC</channel>
<channel site="sky.co.nz" site_id="204" lang="en" xmltv_id="HopeChannelNewZealand.nz@SD">Hope Channel</channel> <channel site="sky.co.nz" site_id="501" lang="en" xmltv_id="TVNZ1.nz@Plus1">One Plus 1</channel>
<channel site="sky.co.nz" site_id="206" lang="en" xmltv_id="Firstlight.nz@SD">Firstlight</channel> <channel site="sky.co.nz" site_id="1" lang="en" xmltv_id="TVNZ1.nz@SD">One</channel>
<channel site="sky.co.nz" site_id="208" lang="en" xmltv_id="JONEStoo.nz@SD">JONES! too</channel> <channel site="sky.co.nz" site_id="502" lang="en" xmltv_id="TVNZ2.nz@Plus1">TV2 + 1</channel>
<channel site="sky.co.nz" site_id="2" lang="en" xmltv_id="TVNZ2.nz@SD">TV2</channel>
<channel site="sky.co.nz" site_id="504" lang="en" xmltv_id="TVNZDUKE.nz@Plus1">DukePlus1</channel>
<channel site="sky.co.nz" site_id="23" lang="en" xmltv_id="TVNZDUKE.nz@SD">DUKE</channel>
<channel site="sky.co.nz" site_id="210" lang="en" xmltv_id="UniversalTV.nz@SD">UniversalTV</channel> <channel site="sky.co.nz" site_id="210" lang="en" xmltv_id="UniversalTV.nz@SD">UniversalTV</channel>
<channel site="sky.co.nz" site_id="309" lang="en" xmltv_id="CGTNDocumentary.cn@SD">CGTN Documentary</channel> <channel site="sky.co.nz" site_id="6" lang="en" xmltv_id="Vibe.nz@SD">Vibe</channel>
<channel site="sky.co.nz" site_id="310" lang="en" xmltv_id="CGTN.cn@SD">CGTN</channel> <channel site="sky.co.nz" site_id="19" lang="en" xmltv_id="WhakaataMaori.nz@SD">Maori Television</channel>
<channel site="sky.co.nz" site_id="501" lang="en" xmltv_id="TVNZ1.nz@Plus1">One +1</channel>
<channel site="sky.co.nz" site_id="502" lang="en" xmltv_id="TVNZ2.nz@Plus1">TV2 +1</channel>
<channel site="sky.co.nz" site_id="503" lang="en" xmltv_id="Three.nz@Plus1">Three +1</channel>
<channel site="sky.co.nz" site_id="504" lang="en" xmltv_id="TVNZDUKE.nz@Plus1">DUKE +1</channel>
<channel site="sky.co.nz" site_id="505" lang="en" xmltv_id="eden.nz@Plus1">eden +1</channel>
<channel site="sky.co.nz" site_id="512" lang="en" xmltv_id="Bravo.nz@Plus1">BRAVO +1</channel>
<channel site="sky.co.nz" site_id="514" lang="en" xmltv_id="SkyOpen.nz@Plus1">Prime +1</channel>
<channel site="sky.co.nz" site_id="600" lang="en" xmltv_id="">SKY Sport Popup 1</channel>
<channel site="sky.co.nz" site_id="601" lang="en" xmltv_id="">SKY Sport Popup 2</channel>
<channel site="sky.co.nz" site_id="605" lang="en" xmltv_id="">Rod Laver Arena</channel>
<channel site="sky.co.nz" site_id="606" lang="en" xmltv_id="">Margaret Court Arena</channel>
<channel site="sky.co.nz" site_id="607" lang="en" xmltv_id="">John Cain Arena</channel>
<channel site="sky.co.nz" site_id="608" lang="en" xmltv_id="">Kia Arena</channel>
<channel site="sky.co.nz" site_id="609" lang="en" xmltv_id="">1573 Arena</channel>
<channel site="sky.co.nz" site_id="610" lang="en" xmltv_id="">Court 3</channel>
<channel site="sky.co.nz" site_id="611" lang="en" xmltv_id="">Court 5</channel>
<channel site="sky.co.nz" site_id="612" lang="en" xmltv_id="">Court 6</channel>
<channel site="sky.co.nz" site_id="613" lang="en" xmltv_id="">Court 7</channel>
<channel site="sky.co.nz" site_id="614" lang="en" xmltv_id="">Court 8</channel>
<channel site="sky.co.nz" site_id="615" lang="en" xmltv_id="">Court 12</channel>
<channel site="sky.co.nz" site_id="616" lang="en" xmltv_id="">Court 13</channel>
<channel site="sky.co.nz" site_id="617" lang="en" xmltv_id="">Court 14</channel>
<channel site="sky.co.nz" site_id="618" lang="en" xmltv_id="">Court 15</channel>
<channel site="sky.co.nz" site_id="619" lang="en" xmltv_id="">Court 16</channel>
<channel site="sky.co.nz" site_id="620" lang="en" xmltv_id="">Court 17</channel>
</channels> </channels>

View File

@@ -1,22 +1,76 @@
const axios = require('axios') const axios = require('axios')
const dayjs = require('dayjs') const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const tz = require('dayjs/plugin/timezone')
const timezone = 'Pacific/Auckland'
dayjs.extend(utc)
dayjs.extend(tz)
module.exports = { module.exports = {
site: 'sky.co.nz', site: 'sky.co.nz',
days: 2, days: 2,
url({ date, channel }) { url: 'https://api.skyone.co.nz/exp/graph',
return `https://web-epg.sky.co.nz/prod/epgs/v1?channelNumber=${ request: {
channel.site_id method: 'POST',
}&start=${date.valueOf()}&end=${date.add(1, 'day').valueOf()}&limit=20000` headers: {
'Content-Type': 'application/json'
},
data({ date } = {}) {
return ({
query: `{
experience(appId: TV_GUIDE_WEB) {
channelGroup(id: "4b7LA20J4iHaThwky9iVqn") {
id
title
channels {
... on LinearChannel {
id
title
number
tileImage {
uri
}
slotsForDay(date: "${dayjs.tz(date || dayjs(), timezone).format('YYYY-MM-DD')}") {
slots {
id
startMs
endMs
live
nzBsaRatingString
programme {
... on Episode {
id
title
synopsis
}
... on Movie {
id
title
}
... on PayPerViewEventProgram {
id
title
}
}
}
}
}
}
}
}
}`
})
}
}, },
parser({ content }) { parser({ content, channel }) {
let programs = [] let programs = []
const items = parseItems(content) const items = parseItems(content, channel)
items.forEach(item => { items.forEach(item => {
programs.push({ programs.push({
title: item.title, title: item.title,
description: item.synopsis, description: item.synopsis,
category: item.genres,
rating: parseRating(item), rating: parseRating(item),
start: dayjs(parseInt(item.start)), start: dayjs(parseInt(item.start)),
stop: dayjs(parseInt(item.end)) stop: dayjs(parseInt(item.end))
@@ -31,19 +85,41 @@ module.exports = {
.then(r => r.data) .then(r => r.data)
.catch(console.log) .catch(console.log)
return data.channels.map(item => { return data.map(item => {
return { return {
lang: 'en', lang: 'en',
site_id: parseInt(item.number).toString(), site_id: parseInt(item.number).toString(),
name: item.name name: item.sort
} }
}) })
} }
} }
function parseItems(content) { function parseItems(content, channel) {
const data = JSON.parse(content) if (!channel?.site_id) return []
return data && data.events && Array.isArray(data.events) ? data.events : []
let data
try {
data = JSON.parse(content)
} catch {
return []
}
const channels = data?.data?.experience?.channelGroup?.channels
if (!Array.isArray(channels)) return []
const channelData = channels.find(i => i.number === parseInt(channel.site_id))
if (!channelData?.slotsForDay?.slots) return []
return channelData.slotsForDay.slots.map(slot => ({
title: slot.programme.title || null,
synopsis: slot.programme.synopsis || null,
rating: slot.nzBsaRatingString || null,
start: slot.startMs,
end: slot.endMs
}))
} }
function parseRating(item) { function parseRating(item) {

View File

@@ -1,60 +1,74 @@
const { parser, url } = require('./sky.co.nz.config.js') const { parser, url, request } = require('./sky.co.nz.config.js')
const fs = require('fs') const fs = require('fs')
const path = require('path') const path = require('path')
const dayjs = require('dayjs') const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc') const utc = require('dayjs/plugin/utc')
const tz = require('dayjs/plugin/timezone')
dayjs.extend(utc) dayjs.extend(utc)
dayjs.extend(tz)
const date = dayjs.utc('2023-01-21', 'YYYY-MM-DD').startOf('d')
const channel = { const channel = {
site_id: '36', site_id: '1',
xmltv_id: 'SkyMoviesFamily.nz' xmltv_id: 'TVNZ 1'
} }
it('can generate valid url', () => { it('can generate valid url', () => {
expect(url({ date, channel })).toBe( expect(url).toBe('https://api.skyone.co.nz/exp/graph')
'https://web-epg.sky.co.nz/prod/epgs/v1?channelNumber=36&start=1674259200000&end=1674345600000&limit=20000' })
)
it('can generate valid request method', () => {
expect(request.method).toBe('POST')
}) })
it('can parse response', () => { it('can parse response', () => {
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json')) const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'))
const result = parser({ content }).map(p => { const result = parser({ content, channel }).map(p => {
p.start = p.start.toJSON() p.start = p.start.toJSON()
p.stop = p.stop.toJSON() p.stop = p.stop.toJSON()
return p return p
}) })
expect(result[0]).toMatchObject({ expect(result[0]).toMatchObject({
title: 'Sing 2', title: 'Hard Quiz',
description: description:
"Animated: Buster Moon and his friends must persuade the world's most reclusive rock star to help launch their most dazzling extravaganza yet. Voices Of: Matthew McConaughey, Reese Witherspoon (2021)", "What do King Henry VII, Shaquille O'Neal, dinosaurs and The Adventures of Priscilla, Queen of the Desert have in common? They're all expert topics on tonight's #HardQuiz!",
category: ['Animated'],
rating: { system: 'OFLC', value: 'PG' }, rating: { system: 'OFLC', value: 'PG' },
start: '2023-01-20T23:41:00.000Z', start: '2025-12-12T10:40:00.000Z',
stop: '2023-01-21T01:28:00.000Z' stop: '2025-12-12T11:15:00.000Z'
}) })
expect(result[5]).toMatchObject({ expect(result[33]).toMatchObject({
title: 'Harry Potter and the Goblet of Fire', title: 'Obituary',
description: description:
'Adventure: Harry is selected to represent Hogwarts at a legendary and dangerous wizardry competition between three schools of magic. Stars: Daniel Radcliffe, Rupert Grint (2005)', 'Season Finale: When Ward reveals what really happened the night Maria Riedle was killed, Elvira sets about framing Hughie for the crime. S1 E6',
category: ['Action/Adventure'], rating: { system: 'OFLC', value: '16' },
rating: { system: 'OFLC', value: 'M-V' }, start: '2025-12-13T10:55:00.000Z',
start: '2023-01-21T07:42:00.000Z', stop: '2025-12-13T11:50:00.000Z'
stop: '2023-01-21T10:13:00.000Z'
}) })
}) })
// Not easy to mock this case, as it's the same repeated message (for all channels ?)
// with the time space in the message. Only what doesn't change is provided, but will still pass the test out.
it('can handle empty guide', () => { it('can handle empty guide', () => {
const result = parser( const result = parser({
{ content: `{
content: `{ "locations": [
"code": "DATE_FORMAT_ERROR", {
"description": "DateFormat error", "line": 14,
"message": "Unparseable date: x" "column": 11
}` }
}, ],
"path": [
"experience",
"channelGroup",
"channels",
0,
"slotsForDay"
],
"extensions": {
"classification": "DataFetchingException"
}
}`,
channel channel
) })
expect(result).toMatchObject([]) expect(result).toMatchObject([])
}) })

File diff suppressed because it is too large Load Diff