mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-10 00:50:09 -04:00
Merge pull request #2584 from iptv-org/add-freeview.co.uk
Add freeview.co.uk
This commit is contained in:
commit
767aa12ef8
5 changed files with 318 additions and 0 deletions
1
sites/freeview.co.uk/__data__/content.json
Normal file
1
sites/freeview.co.uk/__data__/content.json
Normal file
File diff suppressed because one or more lines are too long
168
sites/freeview.co.uk/freeview.co.uk.channels.xml
Normal file
168
sites/freeview.co.uk/freeview.co.uk.channels.xml
Normal file
|
@ -0,0 +1,168 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<channels>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#12952">YAAAS!</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#12960">Pop Player</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#13144">MBC</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#14448">TRUE CRIME</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#14456">TRUE CRIME XTRA</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#15016">Sonlife</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#15064">On Demand 365</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#15448">Channelbox</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#15480">UK RADIO PORTAL</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#15584">GREAT! mystery</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16164">CNA</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16170">GIGS</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16176">EXTREME CHANNEL</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16188">Trailblazer</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16194">Odyssey TV</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16200">Ketchup TV</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16216">Ketchup Too</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16224">Alaraby Network</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16230">wedotv movies</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16240">ROK</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16264">3ABN</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16284">Al Jazeera Arabic</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16298">Real Crime</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16310">Shots!</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16322">NHK WORLD</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16328">Newsmax</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16346">Amazing Facts</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16352">Moochi</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16370">FRANCE 24</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16376">Nosey</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16394">Shop On TV</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16400">Purpose Media</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#16406">Talk</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#22080">Sky News</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#22592">talkSPORT</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#22624">RNIB Connect</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#22656">Heart</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#22688">Capital</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#22848">Classic FM</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#22880">LBC</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#22912">Trans World Radio</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#23152">That's TV 2</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#23184">SonLife</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#23904">That's Dance</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#24448">Gems TV</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#26368">Smooth Radio</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#27424">POP UP</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#27744">Rewind TV</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#27808">Together TV IP</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#28032">That's Melody</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#28160">Premier Radio</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#28320">GREAT! movies extra</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#28352">GREAT! player</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#28384">GREAT! romance mix</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#33664">New Media TV</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#34048">Global Arabic +</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#34112">LEGEND XTRA</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#4416">BBC Red Button</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#5632">BBC R5L</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#5696">BBC 5SX</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#5760">BBC 6 Music</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#5824">BBC Radio 4 Ex</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#5888">BBC R1X</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#5952">BBC Asian Net.</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#6016">BBC World Sv.</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#6148">BBC Radio London</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#6157">BBC Three Counties</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#6275">BBC Berkshire</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#6279">BBC Essex</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#6284">BBC Surrey</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#6720">BBC Radio 1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#6784">BBC Radio 2</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#6848">BBC Radio 3</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#6912">BBC Radio 4</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#7168">BBC RB 1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="" site_id="64257#8700">That's TV 3</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="4seven.uk" site_id="64257#22528">4seven</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="5Action.uk" site_id="64257#16112">5ACTION</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="5SELECT.uk" site_id="64257#20256">5SELECT</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="5STAR.uk" site_id="64257#12928">5STAR</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="5USA.uk" site_id="64257#12992">5USA</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="Alarabiya.ae" site_id="64257#16304">AL ARABIYA</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="AlJazeeraEnglish.qa" site_id="64257#16278">Al Jazeera English</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="AsharqNews.sa" site_id="64257#16296">ASHARQ NEWS</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="BBCFour.uk" site_id="64257#4544">BBC FOUR</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="BBCFourHD.uk" site_id="64257#18048">BBC FOUR HD</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="BBCNews.uk" site_id="64257#4352">BBC NEWS</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="BBCOneLondon.uk" site_id="64257#4164">BBC ONE Lon</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="BBCOneLondonHD.uk" site_id="64257#17536">BBC ONE Lon HD</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="BBCParliament.uk" site_id="64257#4736">BBC Parliament</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="BBCThree.uk" site_id="64257#4288">BBC THREE</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="BBCThreeHD.uk" site_id="64257#17920">BBC THREE HD</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="BBCTwo.uk" site_id="64257#4287">BBC TWO</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="BBCTwoHD.uk" site_id="64257#17472">BBC TWO HD</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="Blaze.uk" site_id="64257#14384">Blaze</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="BlazePlus1.uk" site_id="64257#14388">Blaze+1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="CBBC.uk" site_id="64257#4608">CBBC</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="CBBCHD.uk" site_id="64257#18112">CBBC HD</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="CBeebies.uk" site_id="64257#4672">CBeebies</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="CBeebiesHD.uk" site_id="64257#18176">CBeebies HD</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="Challenge.uk" site_id="64257#22226">Challenge</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="Channel4.uk" site_id="64257#8384">Channel 4</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="Channel4HD.uk" site_id="64257#17664">Channel 4 HD</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="Channel4Plus1.uk" site_id="64257#8452">Channel 4+1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="Channel5.uk" site_id="64257#8500">Channel 5</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="Channel5HD.uk" site_id="64257#17728">Channel 5 HD</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="Channel5Plus1.uk" site_id="64257#13024">Channel 5+1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="DMAX.uk" site_id="64257#27680">DMAX</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="E4.uk" site_id="64257#8448">E4</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="E4Extra.uk" site_id="64257#22368">E4 Extra</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="E4Plus1.uk" site_id="64257#8458">E4+1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="Film4.uk" site_id="64257#8385">Film4</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="Film4Plus1.uk" site_id="64257#22464">Film4+1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="FoodNetwork.uk" site_id="64257#23040">Food Network</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="GBNews.uk" site_id="64257#27360">GB News</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="GINXEsportsTV.uk" site_id="64257#16182">GINX TV</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="GODTV.uk" site_id="64257#16256">God TV</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="GREATaction.uk" site_id="64257#15576">GREAT! action</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="GREATmovies.uk" site_id="64257#27872">GREAT! movies</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="GREATromance.uk" site_id="64257#27296">GREAT! romance</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="GREATtv.uk" site_id="64257#27168">GREAT! tv</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="HGTV.uk" site_id="64257#28000">HGTV</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="HobbyMaker.uk" site_id="64257#27840">HobbyMaker</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="IdealWorldTV.uk" site_id="64257#25920">Ideal World</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="ITV1.uk" site_id="64257#8261">ITV1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="ITV1HD.uk" site_id="64257#17604">ITV1 HD</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="ITV1Plus1.uk" site_id="64257#8361">ITV1+1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="ITV2.uk" site_id="64257#8325">ITV2</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="ITV2Plus1.uk" site_id="64257#15952">ITV2+1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="ITV3.uk" site_id="64257#8294">ITV3</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="ITV3Plus1.uk" site_id="64257#16016">ITV3+1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="ITV4.uk" site_id="64257#8330">ITV4</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="ITV4Plus1.uk" site_id="64257#15920">ITV4+1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="ITVBe.uk" site_id="64257#8340">ITVBe</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="ITVBePlus1.uk" site_id="64257#15864">ITVBe+1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="JewelleryMaker.uk" site_id="64257#27200">Jewellery Maker</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="Legend.uk" site_id="64257#14480">LEGEND</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="LondonLive.uk" site_id="64257#32842">London Live</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="More4.uk" site_id="64257#8442">More 4</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="PBSAmerica.uk" site_id="64257#27968">PBS America</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="Pop.uk" site_id="64257#33280">POP</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="Quest.uk" site_id="64257#27328">QUEST</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="QuestPlus1.uk" site_id="64257#23808">QUEST+1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="QuestRed.uk" site_id="64257#23744">Quest Red</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="QVC.uk" site_id="64257#13120">QVC</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="QVC2.uk" site_id="64257#14416">QVC2</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="Really.uk" site_id="64257#23712">Really</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="RevelationTV.uk" site_id="64257#16248">Revelation TV</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="SkyArts.uk" site_id="64257#22144">Sky Arts</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="SkyMix.uk" site_id="64257#22208">Sky Mix</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="TalkingPicturesTV.uk" site_id="64257#28224">TalkingPictures TV</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="TBNUK.uk" site_id="64257#20160">TBN UK</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="ThatsTV.uk" site_id="64257#27936">That's TV (UK)</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="TinyPop.uk" site_id="64257#33472">Tiny Pop</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="TJC.uk" site_id="64257#15592">TJC</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="TogetherTV.uk" site_id="64257#16364">Together TV</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="TogetherTVPlus1.uk" site_id="64257#27392">Together TV+1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="UDave.uk" site_id="64257#22272">U&Dave</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="UDaveJaVu.uk" site_id="64257#13008">U&DaveJaVu</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="UDrama.uk" site_id="64257#16208">U&Drama</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="UDramaPlus1.us" site_id="64257#22336">U&Drama+1</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="UEden.uk" site_id="64257#19968">U&Eden</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="UW.uk" site_id="64257#28096">U&W</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="UYesterday.uk" site_id="64257#25792">U&Yesterday</channel>
|
||||
<channel site="freeview.co.uk" lang="en" xmltv_id="WildEarth.uk" site_id="64257#14464">WildEarth</channel>
|
||||
</channels>
|
73
sites/freeview.co.uk/freeview.co.uk.config.js
Normal file
73
sites/freeview.co.uk/freeview.co.uk.config.js
Normal file
|
@ -0,0 +1,73 @@
|
|||
const axios = require('axios')
|
||||
const dayjs = require('dayjs')
|
||||
const utc = require('dayjs/plugin/utc')
|
||||
const parseDuration = require('parse-duration')
|
||||
|
||||
dayjs.extend(utc)
|
||||
|
||||
module.exports = {
|
||||
site: 'freeview.co.uk',
|
||||
days: 2,
|
||||
url({ date, channel }) {
|
||||
const [networkId] = channel.site_id.split('#')
|
||||
const startTimestamp = date.startOf('d').unix()
|
||||
|
||||
return `https://www.freeview.co.uk/api/tv-guide?nid=${networkId}&start=${startTimestamp}`
|
||||
},
|
||||
parser({ content, channel }) {
|
||||
let programs = []
|
||||
let items = parseItems(content, channel)
|
||||
items.forEach(item => {
|
||||
const start = parseStart(item)
|
||||
const duration = parseDuration(item.duration)
|
||||
const stop = start.add(duration, 'ms')
|
||||
programs.push({
|
||||
title: item.main_title,
|
||||
subtitle: item.secondary_title,
|
||||
image: parseImage(item),
|
||||
start,
|
||||
stop
|
||||
})
|
||||
})
|
||||
|
||||
return programs
|
||||
},
|
||||
async channels() {
|
||||
const networkId = '64257' // Great London
|
||||
const startTimestamp = dayjs.utc().startOf('d').unix()
|
||||
const data = await axios
|
||||
.get(`https://www.freeview.co.uk/api/tv-guide?nid=${networkId}&start=${startTimestamp}`)
|
||||
.then(r => r.data)
|
||||
.catch(console.log)
|
||||
|
||||
return data.data.programs.map(item => ({
|
||||
lang: 'en',
|
||||
site_id: `${networkId}#${item.service_id}`,
|
||||
name: item.title
|
||||
}))
|
||||
}
|
||||
}
|
||||
|
||||
function parseImage(item) {
|
||||
return item.image_url ? `${item.image_url}?w=800` : null
|
||||
}
|
||||
|
||||
function parseStart(item) {
|
||||
return dayjs(item.start_time)
|
||||
}
|
||||
|
||||
function parseItems(content, channel) {
|
||||
try {
|
||||
const data = JSON.parse(content)
|
||||
const programs = data?.data?.programs
|
||||
if (!Array.isArray(programs)) return []
|
||||
const [, channelId] = channel.site_id.split('#')
|
||||
const channelData = programs.find(p => p.service_id === channelId)
|
||||
const channelPrograms = channelData?.events
|
||||
if (!Array.isArray(channelPrograms)) return []
|
||||
|
||||
return channelPrograms
|
||||
} catch {
|
||||
return []
|
||||
}
|
||||
}
|
55
sites/freeview.co.uk/freeview.co.uk.test.js
Normal file
55
sites/freeview.co.uk/freeview.co.uk.test.js
Normal file
|
@ -0,0 +1,55 @@
|
|||
const { parser, url } = require('./freeview.co.uk.config.js')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
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('2025-01-16', 'YYYY-MM-DD').startOf('d')
|
||||
const channel = {
|
||||
site_id: '64257#4164',
|
||||
xmltv_id: 'BBCOneLondon.uk'
|
||||
}
|
||||
|
||||
it('can generate valid url', () => {
|
||||
expect(url({ date, channel })).toBe(
|
||||
'https://www.freeview.co.uk/api/tv-guide?nid=64257&start=1736985600'
|
||||
)
|
||||
})
|
||||
|
||||
it('can parse response', () => {
|
||||
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'))
|
||||
let results = parser({ content, channel })
|
||||
results = results.map(p => {
|
||||
p.start = p.start.toJSON()
|
||||
p.stop = p.stop.toJSON()
|
||||
return p
|
||||
})
|
||||
|
||||
expect(results.length).toBe(25)
|
||||
expect(results[0]).toMatchObject({
|
||||
start: '2025-01-16T00:00:00.000Z',
|
||||
stop: '2025-01-16T00:45:00.000Z',
|
||||
title: 'The Weakest Link',
|
||||
subtitle: 'Series 4: Episode 7',
|
||||
image: 'https://img.freeviewplay.tv/p0b041486e4378cbf074511098f74e78f?w=800'
|
||||
})
|
||||
expect(results[24]).toMatchObject({
|
||||
start: '2025-01-16T23:40:00.000Z',
|
||||
stop: '2025-01-17T00:10:00.000Z',
|
||||
title: 'Newscast',
|
||||
subtitle: 'Series 5: 16/01/2025',
|
||||
image: 'https://img.freeviewplay.tv/pb43e790fe10fe5ba668caf22224bc312?w=800'
|
||||
})
|
||||
})
|
||||
|
||||
it('can handle empty guide', () => {
|
||||
const results = parser({
|
||||
content: '[]',
|
||||
channel
|
||||
})
|
||||
|
||||
expect(results).toMatchObject([])
|
||||
})
|
21
sites/freeview.co.uk/readme.md
Normal file
21
sites/freeview.co.uk/readme.md
Normal file
|
@ -0,0 +1,21 @@
|
|||
# freeview.co.uk
|
||||
|
||||
https://www.freeview.co.uk/tv-guide
|
||||
|
||||
### Download the guide
|
||||
|
||||
```sh
|
||||
npm run grab --- --site=freeview.co.uk
|
||||
```
|
||||
|
||||
### Update channel list
|
||||
|
||||
```sh
|
||||
npm run channels:parse --- --config=./sites/freeview.co.uk/freeview.co.uk.config.js --output=./sites/freeview.co.uk/freeview.co.uk.channels.xml
|
||||
```
|
||||
|
||||
### Test
|
||||
|
||||
```sh
|
||||
npm test --- freeview.co.uk
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue