diff --git a/sites/cubmu.com/cubmu.com.config.js b/sites/cubmu.com/cubmu.com.config.js
index a1064e52..6b408aed 100644
--- a/sites/cubmu.com/cubmu.com.config.js
+++ b/sites/cubmu.com/cubmu.com.config.js
@@ -8,16 +8,16 @@ dayjs.extend(utc)
module.exports = {
site: 'cubmu.com',
days: 2,
- url: function ({ channel, date }) {
+ url({ channel, date }) {
return `https://servicebuss.transvision.co.id/v2/cms/getEPGData?app_id=cubmu&tvs_platform_id=standalone&schedule_date=${date.format('YYYY-MM-DD')}&channel_id=${channel.site_id}`
},
- parser({ content }) {
+ parser({ content, channel }) {
const programs = []
const items = parseItems(content)
items.forEach(item => {
programs.push({
title: parseTitle(item),
- description: parseDescription(item),
+ description: parseDescription(item, channel.lang),
episode: parseEpisode(item),
start: parseStart(item).toISOString(),
stop: parseStop(item).toISOString()
@@ -26,7 +26,7 @@ module.exports = {
return programs
},
- async channels() {
+ async channels({ lang = 'id' }) {
const axios = require('axios')
const cheerio = require('cheerio')
const result = await axios
@@ -57,15 +57,19 @@ module.exports = {
.catch(console.error)
const channels = []
+ const included = []
if (Array.isArray(subscribedChannels.channelPackageList)) {
subscribedChannels.channelPackageList.forEach(pkg => {
- channels.push(...pkg.channelList.map(channel => {
- return {
- lang: 'id',
- site_id: channel.id,
- name: channel.name
+ pkg.channelList.forEach(channel => {
+ if (included.indexOf(channel.id) < 0) {
+ included.push(channel.id)
+ channels.push({
+ lang,
+ site_id: channel.id,
+ name: channel.name
+ })
}
- }))
+ })
})
}
@@ -81,8 +85,8 @@ function parseTitle(item) {
return item.scehedule_title
}
-function parseDescription(item) {
- return item.schedule_json.primarySynopsis
+function parseDescription(item, lang = 'id') {
+ return lang === 'id' ? item.schedule_json.primarySynopsis : item.schedule_json.secondarySynopsis
}
function parseEpisode(item) {
diff --git a/sites/cubmu.com/cubmu.com.test.js b/sites/cubmu.com/cubmu.com.test.js
index 56036459..38bbf099 100644
--- a/sites/cubmu.com/cubmu.com.test.js
+++ b/sites/cubmu.com/cubmu.com.test.js
@@ -1,6 +1,3 @@
-// [Geo-restricted] npm run channels:parse -- --config=./sites/cubmu.com/cubmu.com.config.js --output=./sites/cubmu.com/cubmu.com.channels.xml
-// npm run grab -- --site=cubmu.com
-
const { url, parser } = require('./cubmu.com.config.js')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
@@ -8,6 +5,7 @@ dayjs.extend(utc)
const date = dayjs.utc('2023-11-05', 'DD/MM/YYYY').startOf('d')
const channel = { site_id: '4028c68574537fcd0174be43042758d8', xmltv_id: 'TransTV.id', lang: 'id' }
+const channelEn = Object.assign({}, channel, { lang: 'en' })
it('can generate valid url', () => {
expect(url({ channel, date })).toBe(
@@ -18,9 +16,9 @@ it('can generate valid url', () => {
it('can parse response', () => {
const content =
'{"result":[{"channel_id":"4028c68574537fcd0174be43042758d8","channel_name":"Trans TV","scehedule_title":"CNN Tech News","schedule_date":"2023-11-05 01:30:00","schedule_end_time":"02:00:00","schedule_json":{"availability":0,"channelId":"4028c68574537fcd0174be43042758d8","channelName":"Trans TV","duration":1800,"editable":true,"episodeName":"","imageUrl":"https://cdnjkt2.transvision.co.id:1001/catchup/schedule/thumbnail/4028c68574537fcd0174be43042758d8/4028c6858b8b3621018b9330e3701a7e/458x640","imageUrlWide":"https://cdnjkt2.transvision.co.id:1001/catchup/schedule/thumbnail/4028c68574537fcd0174be43042758d8/4028c6858b8b3621018b9330e3701a7e/320x180","name":"CNN Tech News","ottImageUrl":"","primarySynopsis":"CNN Indonesia Tech News adalah berita teknologi yang membawa pemirsa ke dunia teknologi yang penuh dengan informasi, pendidikan, hiburan sampai informasi kesehatan terkini.","scheduleId":"4028c6858b8b3621018b9330e3701a7e","scheduleTime":"18:30:00","secondarySynopsis":"CNN Indonesia Tech News is tech news brings viewers into the world of technology that provides information, education, entertainment to the latest health information.","startDt":"20231104183000","url":""},"schedule_start_time":"01:30:00"}]}'
- const results = parser({ content, channel })
- expect(results).toMatchObject([
+ const idResults = parser({ content, channel })
+ expect(idResults).toMatchObject([
{
start: '2023-11-04T18:30:00.000Z',
stop: '2023-11-04T19:00:00.000Z',
@@ -29,6 +27,17 @@ it('can parse response', () => {
'CNN Indonesia Tech News adalah berita teknologi yang membawa pemirsa ke dunia teknologi yang penuh dengan informasi, pendidikan, hiburan sampai informasi kesehatan terkini.'
}
])
+
+ const enResults = parser({ content, channel: channelEn })
+ expect(enResults).toMatchObject([
+ {
+ start: '2023-11-04T18:30:00.000Z',
+ stop: '2023-11-04T19:00:00.000Z',
+ title: 'CNN Tech News',
+ description:
+ 'CNN Indonesia Tech News is tech news brings viewers into the world of technology that provides information, education, entertainment to the latest health information.'
+ }
+ ])
})
it('can handle empty guide', () => {
diff --git a/sites/cubmu.com/cubmu.com_en.channels.xml b/sites/cubmu.com/cubmu.com_en.channels.xml
new file mode 100644
index 00000000..05e784ab
--- /dev/null
+++ b/sites/cubmu.com/cubmu.com_en.channels.xml
@@ -0,0 +1,95 @@
+
+
+
+ ABC Australia
+ Al Jazeera
+ ANTV
+ Arirang
+ Bioskop Indonesia
+ Boonie Cubs TV
+ BTV
+ CCTV 4
+ CGTN
+ CGTN Documentary
+ CNA
+ CNBC Indonesia
+ CNN Indonesia
+ DAAI TV
+ Duck TV
+ Dunia Anak
+ Dunia Lain
+ Eat N Go
+ English Club TV
+ Euronews
+ Fashion TV
+ Fight TV Premium
+ France 24
+ Golf+
+ GTV
+ Indosiar
+ Jak tv
+ jtv
+ Khazanah
+ Kompas TV
+ Lingua
+ MetroTV
+ MNC TV
+ Nabawi TV
+ NET TV
+ !nsert
+ Nusantara
+ One TV
+ Pijar TV
+ Gaming TV
+ Al Quran Al Kareem
+ rtv
+ RCTI
+ Russia Today
+ SCTV
+ Channel Seru!
+ SuperYacht TV
+ Toon Goggles
+ Trans 7
+ Trans TV
+ TV5 Monde
+ TV9
+ tv Mu
+ tvOne
+ TVRI
+ Wion TV
+
diff --git a/sites/cubmu.com/cubmu.com.channels.xml b/sites/cubmu.com/cubmu.com_id.channels.xml
similarity index 61%
rename from sites/cubmu.com/cubmu.com.channels.xml
rename to sites/cubmu.com/cubmu.com_id.channels.xml
index 2c9b6ae9..01fd14a0 100644
--- a/sites/cubmu.com/cubmu.com.channels.xml
+++ b/sites/cubmu.com/cubmu.com_id.channels.xml
@@ -1,46 +1,48 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
ABC Australia
Al Jazeera
ANTV
Arirang
- BTV
Bioskop Indonesia
Boonie Cubs TV
+ BTV
CCTV 4
CGTN
CGTN Documentary
@@ -67,16 +69,13 @@
Lingua
MetroTV
MNC TV
-
Nabawi TV
NET TV
!nsert
Nusantara
One TV
- Outdoor America
Pijar TV
Gaming TV
- Pro Wrestling TV
Al Quran Al Kareem
rtv
RCTI
diff --git a/sites/cubmu.com/readme.md b/sites/cubmu.com/readme.md
new file mode 100644
index 00000000..23f07209
--- /dev/null
+++ b/sites/cubmu.com/readme.md
@@ -0,0 +1,37 @@
+# cubmu.com
+
+https://cubmu.com/live-tv _[Geo-restricted]_
+
+### Download the guide
+
+Indonesian:
+
+```sh
+npm run grab -- --site=cubmu.com --lang=id
+```
+
+English:
+
+```sh
+npm run grab -- --site=cubmu.com --lang=en
+```
+
+### Update channel list
+
+Indonesian:
+
+```sh
+npm run channels:parse -- --config=sites/cubmu.com/cubmu.com.config.js --output=sites/cubmu.com/cubmu.com_id.channels.xml --set=lang:id
+```
+
+English:
+
+```sh
+npm run channels:parse -- --config=sites/cubmu.com/cubmu.com.config.js --output=sites/cubmu.com/cubmu.com_en.channels.xml --set=lang:en
+```
+
+### Test
+
+```sh
+npm test -- cubmu.com
+```