Update unifi.com.my

This commit is contained in:
freearhey 2023-12-02 13:56:56 +03:00
parent 78d582b5e2
commit 16035e9c0a
5 changed files with 118 additions and 75 deletions

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,21 @@
# unifi.com.my
https://playtv.unifi.com.my/EPG/WEBTV/index.html#/tvguide
### Download the guide
```sh
npm run grab -- --site=unifi.com.my
```
### Update channel list
```sh
npm run channels:parse -- --config=./sites/unifi.com.my/unifi.com.my.config.js --output=./sites/unifi.com.my/unifi.com.my.channels.xml
```
### Test
```sh
npm test -- unifi.com.my
```

View file

@ -1,20 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<channels> <channels>
<channel site="unifi.com.my" lang="en" xmltv_id="" site_id="55631601">DEGUP</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="" site_id="59922231">beIN SPORTS 2</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="" site_id="59924306">Moonbug</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="" site_id="59953839">ONE</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="" site_id="64822719">TVS</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="8TV.my" site_id="20000017">8TV</channel> <channel site="unifi.com.my" lang="en" xmltv_id="8TV.my" site_id="20000017">8TV</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="AlJazeeraEnglish.qa" site_id="20000067">Al Jazeera</channel> <channel site="unifi.com.my" lang="en" xmltv_id="AlJazeeraEnglish.qa" site_id="20000067">Al Jazeera</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="AnimaxAsia.sg" site_id="57622558">Animax</channel> <channel site="unifi.com.my" lang="en" xmltv_id="AnimaxAsia.sg" site_id="57622558">Animax</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="ArirangTV.kr" site_id="51783925">arirang TV</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="AXN.my" site_id="51882833">AXN</channel> <channel site="unifi.com.my" lang="en" xmltv_id="AXN.my" site_id="51882833">AXN</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="BBCEarthAsia.uk" site_id="20000092">BBC Earth HD</channel> <channel site="unifi.com.my" lang="en" xmltv_id="BBCEarthAsia.uk" site_id="20000092">BBC Earth HD</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="BBCLifestyleAsia.uk" site_id="20000040">BBC Lifestyle HD</channel> <channel site="unifi.com.my" lang="en" xmltv_id="BBCLifestyleAsia.uk" site_id="20000040">BBC Lifestyle HD</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="BBCNewsAsiaPacific.uk" site_id="20000074">BBC World News HD</channel> <channel site="unifi.com.my" lang="en" xmltv_id="BBCNewsAsiaPacific.uk" site_id="20000074">BBC News</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="beINSports.qa" site_id="55456338">beIN SPORTS</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="beINSports3.qa" site_id="55456355">beIN SPORTS 3</channel> <channel site="unifi.com.my" lang="en" xmltv_id="beINSports3.qa" site_id="55456355">beIN SPORTS 3</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="beINSports4.qa" site_id="57682031">beIN SPORTS 4</channel> <channel site="unifi.com.my" lang="en" xmltv_id="beINSports4.qa" site_id="57682031">beIN SPORTS 4</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="BoomerangAsia.sg" site_id="20000030">Boomerang HD</channel> <channel site="unifi.com.my" lang="en" xmltv_id="beINSports.qa" site_id="55456338">beIN SPORTS</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="BoomerangAsia.sg" site_id="20000030">Cartoonito</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="CBeebiesAsia.uk" site_id="20000006">CBeebies HD</channel> <channel site="unifi.com.my" lang="en" xmltv_id="CBeebiesAsia.uk" site_id="20000006">CBeebies HD</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="CelestialClassicMovies.my" site_id="52014451">CCM</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="CCTV4Asia.cn" site_id="55697154">CCTV-4 HD</channel> <channel site="unifi.com.my" lang="en" xmltv_id="CCTV4Asia.cn" site_id="55697154">CCTV-4 HD</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="CelestialClassicMovies.my" site_id="52014451">CCM</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="CelestialMoviesMalaysia.my" site_id="51882317">Celestial Movies</channel> <channel site="unifi.com.my" lang="en" xmltv_id="CelestialMoviesMalaysia.my" site_id="51882317">Celestial Movies</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="CGTN.cn" site_id="55697173">CGTN HD</channel> <channel site="unifi.com.my" lang="en" xmltv_id="CGTN.cn" site_id="55697173">CGTN HD</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="CinemaWorld.my" site_id="20000080">CinemaWorld HD</channel> <channel site="unifi.com.my" lang="en" xmltv_id="CinemaWorld.my" site_id="20000080">CinemaWorld HD</channel>
@ -37,9 +41,8 @@
<channel site="unifi.com.my" lang="en" xmltv_id="ROCKAction.sg" site_id="20000081">ROCK Action</channel> <channel site="unifi.com.my" lang="en" xmltv_id="ROCKAction.sg" site_id="20000081">ROCK Action</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="ROCKEntertainment.sg" site_id="20000029">ROCK Entertainment</channel> <channel site="unifi.com.my" lang="en" xmltv_id="ROCKEntertainment.sg" site_id="20000029">ROCK Entertainment</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="SETInternational.tw" site_id="20000082">SETI</channel> <channel site="unifi.com.my" lang="en" xmltv_id="SETInternational.tw" site_id="20000082">SETI</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="SPOTV.kr" site_id="20000076">SPOTV</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="SPOTV2.kr" site_id="20000109">SPOTV2</channel> <channel site="unifi.com.my" lang="en" xmltv_id="SPOTV2.kr" site_id="20000109">SPOTV2</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="TechStorm.sg" site_id="52014533">TechStorm</channel> <channel site="unifi.com.my" lang="en" xmltv_id="SPOTV.kr" site_id="20000076">SPOTV</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="TravelChannelSoutheastAsia.sg" site_id="20000088">Travel Channel HD</channel> <channel site="unifi.com.my" lang="en" xmltv_id="TravelChannelSoutheastAsia.sg" site_id="20000088">Travel Channel HD</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="tvNAsia.hk" site_id="20000062">tvN HD</channel> <channel site="unifi.com.my" lang="en" xmltv_id="tvNAsia.hk" site_id="20000062">tvN HD</channel>
<channel site="unifi.com.my" lang="en" xmltv_id="tvNMoviesAsia.hk" site_id="20000021">tvN Movies HD</channel> <channel site="unifi.com.my" lang="en" xmltv_id="tvNMoviesAsia.hk" site_id="20000021">tvN Movies HD</channel>
@ -51,7 +54,6 @@
<channel site="unifi.com.my" lang="ia" xmltv_id="BernamaTV.my" site_id="20000091">Bernama TV</channel> <channel site="unifi.com.my" lang="ia" xmltv_id="BernamaTV.my" site_id="20000091">Bernama TV</channel>
<channel site="unifi.com.my" lang="my" xmltv_id="DuniaSinema.my" site_id="20000046">Dunia Sinema HD</channel> <channel site="unifi.com.my" lang="my" xmltv_id="DuniaSinema.my" site_id="20000046">Dunia Sinema HD</channel>
<channel site="unifi.com.my" lang="my" xmltv_id="Inspirasi.my" site_id="20000003">Inspirasi</channel> <channel site="unifi.com.my" lang="my" xmltv_id="Inspirasi.my" site_id="20000003">Inspirasi</channel>
<channel site="unifi.com.my" lang="my" xmltv_id="LakuMall.my" site_id="20000105">LAKU mall </channel>
<channel site="unifi.com.my" lang="my" xmltv_id="NTV7.my" site_id="20000031">DidikTV KPM</channel> <channel site="unifi.com.my" lang="my" xmltv_id="NTV7.my" site_id="20000031">DidikTV KPM</channel>
<channel site="unifi.com.my" lang="my" xmltv_id="ParlimenMalaysia.my" site_id="57623657">Parlimen Malaysia</channel> <channel site="unifi.com.my" lang="my" xmltv_id="ParlimenMalaysia.my" site_id="57623657">Parlimen Malaysia</channel>
<channel site="unifi.com.my" lang="my" xmltv_id="Pesona.my" site_id="20000063">Pesona HD</channel> <channel site="unifi.com.my" lang="my" xmltv_id="Pesona.my" site_id="20000063">Pesona HD</channel>
@ -64,7 +66,4 @@
<channel site="unifi.com.my" lang="my" xmltv_id="TV9.my" site_id="20000020">TV9</channel> <channel site="unifi.com.my" lang="my" xmltv_id="TV9.my" site_id="20000020">TV9</channel>
<channel site="unifi.com.my" lang="my" xmltv_id="TVAlhijrah.my" site_id="20000014">TV AlHijrah HD</channel> <channel site="unifi.com.my" lang="my" xmltv_id="TVAlhijrah.my" site_id="20000014">TV AlHijrah HD</channel>
<channel site="unifi.com.my" lang="my" xmltv_id="UnifiSports1.my" site_id="54185493">unifi Sports 1</channel> <channel site="unifi.com.my" lang="my" xmltv_id="UnifiSports1.my" site_id="54185493">unifi Sports 1</channel>
<channel site="unifi.com.my" lang="my" xmltv_id="UnifiSports2.my" site_id="41210859">unifi Sports 2</channel>
<channel site="unifi.com.my" lang="my" xmltv_id="UnifiSports3.my" site_id="52026408">unifi Sports 3</channel>
<channel site="unifi.com.my" lang="my" xmltv_id="UnifiSports4.my" site_id="57623639">unifi Sports 4</channel>
</channels> </channels>

View file

@ -38,12 +38,37 @@ module.exports = {
}) })
}) })
return programs return programs
},
async channels() {
const axios = require('axios')
const data = await axios
.post(
`https://playtv.unifi.com.my:7053/VSP/V3/QueryAllChannel`,
{ isReturnAllMedia: '0' },
{
params: {
userFilter: '-1880777955',
from: 'inMSAAccess'
}
}
)
.then(r => r.data)
.catch(console.log)
return data.channelDetails.map(item => {
return {
lang: 'en',
site_id: item.ID,
name: item.name
}
})
} }
} }
function parseItems(content, channel) { function parseItems(content, channel) {
try { try {
const data = JSON.parse(content) const [, string] = content.match(/initializeClient(.*)$/)
const data = JSON.parse(string)
if (!data) return [] if (!data) return []
if (!Array.isArray(data)) return [] if (!Array.isArray(data)) return []

View file

@ -1,5 +1,3 @@
// npm run grab -- --site=unifi.com.my
const { parser, url, request } = require('./unifi.com.my.config.js') const { parser, url, request } = require('./unifi.com.my.config.js')
const fs = require('fs') const fs = require('fs')
const path = require('path') const path = require('path')
@ -36,7 +34,7 @@ it('can generate valid request data', () => {
}) })
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'), 'utf8')
const results = parser({ content, date, channel }).map(p => { const results = parser({ content, date, channel }).map(p => {
p.start = p.start.toJSON() p.start = p.start.toJSON()
p.stop = p.stop.toJSON() p.stop = p.stop.toJSON()