diff --git a/.github/workflows/auto-update.yml b/.github/workflows/auto-update.yml
index 604a7091..7b5cb28b 100644
--- a/.github/workflows/auto-update.yml
+++ b/.github/workflows/auto-update.yml
@@ -4,6 +4,21 @@ on:
schedule:
- cron: '0 0 * * *'
jobs:
+ astro_com_my:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2.3.1
+ - name: Install Dependencies
+ run: npm install
+ - name: Run EPG Grabber
+ run: npx epg-grabber --config=sites/astro.com.my.config.js
+ - name: Deploy to GitHub Pages
+ uses: JamesIves/github-pages-deploy-action@4.1.1
+ with:
+ branch: gh-pages
+ folder: .gh-pages
+ clean: false
comteco_com_bo:
runs-on: ubuntu-latest
steps:
diff --git a/README.md b/README.md
index 32b42df6..b67d223e 100644
--- a/README.md
+++ b/README.md
@@ -29,6 +29,7 @@ To load a program guide, all you need to do is copy the link to one of the guide
🇮🇹 Italy | https://iptv-org.github.io/epg/guides/guidatv.sky.it.guide.xml |
🇮🇪 Ireland | https://iptv-org.github.io/epg/guides/ontvtonight.com.guide.xml |
🇰🇿 Kazakhstan | https://iptv-org.github.io/epg/guides/tv.yandex.ru.guide.xml |
+ 🇲🇾 Malaysia | https://iptv-org.github.io/epg/guides/astro.com.my.guide.xml |
🇲🇽 Mexico | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
🇵🇾 Paraguay | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
🇵🇪 Peru | https://iptv-org.github.io/epg/guides/mi.tv.guide.xml |
diff --git a/sites/astro.com.my.channels.xml b/sites/astro.com.my.channels.xml
new file mode 100755
index 00000000..364a39cb
--- /dev/null
+++ b/sites/astro.com.my.channels.xml
@@ -0,0 +1,147 @@
+
+
+
+ 8TV
+ ABC Australia Asia
+ AXN East Asia
+ Adithya TV
+ Al Jazeera English
+ Animal Planet Southeast Asia
+ Animax Asia
+ Asian Food Network
+ Astro AEC
+ Astro AOD 311
+ Astro AOD 352
+ Astro AOD 353
+ Astro AOD 354
+ Astro AOD 355
+ Astro Arena
+ Astro Aura
+ Astro Awani
+ Astro BollyOne HD
+ Astro Box Office Movies Tayangan Hebat
+ Astro Box Office Movies Thangathirai
+ Astro Ceria
+ Astro Citra
+ Astro Cricket
+ Astro Hua Hee Dai
+ Astro Oasis
+ Astro Prima
+ Astro Quan Jia HD
+ Astro Rania
+ Astro Ria
+ Astro Shuang Xing
+ Astro SuperSport
+ Astro SuperSport 2
+ Astro SuperSport 3
+ Astro SuperSport 4
+ Astro TVIQ
+ Astro Tutor TV PT3
+ Astro Tutor TV SPM
+ Astro Tutor TV UPSR
+ Astro UHD
+ Astro Vaanavil
+ Astro Vellithirai
+ Astro Vinmeen HD
+ Astro Warna
+ Astro Xiao Tai Yang
+ Awesome TV
+ BBC World News Asia Pacific
+ BabyTV Asia
+ Bernama TV
+ Bloomberg TV Asia
+ Boo
+ Boomerang South East Asia
+ CCTV-4 Asia
+ CGTN
+ CNA
+ CNBC Asia-Pacific
+ CNN International Asia Pacific
+ CTi TV Asia
+ Cartoon Network Asia
+ Celestial Classic Movies
+ Celestial Movies Malaysia
+ Chutti TV Malaysia
+ Cinemax Asia +1
+ Colors TV
+ Colors Tamil
+ Crime & Investigation Asia
+ DMAX Southeast Asia
+ DW English
+ Discovery Asia
+ Discovery Channel Southeast Asia
+ Discovery Science Southeast Asia
+ Eurosport Asia
+ FX Asia +1
+ Food Network Asia
+ Fox Action Movies +1
+ Fox Asia
+ Fox Family Movies
+ Fox Life Malaysia
+ Fox Movies Asia +1
+ Fox Sports 2 Malaysia
+ Fox Sports 3 Asia
+ Fox Sports Malaysia
+ France 24 English
+ Go Shop 111
+ Go Shop 118
+ Go Shop 303
+ Go Shop Gaaya
+ Golf Channel Malaysia
+ HBO Malaysia
+ HGTV Asia
+ Hello
+ History Asia
+ Hits
+ Hits Movies +1
+ K-Plus
+ KBS World
+ Kix
+ MTV South East Asia +1
+ Makkal TV
+ NHK World Premium
+ NJOI TV
+ NTV7
+ Nat Geo People Asia
+ National Geographic Asia
+ National Geographic Wild Asia
+ Naura
+ Nick Jr Asia
+ Nickelodeon South East Asia
+ Oh!K
+ One
+ Phoenix Chinese Channel
+ Phoenix InfoNews Channel
+ RugbyPass TV
+ Sky News UK
+ Star Chinese Channel
+ Star Vijay Malaysia
+ Sun Music
+ Sun TV
+ TA-DAA!
+ TLC Southeast Asia
+ TV Alhijrah
+ TV Okey
+ TV1
+ TV2
+ TV3
+ TV9
+ TVB Classic
+ TVB Entertainment News
+ TVB Jade Malaysia
+ TVB News
+ TVB Xing He
+ TVBS Asia
+ TVBS News
+ TVS
+ WWE Network +1
+ Warner TV Southeast Asia
+ Zee Tamil Malaysia
+ beIn Sports Malaysia & Singapore
+ beIn Sports Max Malaysia & Singapore
+ eGG Network
+ iQIYI
+ tvN Movies
+ tvN Premium
+
+
\ No newline at end of file
diff --git a/sites/astro.com.my.config.js b/sites/astro.com.my.config.js
new file mode 100644
index 00000000..96bd2f3b
--- /dev/null
+++ b/sites/astro.com.my.config.js
@@ -0,0 +1,55 @@
+const dayjs = require('dayjs')
+const utc = require('dayjs/plugin/utc')
+
+dayjs.extend(utc)
+
+module.exports = {
+ lang: 'ms',
+ site: 'astro.com.my',
+ channels: 'astro.com.my.channels.xml',
+ output: '.gh-pages/guides/astro.com.my.guide.xml',
+ request: {
+ timeout: 10000
+ },
+ 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}`
+ },
+ logo: function ({ channel }) {
+ return `https://divign0fdw3sv.cloudfront.net/Images/ChannelLogo/contenthub/${channel.site_id}_144.png`
+ },
+ parser: function ({ content }) {
+ const programs = []
+ const data = JSON.parse(content)
+ const items = data.getevent
+ if (!items.length) return programs
+
+ 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()
+ })
+ }
+ })
+
+ return programs
+ }
+}
+
+function parseDuration(duration) {
+ const match = duration.match(/(\d{2}):(\d{2}):(\d{2})/)
+ const hours = parseInt(match[1])
+ const minutes = parseInt(match[2])
+ const seconds = parseInt(match[3])
+
+ return hours * 3600 + minutes * 60 + seconds
+}