From d69f78089535ef49fd0ed14559cd69aaaf12dc3c Mon Sep 17 00:00:00 2001 From: RevGear <95308545+RevGear@users.noreply.github.com> Date: Mon, 29 Aug 2022 10:39:33 +0100 Subject: [PATCH 1/9] Update URL/parser for astro.com.my --- sites/astro.com.my/astro.com.my.config.js | 35 ++++++++----------- sites/astro.com.my/astro.com.my.test.js | 41 +++++++++++++++++++++++ 2 files changed, 55 insertions(+), 21 deletions(-) create mode 100644 sites/astro.com.my/astro.com.my.test.js diff --git a/sites/astro.com.my/astro.com.my.config.js b/sites/astro.com.my/astro.com.my.config.js index f75d2ab2..da05dc49 100644 --- a/sites/astro.com.my/astro.com.my.config.js +++ b/sites/astro.com.my/astro.com.my.config.js @@ -2,36 +2,29 @@ const dayjs = require('dayjs') const utc = require('dayjs/plugin/utc') dayjs.extend(utc) - module.exports = { site: 'astro.com.my', - url: function ({ date, channel }) { - return `http://ams-api.astro.com.my/ams/v3/getEvents?periodStart=${date.format( - 'YYYY-MM-DD' - )}:00:00:00&periodEnd=${date.format('YYYY-MM-DD')}:23:59:59&channelId=${channel.site_id}` + url: function ({ channel }) { + return `https://contenthub-api.eco.astro.com.my/channel/${channel.site_id}.json` }, parser: function ({ content }) { const programs = [] const data = JSON.parse(content) - const items = data.getevent - if (!items.length) return programs + const schedules = data.response.schedule - items.forEach(item => { - if (item.programmeTitle && item.displayDateTimeUtc && item.displayDuration) { - const start = dayjs.utc(item.displayDateTimeUtc) - const duration = parseDuration(item.displayDuration) - const stop = start.add(duration, 's') - programs.push({ - title: item.programmeTitle, - description: item.shortSynopsis, - category: item.subGenre, - icon: item.epgEventImage, - start: start.toString(), - stop: stop.toString() + for(let items of Object.values(schedules)){ + items.forEach(item => { + const start = dayjs.utc(item.datetimeInUtc) + const duration = parseDuration(item.duration) + const stop = start.add(duration, 's') + programs.push({ + title: item.title, + start: start, + stop: stop + }) }) - } - }) + } return programs } } diff --git a/sites/astro.com.my/astro.com.my.test.js b/sites/astro.com.my/astro.com.my.test.js new file mode 100644 index 00000000..e4fe0327 --- /dev/null +++ b/sites/astro.com.my/astro.com.my.test.js @@ -0,0 +1,41 @@ +const { parser, url } = require('./astro.com.my.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('2022-08-29', 'YYYY-MM-DD').startOf('d') +const channel = { + site_id: '235', + xmltv_id: 'AstroArena.my' +} + +it('can generate valid url', () => { + expect(url({ channel })).toBe( + 'https://contenthub-api.eco.astro.com.my/channel/235.json' + ) +}) + +it('can parse response', () => { + const content = `{"responseCode":200,"responseMessage":"Channel Detail","response":{"schedule":{"2022-08-29":[{"eventId":"40182037","title":"Motor: Cub Prix 2022","programmeId":"KAEQR","episodeId":"KAEQY","datetime":"2022-08-29 00:15:00.0","datetimeInUtc":"2022-08-28 16:15:00.0","duration":"02:25:00","siTrafficKey":"1:10000285:47439431","detailUrl":"/details/Motor-Cub-Prix-2022-1:10000285:47439431"}],"2022-08-30":[{"eventId":"40197573","title":"BWF Kejohanan Dunia 2022","programmeId":"KAGFN","episodeId":"KDGUX","datetime":"2022-08-30 00:00:00.0","datetimeInUtc":"2022-08-29 16:00:00.0","duration":"05:15:00","siTrafficKey":"1:10000285:47489961","detailUrl":"/details/BWF-Kejohanan-Dunia-2022-1:10000285:47489961"}]}}}` + const result = parser({ content }).map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) + + + expect(result).toMatchObject([ + { + start: '2022-08-28T16:15:00.000Z', + stop: '2022-08-28T18:40:00.000Z', + title: 'Motor: Cub Prix 2022', + }, + { + start: '2022-08-29T16:00:00.000Z', + stop: '2022-08-29T21:15:00.000Z', + title: 'BWF Kejohanan Dunia 2022', + } + ]) +}) \ No newline at end of file From fbe05492e48f9e1760bc439dd7a8cdc5e83d4734 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Mon, 29 Aug 2022 19:37:15 +0300 Subject: [PATCH 2/9] Create content.json --- sites/astro.com.my/__data__/content.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 sites/astro.com.my/__data__/content.json diff --git a/sites/astro.com.my/__data__/content.json b/sites/astro.com.my/__data__/content.json new file mode 100644 index 00000000..dd130b4f --- /dev/null +++ b/sites/astro.com.my/__data__/content.json @@ -0,0 +1 @@ +{"responseCode":200,"responseMessage":"Channel Detail","response":{"id":235,"title":"Astro Arena HD","description":"The ultimate destination for Malaysian sporting events, as well as showcasing Malaysian athletes competing at the pinnacle stage of world sports, and also the latest information on sports in the country. The channel of Malaysian sports, for Malaysia.","isHd":true,"stbNumber":"801","language":"Malay","category":"Sports","originalImage":"http://linear-poster.astro.com.my/prod/logo/Astro_Arena_v1.png","backupImage":"http://linear-poster.astro.com.my/prod/poster/ivp_default_10000285_IVP_LAND_448x252_v2.jpg","imageUrl":"https://divign0fdw3sv.cloudfront.net/Images/ChannelLogo/contenthub/235_144.png","isAstroGoExclusive":false,"filters":["Set Top Box","Sports"],"schedule":{"2022-08-30":[{"eventId":"40197573","title":"BWF Kejohanan Dunia 2022","programmeId":"KAGFN","episodeId":"KDGUX","datetime":"2022-08-30 00:00:00.0","datetimeInUtc":"2022-08-29 16:00:00.0","duration":"05:15:00","siTrafficKey":"1:10000285:47489961","detailUrl":"/details/BWF-Kejohanan-Dunia-2022-1:10000285:47489961"},{"eventId":"40197574","title":"Piala Thanhnien 2022 B19: MAS lwn THA","programmeId":"KDAHI","episodeId":"KDAHJ","datetime":"2022-08-30 05:15:00.0","datetimeInUtc":"2022-08-29 21:15:00.0","duration":"01:45:00","siTrafficKey":"1:10000285:47489963","detailUrl":"/details/Piala-Thanhnien-2022-B19-MAS-lwn-THA-1:10000285:47489963"},{"eventId":"40197575","title":"Nadi Arena","programmeId":"JOPAR","episodeId":"JOPRQ","datetime":"2022-08-30 07:00:00.0","datetimeInUtc":"2022-08-29 23:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489797","detailUrl":"/details/Nadi-Arena-1:10000285:47489797"},{"eventId":"40197576","title":"Piala Thanhnien 2022 B19: THA lwn MYA","programmeId":"KDAHI","episodeId":"KDAHP","datetime":"2022-08-30 08:00:00.0","datetimeInUtc":"2022-08-30 00:00:00.0","duration":"02:00:00","siTrafficKey":"1:10000285:47489979","detailUrl":"/details/Piala-Thanhnien-2022-B19-THA-lwn-MYA-1:10000285:47489979"},{"eventId":"40197577","title":"Nindia","programmeId":"JZQHD","episodeId":"KCTSN","datetime":"2022-08-30 10:00:00.0","datetimeInUtc":"2022-08-30 02:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489886","detailUrl":"/details/Nindia-1:10000285:47489886"},{"eventId":"40197578","title":"Piala Thanhnien 2022 B19: VIE lwn MAS","programmeId":"KDAHI","episodeId":"KDAHQ","datetime":"2022-08-30 11:00:00.0","datetimeInUtc":"2022-08-30 03:00:00.0","duration":"02:00:00","siTrafficKey":"1:10000285:47489977","detailUrl":"/details/Piala-Thanhnien-2022-B19-VIE-lwn-MAS-1:10000285:47489977"},{"eventId":"40197579","title":"Nadi Arena","programmeId":"JOPAR","episodeId":"JOPRQ","datetime":"2022-08-30 13:00:00.0","datetimeInUtc":"2022-08-30 05:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489807","detailUrl":"/details/Nadi-Arena-1:10000285:47489807"},{"eventId":"40197580","title":"BWF Kejohanan Dunia 2022: Akhir","programmeId":"KAGFN","episodeId":"KDGVD","datetime":"2022-08-30 14:00:00.0","datetimeInUtc":"2022-08-30 06:00:00.0","duration":"05:10:00","siTrafficKey":"1:10000285:47489916","detailUrl":"/details/BWF-Kejohanan-Dunia-2022-Akhir-1:10000285:47489916"},{"eventId":"40240935","title":"Sorotan Sukan Komanwel 2022","programmeId":"KALNW","episodeId":"KCMWL","datetime":"2022-08-30 19:10:00.0","datetimeInUtc":"2022-08-30 11:10:00.0","duration":"00:20:00","siTrafficKey":"1:10000285:47540288","detailUrl":"/details/Sorotan-Sukan-Komanwel-2022-1:10000285:47540288"},{"eventId":"40197582","title":"(L) Nadi Arena","programmeId":"HUMKK","episodeId":"HUMKM","datetime":"2022-08-30 19:30:00.0","datetimeInUtc":"2022-08-30 11:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489877","detailUrl":"/details/L-Nadi-Arena-1:10000285:47489877"},{"eventId":"40197583","title":"Masa Tambahan 2022/23","programmeId":"KDCTS","episodeId":"KDCTW","datetime":"2022-08-30 20:30:00.0","datetimeInUtc":"2022-08-30 12:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489906","detailUrl":"/details/Masa-Tambahan-202223-1:10000285:47489906"},{"eventId":"40197584","title":"Sorotan Sepak Takraw Tun Ali 2022: Akhir","programmeId":"KDANE","episodeId":"KDANM","datetime":"2022-08-30 21:30:00.0","datetimeInUtc":"2022-08-30 13:30:00.0","duration":"00:30:00","siTrafficKey":"1:10000285:47489993","detailUrl":"/details/Sorotan-Sepak-Takraw-Tun-Ali-2022-Akhir-1:10000285:47489993"},{"eventId":"40197585","title":"Nindia","programmeId":"JZQHD","episodeId":"KCTSN","datetime":"2022-08-30 22:00:00.0","datetimeInUtc":"2022-08-30 14:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489884","detailUrl":"/details/Nindia-1:10000285:47489884"},{"eventId":"40197586","title":"Nadi Arena","programmeId":"JOPAR","episodeId":"JOPRR","datetime":"2022-08-30 23:00:00.0","datetimeInUtc":"2022-08-30 15:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489785","detailUrl":"/details/Nadi-Arena-1:10000285:47489785"}],"2022-08-31":[{"eventId":"40197587","title":"BWF Kejohanan Dunia 2022","programmeId":"KAGFN","episodeId":"KDGUY","datetime":"2022-08-31 00:00:00.0","datetimeInUtc":"2022-08-30 16:00:00.0","duration":"03:50:00","siTrafficKey":"1:10000285:47489959","detailUrl":"/details/BWF-Kejohanan-Dunia-2022-1:10000285:47489959"},{"eventId":"40219134","title":"Sepak Takraw Piala Tun Ali 2022","programmeId":"KDDVU","episodeId":"KDDWX","datetime":"2022-08-31 03:50:00.0","datetimeInUtc":"2022-08-30 19:50:00.0","duration":"01:10:00","siTrafficKey":"1:10000285:47528979","detailUrl":"/details/Sepak-Takraw-Piala-Tun-Ali-2022-1:10000285:47528979"},{"eventId":"40197588","title":"Piala Thanhnien 2022 B19: VIE lwn MYA","programmeId":"KDAHI","episodeId":"KDAHK","datetime":"2022-08-31 05:00:00.0","datetimeInUtc":"2022-08-30 21:00:00.0","duration":"02:00:00","siTrafficKey":"1:10000285:47489975","detailUrl":"/details/Piala-Thanhnien-2022-B19-VIE-lwn-MYA-1:10000285:47489975"},{"eventId":"40197589","title":"Nadi Arena","programmeId":"JOPAR","episodeId":"JOPRR","datetime":"2022-08-31 07:00:00.0","datetimeInUtc":"2022-08-30 23:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489795","detailUrl":"/details/Nadi-Arena-1:10000285:47489795"},{"eventId":"40197590","title":"Sorotan Bolasepak 2022: BRUTD lwn NSFC","programmeId":"JZEOW","episodeId":"KCIKA","datetime":"2022-08-31 08:00:00.0","datetimeInUtc":"2022-08-31 00:00:00.0","duration":"00:30:00","siTrafficKey":"1:10000285:47490021","detailUrl":"/details/Sorotan-Bolasepak-2022-BRUTD-lwn-NSFC-1:10000285:47490021"},{"eventId":"40197591","title":"Sepak Takraw Piala Tun Ali 2022","programmeId":"KDDVU","episodeId":"KDDXA","datetime":"2022-08-31 08:30:00.0","datetimeInUtc":"2022-08-31 00:30:00.0","duration":"01:15:00","siTrafficKey":"1:10000285:47490015","detailUrl":"/details/Sepak-Takraw-Piala-Tun-Ali-2022-1:10000285:47490015"},{"eventId":"40197592","title":"Sepak Takraw Piala Tun Ali 2022","programmeId":"KDDVU","episodeId":"KDDXB","datetime":"2022-08-31 09:45:00.0","datetimeInUtc":"2022-08-31 01:45:00.0","duration":"01:15:00","siTrafficKey":"1:10000285:47490017","detailUrl":"/details/Sepak-Takraw-Piala-Tun-Ali-2022-1:10000285:47490017"},{"eventId":"40197593","title":"Masa Tambahan 2022/23","programmeId":"KDCTS","episodeId":"KDCTW","datetime":"2022-08-31 11:00:00.0","datetimeInUtc":"2022-08-31 03:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489908","detailUrl":"/details/Masa-Tambahan-202223-1:10000285:47489908"},{"eventId":"40197594","title":"Nindia","programmeId":"JZQHD","episodeId":"KCTSN","datetime":"2022-08-31 12:00:00.0","datetimeInUtc":"2022-08-31 04:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490019","detailUrl":"/details/Nindia-1:10000285:47490019"},{"eventId":"40197595","title":"Nadi Arena","programmeId":"JOPAR","episodeId":"JOPRR","datetime":"2022-08-31 13:00:00.0","datetimeInUtc":"2022-08-31 05:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489805","detailUrl":"/details/Nadi-Arena-1:10000285:47489805"},{"eventId":"40197596","title":"Motor: Cub Prix 2022","programmeId":"KAEQR","episodeId":"KAEQY","datetime":"2022-08-31 14:00:00.0","datetimeInUtc":"2022-08-31 06:00:00.0","duration":"02:30:00","siTrafficKey":"1:10000285:47490011","detailUrl":"/details/Motor-Cub-Prix-2022-1:10000285:47490011"},{"eventId":"40197597","title":"Sepak Takraw Piala Tun Ali 2022","programmeId":"KDDVU","episodeId":"KDDXE","datetime":"2022-08-31 16:30:00.0","datetimeInUtc":"2022-08-31 08:30:00.0","duration":"02:00:00","siTrafficKey":"1:10000285:47490013","detailUrl":"/details/Sepak-Takraw-Piala-Tun-Ali-2022-1:10000285:47490013"},{"eventId":"40197598","title":"Sorotan BWF Kejohanan Dunia 2022 Akhir","programmeId":"KDANE","episodeId":"KDANO","datetime":"2022-08-31 18:30:00.0","datetimeInUtc":"2022-08-31 10:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489912","detailUrl":"/details/Sorotan-BWF-Kejohanan-Dunia-2022-Akhir-1:10000285:47489912"},{"eventId":"40197599","title":"(L) Nadi Arena","programmeId":"HUMKK","episodeId":"HUMKN","datetime":"2022-08-31 19:30:00.0","datetimeInUtc":"2022-08-31 11:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489875","detailUrl":"/details/L-Nadi-Arena-1:10000285:47489875"},{"eventId":"40197600","title":"Sorotan Bolasepak: Akhir","programmeId":"KDANE","episodeId":"KDANJ","datetime":"2022-08-31 20:30:00.0","datetimeInUtc":"2022-08-31 12:30:00.0","duration":"00:30:00","siTrafficKey":"1:10000285:47490005","detailUrl":"/details/Sorotan-Bolasepak-Akhir-1:10000285:47490005"},{"eventId":"40197601","title":"NSL","programmeId":"KBQKE","episodeId":"KDHYH","datetime":"2022-08-31 21:00:00.0","datetimeInUtc":"2022-08-31 13:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490049","detailUrl":"/details/NSL-1:10000285:47490049"},{"eventId":"40197602","title":"Speedy Tigers Ke Piala Dunia","programmeId":"KDHYA","episodeId":"KDHYB","datetime":"2022-08-31 22:00:00.0","datetimeInUtc":"2022-08-31 14:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490041","detailUrl":"/details/Speedy-Tigers-Ke-Piala-Dunia-1:10000285:47490041"},{"eventId":"40197603","title":"Nadi Arena","programmeId":"JOPAR","episodeId":"JOPRS","datetime":"2022-08-31 23:00:00.0","datetimeInUtc":"2022-08-31 15:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489783","detailUrl":"/details/Nadi-Arena-1:10000285:47489783"}],"2022-09-01":[{"eventId":"40197604","title":"BWF Kejohanan Dunia 2022: QF","programmeId":"KAGFN","episodeId":"KDGUZ","datetime":"2022-09-01 00:00:00.0","datetimeInUtc":"2022-08-31 16:00:00.0","duration":"05:00:00","siTrafficKey":"1:10000285:47489942","detailUrl":"/details/BWF-Kejohanan-Dunia-2022-QF-1:10000285:47489942"},{"eventId":"40197605","title":"Piala Thanhnien 2022 B19: THA lwn MYA","programmeId":"KDAHI","episodeId":"KDAHL","datetime":"2022-09-01 05:00:00.0","datetimeInUtc":"2022-08-31 21:00:00.0","duration":"02:00:00","siTrafficKey":"1:10000285:47489973","detailUrl":"/details/Piala-Thanhnien-2022-B19-THA-lwn-MYA-1:10000285:47489973"},{"eventId":"40203412","title":"Nadi Arena","programmeId":"JOPAR","episodeId":"JOPRS","datetime":"2022-09-01 07:00:00.0","datetimeInUtc":"2022-08-31 23:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489793","detailUrl":"/details/Nadi-Arena-1:10000285:47489793"},{"eventId":"40203413","title":"Sorotan Futsal: TOT lwn PNG","programmeId":"JZEOW","episodeId":"KCIJY","datetime":"2022-09-01 08:00:00.0","datetimeInUtc":"2022-09-01 00:00:00.0","duration":"00:30:00","siTrafficKey":"1:10000285:47490031","detailUrl":"/details/Sorotan-Futsal-TOT-lwn-PNG-1:10000285:47490031"},{"eventId":"40203414","title":"Sepak Takraw Piala Tun Ali 2022","programmeId":"KDDVU","episodeId":"KDDXC","datetime":"2022-09-01 08:30:00.0","datetimeInUtc":"2022-09-01 00:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490063","detailUrl":"/details/Sepak-Takraw-Piala-Tun-Ali-2022-1:10000285:47490063"},{"eventId":"40203415","title":"Speedy Tigers Ke Piala Dunia","programmeId":"KDHYA","episodeId":"KDHYB","datetime":"2022-09-01 09:30:00.0","datetimeInUtc":"2022-09-01 01:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490057","detailUrl":"/details/Speedy-Tigers-Ke-Piala-Dunia-1:10000285:47490057"},{"eventId":"40203416","title":"Sorotan BWF Kejohanan Dunia 2022 SF","programmeId":"KDANE","episodeId":"KDANN","datetime":"2022-09-01 10:30:00.0","datetimeInUtc":"2022-09-01 02:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490025","detailUrl":"/details/Sorotan-BWF-Kejohanan-Dunia-2022-SF-1:10000285:47490025"},{"eventId":"40203417","title":"NSL","programmeId":"KBQKE","episodeId":"KDHYH","datetime":"2022-09-01 11:30:00.0","datetimeInUtc":"2022-09-01 03:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490055","detailUrl":"/details/NSL-1:10000285:47490055"},{"eventId":"40203418","title":"Sorotan Bolasepak 2022: MAS lwn BRU","programmeId":"JZEOW","episodeId":"KBIFA","datetime":"2022-09-01 12:30:00.0","datetimeInUtc":"2022-09-01 04:30:00.0","duration":"00:30:00","siTrafficKey":"1:10000285:47490065","detailUrl":"/details/Sorotan-Bolasepak-2022-MAS-lwn-BRU-1:10000285:47490065"},{"eventId":"40203419","title":"Nadi Arena","programmeId":"JOPAR","episodeId":"JOPRS","datetime":"2022-09-01 13:00:00.0","datetimeInUtc":"2022-09-01 05:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489803","detailUrl":"/details/Nadi-Arena-1:10000285:47489803"},{"eventId":"40203420","title":"Sorotan Bolasepak 2022: MAS lwn HKG","programmeId":"JZEOW","episodeId":"KBIFB","datetime":"2022-09-01 14:00:00.0","datetimeInUtc":"2022-09-01 06:00:00.0","duration":"00:30:00","siTrafficKey":"1:10000285:47490067","detailUrl":"/details/Sorotan-Bolasepak-2022-MAS-lwn-HKG-1:10000285:47490067"},{"eventId":"40203421","title":"Sepak Takraw Piala Tun Ali 2022","programmeId":"KDDVU","episodeId":"KDDXF","datetime":"2022-09-01 14:30:00.0","datetimeInUtc":"2022-09-01 06:30:00.0","duration":"02:00:00","siTrafficKey":"1:10000285:47490059","detailUrl":"/details/Sepak-Takraw-Piala-Tun-Ali-2022-1:10000285:47490059"},{"eventId":"40203422","title":"Sorotan BWF Kejohanan Dunia 2022 Akhir","programmeId":"KDANE","episodeId":"KDANO","datetime":"2022-09-01 16:30:00.0","datetimeInUtc":"2022-09-01 08:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490027","detailUrl":"/details/Sorotan-BWF-Kejohanan-Dunia-2022-Akhir-1:10000285:47490027"},{"eventId":"40203423","title":"Nindia","programmeId":"JZQHD","episodeId":"KCTSN","datetime":"2022-09-01 17:30:00.0","datetimeInUtc":"2022-09-01 09:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490035","detailUrl":"/details/Nindia-1:10000285:47490035"},{"eventId":"40203424","title":"Masa Tambahan 2022/23","programmeId":"KDCTS","episodeId":"KDCTW","datetime":"2022-09-01 18:30:00.0","datetimeInUtc":"2022-09-01 10:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490037","detailUrl":"/details/Masa-Tambahan-202223-1:10000285:47490037"},{"eventId":"40203425","title":"(L) Nadi Arena","programmeId":"HUMKK","episodeId":"HUMKO","datetime":"2022-09-01 19:30:00.0","datetimeInUtc":"2022-09-01 11:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489873","detailUrl":"/details/L-Nadi-Arena-1:10000285:47489873"},{"eventId":"40203426","title":"Speedy Tigers Ke Piala Dunia","programmeId":"KDHYA","episodeId":"KDHYB","datetime":"2022-09-01 20:30:00.0","datetimeInUtc":"2022-09-01 12:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490043","detailUrl":"/details/Speedy-Tigers-Ke-Piala-Dunia-1:10000285:47490043"},{"eventId":"40203427","title":"Sorotan Futsal: SEL lwn PAH","programmeId":"JZEOW","episodeId":"KCIJZ","datetime":"2022-09-01 21:30:00.0","datetimeInUtc":"2022-09-01 13:30:00.0","duration":"00:30:00","siTrafficKey":"1:10000285:47490029","detailUrl":"/details/Sorotan-Futsal-SEL-lwn-PAH-1:10000285:47490029"},{"eventId":"40203428","title":"NSL","programmeId":"KBQKE","episodeId":"KDHYH","datetime":"2022-09-01 22:00:00.0","datetimeInUtc":"2022-09-01 14:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490047","detailUrl":"/details/NSL-1:10000285:47490047"},{"eventId":"40203429","title":"Nadi Arena","programmeId":"JOPAR","episodeId":"JOPRT","datetime":"2022-09-01 23:00:00.0","datetimeInUtc":"2022-09-01 15:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489781","detailUrl":"/details/Nadi-Arena-1:10000285:47489781"}],"2022-09-02":[{"eventId":"40241266","title":"BWF Kejohanan Dunia 2022: Akhir","programmeId":"KAGFN","episodeId":"KDMDT","datetime":"2022-09-02 00:00:00.0","datetimeInUtc":"2022-09-01 16:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47540634","detailUrl":"/details/BWF-Kejohanan-Dunia-2022-Akhir-1:10000285:47540634"},{"eventId":"40203430","title":"BWF Kejohanan Dunia 2022: QF","programmeId":"KAGFN","episodeId":"KDGVA","datetime":"2022-09-02 01:00:00.0","datetimeInUtc":"2022-09-01 17:00:00.0","duration":"04:00:00","siTrafficKey":"1:10000285:47489935","detailUrl":"/details/BWF-Kejohanan-Dunia-2022-QF-1:10000285:47489935"},{"eventId":"40203431","title":"Piala Thanhnien 2022 B19: VIE lwn MAS","programmeId":"KDAHI","episodeId":"KDAHM","datetime":"2022-09-02 05:00:00.0","datetimeInUtc":"2022-09-01 21:00:00.0","duration":"01:55:00","siTrafficKey":"1:10000285:47489971","detailUrl":"/details/Piala-Thanhnien-2022-B19-VIE-lwn-MAS-1:10000285:47489971"},{"eventId":"40211740","title":"Nadi Arena","programmeId":"JOPAR","episodeId":"JOPRT","datetime":"2022-09-02 06:55:00.0","datetimeInUtc":"2022-09-01 22:55:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489791","detailUrl":"/details/Nadi-Arena-1:10000285:47489791"},{"eventId":"40211741","title":"BWF Kejohanan Dunia 2022: Akhir","programmeId":"KAGFN","episodeId":"KDGVD","datetime":"2022-09-02 07:55:00.0","datetimeInUtc":"2022-09-01 23:55:00.0","duration":"05:05:00","siTrafficKey":"1:10000285:47489955","detailUrl":"/details/BWF-Kejohanan-Dunia-2022-Akhir-1:10000285:47489955"},{"eventId":"40211742","title":"Nadi Arena","programmeId":"JOPAR","episodeId":"JOPRT","datetime":"2022-09-02 13:00:00.0","datetimeInUtc":"2022-09-02 05:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489801","detailUrl":"/details/Nadi-Arena-1:10000285:47489801"},{"eventId":"40211743","title":"NSL","programmeId":"KBQKE","episodeId":"KDHYH","datetime":"2022-09-02 14:00:00.0","datetimeInUtc":"2022-09-02 06:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490069","detailUrl":"/details/NSL-1:10000285:47490069"},{"eventId":"40211744","title":"(L) MPL MY","programmeId":"KDAYE","episodeId":"KDDYD","datetime":"2022-09-02 15:00:00.0","datetimeInUtc":"2022-09-02 07:00:00.0","duration":"02:00:00","siTrafficKey":"1:10000285:47507849","detailUrl":"/details/L-MPL-MY-1:10000285:47507849"},{"eventId":"40211745","title":"Nindia","programmeId":"JZQHD","episodeId":"KCTSN","datetime":"2022-09-02 17:00:00.0","datetimeInUtc":"2022-09-02 09:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490073","detailUrl":"/details/Nindia-1:10000285:47490073"},{"eventId":"40211746","title":"Sorotan Sepak Takraw Tun Ali 2022: Akhir","programmeId":"KDANE","episodeId":"KDANM","datetime":"2022-09-02 18:00:00.0","datetimeInUtc":"2022-09-02 10:00:00.0","duration":"00:30:00","siTrafficKey":"1:10000285:47490079","detailUrl":"/details/Sorotan-Sepak-Takraw-Tun-Ali-2022-Akhir-1:10000285:47490079"},{"eventId":"40211747","title":"Speedy Tigers Ke Piala Dunia","programmeId":"KDHYA","episodeId":"KDHYB","datetime":"2022-09-02 18:30:00.0","datetimeInUtc":"2022-09-02 10:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490071","detailUrl":"/details/Speedy-Tigers-Ke-Piala-Dunia-1:10000285:47490071"},{"eventId":"40211748","title":"(L) Nadi Arena","programmeId":"HUMKK","episodeId":"HUMKP","datetime":"2022-09-02 19:30:00.0","datetimeInUtc":"2022-09-02 11:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489871","detailUrl":"/details/L-Nadi-Arena-1:10000285:47489871"},{"eventId":"40211749","title":"Sorotan Bolasepak: Akhir","programmeId":"KDANE","episodeId":"KDANJ","datetime":"2022-09-02 20:30:00.0","datetimeInUtc":"2022-09-02 12:30:00.0","duration":"00:30:00","siTrafficKey":"1:10000285:47490085","detailUrl":"/details/Sorotan-Bolasepak-Akhir-1:10000285:47490085"},{"eventId":"40211750","title":"Sorotan BWF Kejohanan Dunia 2022 SF","programmeId":"KDANE","episodeId":"KDANN","datetime":"2022-09-02 21:00:00.0","datetimeInUtc":"2022-09-02 13:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490083","detailUrl":"/details/Sorotan-BWF-Kejohanan-Dunia-2022-SF-1:10000285:47490083"},{"eventId":"40211751","title":"Sorotan BWF Kejohanan Dunia 2022 Akhir","programmeId":"KDANE","episodeId":"KDANO","datetime":"2022-09-02 22:00:00.0","datetimeInUtc":"2022-09-02 14:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490081","detailUrl":"/details/Sorotan-BWF-Kejohanan-Dunia-2022-Akhir-1:10000285:47490081"},{"eventId":"40211752","title":"(L) Nadi Bola","programmeId":"JMDDB","episodeId":"KCILC","datetime":"2022-09-02 23:00:00.0","datetimeInUtc":"2022-09-02 15:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489827","detailUrl":"/details/L-Nadi-Bola-1:10000285:47489827"}],"2022-09-03":[{"eventId":"40211753","title":"BWF Kejohanan Dunia 2022: SF","programmeId":"KAGFN","episodeId":"KDGVB","datetime":"2022-09-03 00:00:00.0","datetimeInUtc":"2022-09-02 16:00:00.0","duration":"06:15:00","siTrafficKey":"1:10000285:47489933","detailUrl":"/details/BWF-Kejohanan-Dunia-2022-SF-1:10000285:47489933"},{"eventId":"40241267","title":"No information available","programmeId":"KALNW","episodeId":"KCZLB","datetime":"2022-09-03 06:15:00.0","datetimeInUtc":"2022-09-02 22:15:00.0","duration":"00:15:00","siTrafficKey":"1:10000285:47540637","detailUrl":"/details/No-information-available-1:10000285:47540637"},{"eventId":"40241268","title":"Sorotan Bolasepak: MAS lwn MYA","programmeId":"KDANE","episodeId":"KDANH","datetime":"2022-09-03 06:30:00.0","datetimeInUtc":"2022-09-02 22:30:00.0","duration":"00:30:00","siTrafficKey":"1:10000285:47540639","detailUrl":"/details/Sorotan-Bolasepak-MAS-lwn-MYA-1:10000285:47540639"},{"eventId":"40219836","title":"Nadi Bola","programmeId":"JMDDB","episodeId":"KCILC","datetime":"2022-09-03 07:00:00.0","datetimeInUtc":"2022-09-02 23:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489854","detailUrl":"/details/Nadi-Bola-1:10000285:47489854"},{"eventId":"40219837","title":"Sepak Takraw Tun Ali: KL lwn PEN","programmeId":"KDDVU","episodeId":"KDDWT","datetime":"2022-09-03 08:00:00.0","datetimeInUtc":"2022-09-03 00:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490123","detailUrl":"/details/Sepak-Takraw-Tun-Ali-KL-lwn-PEN-1:10000285:47490123"},{"eventId":"40219838","title":"Sepak Takraw Tun Ali: NS lwn TER","programmeId":"KDDVU","episodeId":"KDDWU","datetime":"2022-09-03 09:00:00.0","datetimeInUtc":"2022-09-03 01:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490121","detailUrl":"/details/Sepak-Takraw-Tun-Ali-NS-lwn-TER-1:10000285:47490121"},{"eventId":"40219839","title":"Nadi Bola","programmeId":"JMDDB","episodeId":"KCILC","datetime":"2022-09-03 10:00:00.0","datetimeInUtc":"2022-09-03 02:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489859","detailUrl":"/details/Nadi-Bola-1:10000285:47489859"},{"eventId":"40219840","title":"Nindia Pak Long","programmeId":"KDBBP","episodeId":"KDBBU","datetime":"2022-09-03 11:00:00.0","datetimeInUtc":"2022-09-03 03:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489888","detailUrl":"/details/Nindia-Pak-Long-1:10000285:47489888"},{"eventId":"40219841","title":"(L) MPL MY","programmeId":"KDAYE","episodeId":"KDKHQ","datetime":"2022-09-03 12:00:00.0","datetimeInUtc":"2022-09-03 04:00:00.0","duration":"02:00:00","siTrafficKey":"1:10000285:47508264","detailUrl":"/details/L-MPL-MY-1:10000285:47508264"},{"eventId":"40219842","title":"(L) MSBK 2022: Pusingan ke-2","programmeId":"KCVSI","episodeId":"KCVTM","datetime":"2022-09-03 14:00:00.0","datetimeInUtc":"2022-09-03 06:00:00.0","duration":"03:00:00","siTrafficKey":"1:10000285:47510173","detailUrl":"/details/L-MSBK-2022-Pusingan-ke-2-1:10000285:47510173"},{"eventId":"40219843","title":"Masa Tambahan 2022/23","programmeId":"KDCTS","episodeId":"KDCTW","datetime":"2022-09-03 17:00:00.0","datetimeInUtc":"2022-09-03 09:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490113","detailUrl":"/details/Masa-Tambahan-202223-1:10000285:47490113"},{"eventId":"40219844","title":"Speedy Tigers Ke Piala Dunia","programmeId":"KDHYA","episodeId":"KDHYB","datetime":"2022-09-03 18:00:00.0","datetimeInUtc":"2022-09-03 10:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490089","detailUrl":"/details/Speedy-Tigers-Ke-Piala-Dunia-1:10000285:47490089"},{"eventId":"40219845","title":"Sorotan Bolasepak: SIN lwn MAS","programmeId":"JZEOW","episodeId":"KACSU","datetime":"2022-09-03 19:00:00.0","datetimeInUtc":"2022-09-03 11:00:00.0","duration":"00:30:00","siTrafficKey":"1:10000285:47490127","detailUrl":"/details/Sorotan-Bolasepak-SIN-lwn-MAS-1:10000285:47490127"},{"eventId":"40219846","title":"(L) Nadi Weekend","programmeId":"JMKTN","episodeId":"KCINP","datetime":"2022-09-03 19:30:00.0","datetimeInUtc":"2022-09-03 11:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489815","detailUrl":"/details/L-Nadi-Weekend-1:10000285:47489815"},{"eventId":"40219847","title":"Nindia Pak Long","programmeId":"KDBBP","episodeId":"KDBBU","datetime":"2022-09-03 20:30:00.0","datetimeInUtc":"2022-09-03 12:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489894","detailUrl":"/details/Nindia-Pak-Long-1:10000285:47489894"},{"eventId":"40219848","title":"Sorotan Sepak Takraw Tun Ali 2022: Akhir","programmeId":"KDANE","episodeId":"KDANM","datetime":"2022-09-03 21:30:00.0","datetimeInUtc":"2022-09-03 13:30:00.0","duration":"00:30:00","siTrafficKey":"1:10000285:47490107","detailUrl":"/details/Sorotan-Sepak-Takraw-Tun-Ali-2022-Akhir-1:10000285:47490107"},{"eventId":"40219849","title":"NSL","programmeId":"KBQKE","episodeId":"KDHYH","datetime":"2022-09-03 22:00:00.0","datetimeInUtc":"2022-09-03 14:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490087","detailUrl":"/details/NSL-1:10000285:47490087"},{"eventId":"40219850","title":"(L) Nadi Bola","programmeId":"JMDDB","episodeId":"KDJGG","datetime":"2022-09-03 23:00:00.0","datetimeInUtc":"2022-09-03 15:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489825","detailUrl":"/details/L-Nadi-Bola-1:10000285:47489825"}],"2022-09-04":[{"eventId":"40219851","title":"BWF Kejohanan Dunia 2022: SF","programmeId":"KAGFN","episodeId":"KDGVC","datetime":"2022-09-04 00:00:00.0","datetimeInUtc":"2022-09-03 16:00:00.0","duration":"05:00:00","siTrafficKey":"1:10000285:47489931","detailUrl":"/details/BWF-Kejohanan-Dunia-2022-SF-1:10000285:47489931"},{"eventId":"40219852","title":"Piala Thanhnien 2022 B19: THA lwn VIE","programmeId":"KDAHI","episodeId":"KDAHO","datetime":"2022-09-04 05:00:00.0","datetimeInUtc":"2022-09-03 21:00:00.0","duration":"02:00:00","siTrafficKey":"1:10000285:47489967","detailUrl":"/details/Piala-Thanhnien-2022-B19-THA-lwn-VIE-1:10000285:47489967"},{"eventId":"40227978","title":"Nadi Bola","programmeId":"JMDDB","episodeId":"KDJGG","datetime":"2022-09-04 07:00:00.0","datetimeInUtc":"2022-09-03 23:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489852","detailUrl":"/details/Nadi-Bola-1:10000285:47489852"},{"eventId":"40227979","title":"Sorotan BWF Kejohanan Dunia 2022 Akhir","programmeId":"KDANE","episodeId":"KDANO","datetime":"2022-09-04 08:00:00.0","datetimeInUtc":"2022-09-04 00:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490099","detailUrl":"/details/Sorotan-BWF-Kejohanan-Dunia-2022-Akhir-1:10000285:47490099"},{"eventId":"40227980","title":"Nindia Pak Long","programmeId":"KDBBP","episodeId":"KDBBU","datetime":"2022-09-04 09:00:00.0","datetimeInUtc":"2022-09-04 01:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490097","detailUrl":"/details/Nindia-Pak-Long-1:10000285:47490097"},{"eventId":"40227981","title":"NSL","programmeId":"KBQKE","episodeId":"KDHYH","datetime":"2022-09-04 10:00:00.0","datetimeInUtc":"2022-09-04 02:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490095","detailUrl":"/details/NSL-1:10000285:47490095"},{"eventId":"40227982","title":"Nadi Bola","programmeId":"JMDDB","episodeId":"KDJGG","datetime":"2022-09-04 11:00:00.0","datetimeInUtc":"2022-09-04 03:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489857","detailUrl":"/details/Nadi-Bola-1:10000285:47489857"},{"eventId":"40227983","title":"(L) MPL MY","programmeId":"KDAYE","episodeId":"KDKHT","datetime":"2022-09-04 12:00:00.0","datetimeInUtc":"2022-09-04 04:00:00.0","duration":"02:00:00","siTrafficKey":"1:10000285:47508269","detailUrl":"/details/L-MPL-MY-1:10000285:47508269"},{"eventId":"40227984","title":"(L) MSBK 2022: Pusingan ke-2","programmeId":"KCVSI","episodeId":"KCVTN","datetime":"2022-09-04 14:00:00.0","datetimeInUtc":"2022-09-04 06:00:00.0","duration":"03:00:00","siTrafficKey":"1:10000285:47510187","detailUrl":"/details/L-MSBK-2022-Pusingan-ke-2-1:10000285:47510187"},{"eventId":"40227985","title":"Motor: Cub Prix 2022","programmeId":"KAEQR","episodeId":"KAEQY","datetime":"2022-09-04 17:00:00.0","datetimeInUtc":"2022-09-04 09:00:00.0","duration":"02:30:00","siTrafficKey":"1:10000285:47490093","detailUrl":"/details/Motor-Cub-Prix-2022-1:10000285:47490093"},{"eventId":"40227986","title":"(L) Nadi Weekend","programmeId":"JMKTN","episodeId":"KCINQ","datetime":"2022-09-04 19:30:00.0","datetimeInUtc":"2022-09-04 11:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489813","detailUrl":"/details/L-Nadi-Weekend-1:10000285:47489813"},{"eventId":"40227987","title":"Speedy Tigers Ke Piala Dunia","programmeId":"KDHYA","episodeId":"KDHYB","datetime":"2022-09-04 20:30:00.0","datetimeInUtc":"2022-09-04 12:30:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47490091","detailUrl":"/details/Speedy-Tigers-Ke-Piala-Dunia-1:10000285:47490091"},{"eventId":"40227988","title":"Sorotan Futsal: SEL lwn PAH","programmeId":"JZEOW","episodeId":"KCIJZ","datetime":"2022-09-04 21:30:00.0","datetimeInUtc":"2022-09-04 13:30:00.0","duration":"00:30:00","siTrafficKey":"1:10000285:47490109","detailUrl":"/details/Sorotan-Futsal-SEL-lwn-PAH-1:10000285:47490109"},{"eventId":"40227989","title":"Nindia Pak Long","programmeId":"KDBBP","episodeId":"KDBBU","datetime":"2022-09-04 22:00:00.0","datetimeInUtc":"2022-09-04 14:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489904","detailUrl":"/details/Nindia-Pak-Long-1:10000285:47489904"},{"eventId":"40227990","title":"Nadi Weekend","programmeId":"JMKTN","episodeId":"KCINQ","datetime":"2022-09-04 23:00:00.0","datetimeInUtc":"2022-09-04 15:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489865","detailUrl":"/details/Nadi-Weekend-1:10000285:47489865"}],"2022-09-05":[{"eventId":"40227991","title":"BWF Kejohanan Dunia 2022: Akhir","programmeId":"KAGFN","episodeId":"KDGVD","datetime":"2022-09-05 00:00:00.0","datetimeInUtc":"2022-09-04 16:00:00.0","duration":"05:10:00","siTrafficKey":"1:10000285:47489927","detailUrl":"/details/BWF-Kejohanan-Dunia-2022-Akhir-1:10000285:47489927"},{"eventId":"40227992","title":"Piala Thanhnien 2022 B19: THA lwn MYA","programmeId":"KDAHI","episodeId":"KDAHP","datetime":"2022-09-05 05:10:00.0","datetimeInUtc":"2022-09-04 21:10:00.0","duration":"01:50:00","siTrafficKey":"1:10000285:47489965","detailUrl":"/details/Piala-Thanhnien-2022-B19-THA-lwn-MYA-1:10000285:47489965"},{"eventId":"40234865","title":"Nadi Weekend","programmeId":"JMKTN","episodeId":"KCINQ","datetime":"2022-09-05 07:00:00.0","datetimeInUtc":"2022-09-04 23:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489867","detailUrl":"/details/Nadi-Weekend-1:10000285:47489867"},{"eventId":"40234866","title":"Nadi Weekend","programmeId":"JMKTN","episodeId":"KCINQ","datetime":"2022-09-05 13:00:00.0","datetimeInUtc":"2022-09-05 05:00:00.0","duration":"01:00:00","siTrafficKey":"1:10000285:47489869","detailUrl":"/details/Nadi-Weekend-1:10000285:47489869"}]}}} \ No newline at end of file From e4ee27c690c7a5c931b66dddb9c44e40e3ed9129 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Mon, 29 Aug 2022 19:37:17 +0300 Subject: [PATCH 3/9] Create no_content.html --- sites/astro.com.my/__data__/no_content.html | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 sites/astro.com.my/__data__/no_content.html diff --git a/sites/astro.com.my/__data__/no_content.html b/sites/astro.com.my/__data__/no_content.html new file mode 100644 index 00000000..f7e238f0 --- /dev/null +++ b/sites/astro.com.my/__data__/no_content.html @@ -0,0 +1,2 @@ + +AccessDeniedAccess DeniedF90SGHZYJ699VPE2FnSQQRmSgIWQjkrtu/JlD5UhB4sdDbjGxbxQi11+2LybUKavIk0RGzBxFU7imETDsT9eMoSvl8M= \ No newline at end of file From 995d7950a1c4901c2b34d486db6cb40773d608bb Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Mon, 29 Aug 2022 19:37:21 +0300 Subject: [PATCH 4/9] Update astro.com.my.test.js --- sites/astro.com.my/astro.com.my.test.js | 49 ++++++++++++------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/sites/astro.com.my/astro.com.my.test.js b/sites/astro.com.my/astro.com.my.test.js index e4fe0327..d8da6982 100644 --- a/sites/astro.com.my/astro.com.my.test.js +++ b/sites/astro.com.my/astro.com.my.test.js @@ -1,41 +1,40 @@ const { parser, url } = require('./astro.com.my.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('2022-08-29', 'YYYY-MM-DD').startOf('d') +const date = dayjs.utc('2022-08-30', 'YYYY-MM-DD').startOf('d') const channel = { - site_id: '235', - xmltv_id: 'AstroArena.my' + site_id: '235', + xmltv_id: 'AstroArena.my' } it('can generate valid url', () => { - expect(url({ channel })).toBe( - 'https://contenthub-api.eco.astro.com.my/channel/235.json' - ) + expect(url({ channel })).toBe('https://contenthub-api.eco.astro.com.my/channel/235.json') }) it('can parse response', () => { - const content = `{"responseCode":200,"responseMessage":"Channel Detail","response":{"schedule":{"2022-08-29":[{"eventId":"40182037","title":"Motor: Cub Prix 2022","programmeId":"KAEQR","episodeId":"KAEQY","datetime":"2022-08-29 00:15:00.0","datetimeInUtc":"2022-08-28 16:15:00.0","duration":"02:25:00","siTrafficKey":"1:10000285:47439431","detailUrl":"/details/Motor-Cub-Prix-2022-1:10000285:47439431"}],"2022-08-30":[{"eventId":"40197573","title":"BWF Kejohanan Dunia 2022","programmeId":"KAGFN","episodeId":"KDGUX","datetime":"2022-08-30 00:00:00.0","datetimeInUtc":"2022-08-29 16:00:00.0","duration":"05:15:00","siTrafficKey":"1:10000285:47489961","detailUrl":"/details/BWF-Kejohanan-Dunia-2022-1:10000285:47489961"}]}}}` - const result = parser({ content }).map(p => { - p.start = p.start.toJSON() - p.stop = p.stop.toJSON() - return p - }) + const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json')) + const results = parser({ content, date }).map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) + expect(results.length).toBe(14) + expect(results[0]).toMatchObject({ + start: '2022-08-29T16:00:00.000Z', + stop: '2022-08-29T21:15:00.000Z', + title: 'BWF Kejohanan Dunia 2022' + }) +}) - expect(result).toMatchObject([ - { - start: '2022-08-28T16:15:00.000Z', - stop: '2022-08-28T18:40:00.000Z', - title: 'Motor: Cub Prix 2022', - }, - { - start: '2022-08-29T16:00:00.000Z', - stop: '2022-08-29T21:15:00.000Z', - title: 'BWF Kejohanan Dunia 2022', - } - ]) -}) \ No newline at end of file +it('can handle empty guide', () => { + const content = fs.readFileSync(path.resolve(__dirname, '__data__/no_content.html')) + const result = parser({ date, content }) + expect(result).toMatchObject([]) +}) From 585e7ef434e45067ad2cd9fbdbfa6fd99483d7ac Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Mon, 29 Aug 2022 19:37:25 +0300 Subject: [PATCH 5/9] Update astro.com.my.config.js --- sites/astro.com.my/astro.com.my.config.js | 37 ++++++++++++++--------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/sites/astro.com.my/astro.com.my.config.js b/sites/astro.com.my/astro.com.my.config.js index da05dc49..5b448ae5 100644 --- a/sites/astro.com.my/astro.com.my.config.js +++ b/sites/astro.com.my/astro.com.my.config.js @@ -7,25 +7,32 @@ module.exports = { url: function ({ channel }) { return `https://contenthub-api.eco.astro.com.my/channel/${channel.site_id}.json` }, - parser: function ({ content }) { + parser: function ({ content, date }) { const programs = [] + const items = parseItems(content, date) + items.forEach(item => { + const start = dayjs.utc(item.datetimeInUtc) + const duration = parseDuration(item.duration) + const stop = start.add(duration, 's') + programs.push({ + title: item.title, + start: start, + stop: stop + }) + }) + + return programs + } +} + +function parseItems(content, date) { + try { const data = JSON.parse(content) const schedules = data.response.schedule - for(let items of Object.values(schedules)){ - items.forEach(item => { - const start = dayjs.utc(item.datetimeInUtc) - const duration = parseDuration(item.duration) - const stop = start.add(duration, 's') - programs.push({ - title: item.title, - start: start, - stop: stop - }) - }) - - } - return programs + return schedules[date.format('YYYY-MM-DD')] || [] + } catch (e) { + return [] } } From 689669469c3e319abf82aed548da50d510fa2e74 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Mon, 29 Aug 2022 19:38:19 +0300 Subject: [PATCH 6/9] Update astro.com.my.test.js --- sites/astro.com.my/astro.com.my.test.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sites/astro.com.my/astro.com.my.test.js b/sites/astro.com.my/astro.com.my.test.js index d8da6982..7e03d284 100644 --- a/sites/astro.com.my/astro.com.my.test.js +++ b/sites/astro.com.my/astro.com.my.test.js @@ -1,3 +1,5 @@ +// npx epg-grabber --config=sites/astro.com.my/astro.com.my.config.js --channels=sites/astro.com.my/astro.com.my_my.channels.xml --output=guide.xml --days=2 + const { parser, url } = require('./astro.com.my.config.js') const fs = require('fs') const path = require('path') From 277a1704ec467d89dca047e7e3cb1d08a0fb0e6e Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Mon, 29 Aug 2022 19:54:45 +0300 Subject: [PATCH 7/9] Update astro.com.my.config.js --- sites/astro.com.my/astro.com.my.config.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sites/astro.com.my/astro.com.my.config.js b/sites/astro.com.my/astro.com.my.config.js index 5b448ae5..e439b072 100644 --- a/sites/astro.com.my/astro.com.my.config.js +++ b/sites/astro.com.my/astro.com.my.config.js @@ -4,10 +4,15 @@ const utc = require('dayjs/plugin/utc') dayjs.extend(utc) module.exports = { site: 'astro.com.my', + request: { + cache: { + ttl: 6 * 60 * 60 * 1000 // 6h + } + }, url: function ({ channel }) { return `https://contenthub-api.eco.astro.com.my/channel/${channel.site_id}.json` }, - parser: function ({ content, date }) { + parser: function ({ content, date, cached }) { const programs = [] const items = parseItems(content, date) items.forEach(item => { From 2a1f22892bb06203fdcfba740a1e038cdd0a8971 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Mon, 29 Aug 2022 20:00:46 +0300 Subject: [PATCH 8/9] Update astro.com.my.test.js --- sites/astro.com.my/astro.com.my.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/astro.com.my/astro.com.my.test.js b/sites/astro.com.my/astro.com.my.test.js index 7e03d284..0319a1e8 100644 --- a/sites/astro.com.my/astro.com.my.test.js +++ b/sites/astro.com.my/astro.com.my.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/astro.com.my/astro.com.my.config.js --channels=sites/astro.com.my/astro.com.my_my.channels.xml --output=guide.xml --days=2 +// npx epg-grabber --config=sites/astro.com.my/astro.com.my.config.js --channels=sites/astro.com.my/astro.com.my_my.channels.xml --output=guide.xml --timeout=30000 --days=2 const { parser, url } = require('./astro.com.my.config.js') const fs = require('fs') From 36b3d81400b4074bb2df05be98b89826ab41224b Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Mon, 29 Aug 2022 20:19:29 +0300 Subject: [PATCH 9/9] Update astro.com.my.config.js Caching is disabled because the server too often fails to return any response. --- sites/astro.com.my/astro.com.my.config.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/sites/astro.com.my/astro.com.my.config.js b/sites/astro.com.my/astro.com.my.config.js index e439b072..5b448ae5 100644 --- a/sites/astro.com.my/astro.com.my.config.js +++ b/sites/astro.com.my/astro.com.my.config.js @@ -4,15 +4,10 @@ const utc = require('dayjs/plugin/utc') dayjs.extend(utc) module.exports = { site: 'astro.com.my', - request: { - cache: { - ttl: 6 * 60 * 60 * 1000 // 6h - } - }, url: function ({ channel }) { return `https://contenthub-api.eco.astro.com.my/channel/${channel.site_id}.json` }, - parser: function ({ content, date, cached }) { + parser: function ({ content, date }) { const programs = [] const items = parseItems(content, date) items.forEach(item => {