diff --git a/.github/workflows/9tv.co.il.yml b/.github/workflows/9tv.co.il.yml index 07fbd82f1..5337634e8 100644 --- a/.github/workflows/9tv.co.il.yml +++ b/.github/workflows/9tv.co.il.yml @@ -1,7 +1,7 @@ name: 9tv.co.il on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/_update-api.yml b/.github/workflows/_update-api.yml index d076ee274..a1a9f00c8 100644 --- a/.github/workflows/_update-api.yml +++ b/.github/workflows/_update-api.yml @@ -2,7 +2,7 @@ name: _update-api on: workflow_dispatch: schedule: - - cron: '0 6 * * *' + - cron: '0 9 * * *' jobs: update: runs-on: ubuntu-latest diff --git a/.github/workflows/_update-readme.yml b/.github/workflows/_update-readme.yml index 976d23aaa..a813b0cf2 100644 --- a/.github/workflows/_update-readme.yml +++ b/.github/workflows/_update-readme.yml @@ -2,7 +2,7 @@ name: _update-readme on: workflow_dispatch: schedule: - - cron: '0 6 * * *' + - cron: '0 9 * * *' jobs: update: runs-on: ubuntu-latest diff --git a/.github/workflows/allente.se.yml b/.github/workflows/allente.se.yml index d4968348f..86bd9fdd8 100644 --- a/.github/workflows/allente.se.yml +++ b/.github/workflows/allente.se.yml @@ -1,7 +1,7 @@ name: allente.se on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/andorradifusio.ad.yml b/.github/workflows/andorradifusio.ad.yml index 3c9e72730..2178aa505 100644 --- a/.github/workflows/andorradifusio.ad.yml +++ b/.github/workflows/andorradifusio.ad.yml @@ -1,7 +1,7 @@ name: andorradifusio.ad on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/arianaafgtv.com.yml b/.github/workflows/arianaafgtv.com.yml index ecc02af77..da1569277 100644 --- a/.github/workflows/arianaafgtv.com.yml +++ b/.github/workflows/arianaafgtv.com.yml @@ -1,7 +1,7 @@ name: arianaafgtv.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/arianatelevision.com.yml b/.github/workflows/arianatelevision.com.yml index 8cbe2661d..3b03e1263 100644 --- a/.github/workflows/arianatelevision.com.yml +++ b/.github/workflows/arianatelevision.com.yml @@ -1,7 +1,7 @@ name: arianatelevision.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/artonline.tv.yml b/.github/workflows/artonline.tv.yml index 8a4223002..93a727afe 100644 --- a/.github/workflows/artonline.tv.yml +++ b/.github/workflows/artonline.tv.yml @@ -1,7 +1,7 @@ name: artonline.tv on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/astro.com.my.yml b/.github/workflows/astro.com.my.yml index 2f08d7ed2..b98837786 100644 --- a/.github/workflows/astro.com.my.yml +++ b/.github/workflows/astro.com.my.yml @@ -1,7 +1,7 @@ name: astro.com.my on: schedule: - - cron: '0 1 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/bein.com.yml b/.github/workflows/bein.com.yml index 31f361850..0267dc99b 100644 --- a/.github/workflows/bein.com.yml +++ b/.github/workflows/bein.com.yml @@ -1,7 +1,7 @@ name: bein.com on: schedule: - - cron: '0 1 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/beinsports.com.yml b/.github/workflows/beinsports.com.yml index c57e613df..efcb4d69f 100644 --- a/.github/workflows/beinsports.com.yml +++ b/.github/workflows/beinsports.com.yml @@ -1,7 +1,7 @@ name: beinsports.com on: schedule: - - cron: '10 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/bt.com.yml b/.github/workflows/bt.com.yml index fb65cfe8d..50f6889b7 100644 --- a/.github/workflows/bt.com.yml +++ b/.github/workflows/bt.com.yml @@ -1,7 +1,7 @@ name: bt.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/canalplus-afrique.com.yml b/.github/workflows/canalplus-afrique.com.yml index ebdddd231..e5b4392ce 100644 --- a/.github/workflows/canalplus-afrique.com.yml +++ b/.github/workflows/canalplus-afrique.com.yml @@ -1,7 +1,7 @@ name: canalplus-afrique.com on: schedule: - - cron: '10 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/canalplus-caraibes.com.yml b/.github/workflows/canalplus-caraibes.com.yml index e29f7ce88..c68cbb1c5 100644 --- a/.github/workflows/canalplus-caraibes.com.yml +++ b/.github/workflows/canalplus-caraibes.com.yml @@ -1,7 +1,7 @@ name: canalplus-caraibes.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/canalplus-haiti.com.yml b/.github/workflows/canalplus-haiti.com.yml index fe8718592..54e72d45a 100644 --- a/.github/workflows/canalplus-haiti.com.yml +++ b/.github/workflows/canalplus-haiti.com.yml @@ -1,7 +1,7 @@ name: canalplus-haiti.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/canalplus-reunion.com.yml b/.github/workflows/canalplus-reunion.com.yml index 38f6c0386..0559c63c4 100644 --- a/.github/workflows/canalplus-reunion.com.yml +++ b/.github/workflows/canalplus-reunion.com.yml @@ -1,7 +1,7 @@ name: canalplus-reunion.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/canalplus.com.yml b/.github/workflows/canalplus.com.yml index 3beee9ab1..e35f3f996 100644 --- a/.github/workflows/canalplus.com.yml +++ b/.github/workflows/canalplus.com.yml @@ -1,7 +1,7 @@ name: canalplus.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/chaines-tv.orange.fr.yml b/.github/workflows/chaines-tv.orange.fr.yml index 450403d47..da5f5fc55 100644 --- a/.github/workflows/chaines-tv.orange.fr.yml +++ b/.github/workflows/chaines-tv.orange.fr.yml @@ -1,7 +1,7 @@ name: chaines-tv.orange.fr on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/clickthecity.com.yml b/.github/workflows/clickthecity.com.yml index 31b3e2d85..d7238247a 100644 --- a/.github/workflows/clickthecity.com.yml +++ b/.github/workflows/clickthecity.com.yml @@ -1,7 +1,7 @@ name: clickthecity.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/comteco.com.bo.yml b/.github/workflows/comteco.com.bo.yml index e66b53e23..5e57a8d65 100644 --- a/.github/workflows/comteco.com.bo.yml +++ b/.github/workflows/comteco.com.bo.yml @@ -1,7 +1,7 @@ name: comteco.com.bo on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/cosmote.gr.yml b/.github/workflows/cosmote.gr.yml index 9db21c69c..379278af8 100644 --- a/.github/workflows/cosmote.gr.yml +++ b/.github/workflows/cosmote.gr.yml @@ -1,7 +1,7 @@ name: cosmote.gr on: schedule: - - cron: '30 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/delta.nl.yml b/.github/workflows/delta.nl.yml index dd14616ee..1b6e0b958 100644 --- a/.github/workflows/delta.nl.yml +++ b/.github/workflows/delta.nl.yml @@ -1,7 +1,7 @@ name: delta.nl on: schedule: - - cron: '10 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/digiturk.com.tr.yml b/.github/workflows/digiturk.com.tr.yml index c3fd0075e..c4454acf6 100644 --- a/.github/workflows/digiturk.com.tr.yml +++ b/.github/workflows/digiturk.com.tr.yml @@ -1,7 +1,7 @@ name: digiturk.com.tr on: schedule: - - cron: '10 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/directv.com.ar.yml b/.github/workflows/directv.com.ar.yml index c511551f9..3aac10e7e 100644 --- a/.github/workflows/directv.com.ar.yml +++ b/.github/workflows/directv.com.ar.yml @@ -1,7 +1,7 @@ name: directv.com.ar on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/directv.com.yml b/.github/workflows/directv.com.yml index 560243340..2269ab236 100644 --- a/.github/workflows/directv.com.yml +++ b/.github/workflows/directv.com.yml @@ -1,7 +1,7 @@ name: directv.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/dishtv.in.yml b/.github/workflows/dishtv.in.yml index 4f2144bbe..254afc292 100644 --- a/.github/workflows/dishtv.in.yml +++ b/.github/workflows/dishtv.in.yml @@ -1,7 +1,7 @@ name: dishtv.in on: schedule: - - cron: '10 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/dsmart.com.tr.yml b/.github/workflows/dsmart.com.tr.yml index 055f33398..e4653e29d 100644 --- a/.github/workflows/dsmart.com.tr.yml +++ b/.github/workflows/dsmart.com.tr.yml @@ -1,7 +1,7 @@ name: dsmart.com.tr on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/dstv.com.yml b/.github/workflows/dstv.com.yml index 7c94c8913..f4be55c1e 100644 --- a/.github/workflows/dstv.com.yml +++ b/.github/workflows/dstv.com.yml @@ -1,7 +1,7 @@ name: dstv.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/elcinema.com.yml b/.github/workflows/elcinema.com.yml index 85d8839d2..c9d21d9a5 100644 --- a/.github/workflows/elcinema.com.yml +++ b/.github/workflows/elcinema.com.yml @@ -1,7 +1,7 @@ name: elcinema.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/frikanalen.no.yml b/.github/workflows/frikanalen.no.yml index a3a1c0cde..ffa6b3964 100644 --- a/.github/workflows/frikanalen.no.yml +++ b/.github/workflows/frikanalen.no.yml @@ -1,7 +1,7 @@ name: frikanalen.no on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/gatotv.com.yml b/.github/workflows/gatotv.com.yml index 5c176e902..cb66da80a 100644 --- a/.github/workflows/gatotv.com.yml +++ b/.github/workflows/gatotv.com.yml @@ -1,7 +1,7 @@ name: gatotv.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/guidatv.sky.it.yml b/.github/workflows/guidatv.sky.it.yml index bc69b75cf..b7a27a8c6 100644 --- a/.github/workflows/guidatv.sky.it.yml +++ b/.github/workflows/guidatv.sky.it.yml @@ -1,7 +1,7 @@ name: guidatv.sky.it on: schedule: - - cron: '10 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/guide.dstv.com.yml b/.github/workflows/guide.dstv.com.yml index de4e7b76e..611ff4689 100644 --- a/.github/workflows/guide.dstv.com.yml +++ b/.github/workflows/guide.dstv.com.yml @@ -1,7 +1,7 @@ name: guide.dstv.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/hd-plus.de.yml b/.github/workflows/hd-plus.de.yml index cbd18d3a2..12c3338c9 100644 --- a/.github/workflows/hd-plus.de.yml +++ b/.github/workflows/hd-plus.de.yml @@ -1,7 +1,7 @@ name: hd-plus.de on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/horizon.tv.yml b/.github/workflows/horizon.tv.yml index a115057b6..e56e2378f 100644 --- a/.github/workflows/horizon.tv.yml +++ b/.github/workflows/horizon.tv.yml @@ -1,7 +1,7 @@ name: horizon.tv on: schedule: - - cron: '30 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/i.mjh.nz.yml b/.github/workflows/i.mjh.nz.yml index 5b2fd0ba2..081c8328f 100644 --- a/.github/workflows/i.mjh.nz.yml +++ b/.github/workflows/i.mjh.nz.yml @@ -1,7 +1,7 @@ name: i.mjh.nz on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/i24news.tv.yml b/.github/workflows/i24news.tv.yml index 7768a0313..23016f1c4 100644 --- a/.github/workflows/i24news.tv.yml +++ b/.github/workflows/i24news.tv.yml @@ -1,7 +1,7 @@ name: i24news.tv on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/ipko.com.yml b/.github/workflows/ipko.com.yml index 1271234a5..c94493a75 100644 --- a/.github/workflows/ipko.com.yml +++ b/.github/workflows/ipko.com.yml @@ -1,7 +1,7 @@ name: ipko.com on: schedule: - - cron: '10 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/kan.org.il.yml b/.github/workflows/kan.org.il.yml index 6fdb988f9..cf3473800 100644 --- a/.github/workflows/kan.org.il.yml +++ b/.github/workflows/kan.org.il.yml @@ -1,7 +1,7 @@ name: kan.org.il on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/knr.gl.yml b/.github/workflows/knr.gl.yml index 3faa5eac7..25d5f9539 100644 --- a/.github/workflows/knr.gl.yml +++ b/.github/workflows/knr.gl.yml @@ -1,7 +1,7 @@ name: knr.gl on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/kplus.vn.yml b/.github/workflows/kplus.vn.yml index a5c49cff6..1b5294312 100644 --- a/.github/workflows/kplus.vn.yml +++ b/.github/workflows/kplus.vn.yml @@ -1,7 +1,7 @@ name: kplus.vn on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/kvf.fo.yml b/.github/workflows/kvf.fo.yml index a33e82452..fe70faf73 100644 --- a/.github/workflows/kvf.fo.yml +++ b/.github/workflows/kvf.fo.yml @@ -1,7 +1,7 @@ name: kvf.fo on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/m.tv.sms.cz.yml b/.github/workflows/m.tv.sms.cz.yml index 46b8c7f12..a8a07a37d 100644 --- a/.github/workflows/m.tv.sms.cz.yml +++ b/.github/workflows/m.tv.sms.cz.yml @@ -1,7 +1,7 @@ name: m.tv.sms.cz on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/magentatv.at.yml b/.github/workflows/magentatv.at.yml index 5d4a70eec..9b1b177ef 100644 --- a/.github/workflows/magentatv.at.yml +++ b/.github/workflows/magentatv.at.yml @@ -1,7 +1,7 @@ name: magentatv.at on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/magentatv.de.yml b/.github/workflows/magentatv.de.yml index 011ec02ec..a59d61679 100644 --- a/.github/workflows/magentatv.de.yml +++ b/.github/workflows/magentatv.de.yml @@ -1,7 +1,7 @@ name: magentatv.de on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/magticom.ge.yml b/.github/workflows/magticom.ge.yml index 34d49fbe6..76de135fb 100644 --- a/.github/workflows/magticom.ge.yml +++ b/.github/workflows/magticom.ge.yml @@ -1,7 +1,7 @@ name: magticom.ge on: schedule: - - cron: '30 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/mako.co.il.yml b/.github/workflows/mako.co.il.yml index 146700d68..e2aa55ec8 100644 --- a/.github/workflows/mako.co.il.yml +++ b/.github/workflows/mako.co.il.yml @@ -1,7 +1,7 @@ name: mako.co.il on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/maxtv.hrvatskitelekom.hr.yml b/.github/workflows/maxtv.hrvatskitelekom.hr.yml index 601d261e3..8f3fa2bc2 100644 --- a/.github/workflows/maxtv.hrvatskitelekom.hr.yml +++ b/.github/workflows/maxtv.hrvatskitelekom.hr.yml @@ -1,7 +1,7 @@ name: maxtv.hrvatskitelekom.hr on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/maxtvgo.mk.yml b/.github/workflows/maxtvgo.mk.yml index a8fd5a3ed..7304248b0 100644 --- a/.github/workflows/maxtvgo.mk.yml +++ b/.github/workflows/maxtvgo.mk.yml @@ -1,7 +1,7 @@ name: maxtvgo.mk on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/mbc.net.yml b/.github/workflows/mbc.net.yml index bc33eae31..d76cd486e 100644 --- a/.github/workflows/mbc.net.yml +++ b/.github/workflows/mbc.net.yml @@ -1,7 +1,7 @@ name: mbc.net on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/mediaklikk.hu.yml b/.github/workflows/mediaklikk.hu.yml index 83efb7920..952bfb21c 100644 --- a/.github/workflows/mediaklikk.hu.yml +++ b/.github/workflows/mediaklikk.hu.yml @@ -1,7 +1,7 @@ name: mediaklikk.hu on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/mediaset.it.yml b/.github/workflows/mediaset.it.yml index e96f1efb1..0b704fa48 100644 --- a/.github/workflows/mediaset.it.yml +++ b/.github/workflows/mediaset.it.yml @@ -1,7 +1,7 @@ name: mediaset.it on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/melita.com.yml b/.github/workflows/melita.com.yml index d2bb08be8..f06532ef9 100644 --- a/.github/workflows/melita.com.yml +++ b/.github/workflows/melita.com.yml @@ -1,7 +1,7 @@ name: melita.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/meo.pt.yml b/.github/workflows/meo.pt.yml index dab0aec6c..bbab50fb5 100644 --- a/.github/workflows/meo.pt.yml +++ b/.github/workflows/meo.pt.yml @@ -1,7 +1,7 @@ name: meo.pt on: schedule: - - cron: '0 1 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/mewatch.sg.yml b/.github/workflows/mewatch.sg.yml index 3211f0f65..da8542fe5 100644 --- a/.github/workflows/mewatch.sg.yml +++ b/.github/workflows/mewatch.sg.yml @@ -1,7 +1,7 @@ name: mewatch.sg on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/mi.tv.yml b/.github/workflows/mi.tv.yml index 8b1be24f7..9b0a1a180 100644 --- a/.github/workflows/mi.tv.yml +++ b/.github/workflows/mi.tv.yml @@ -1,7 +1,7 @@ name: mi.tv on: schedule: - - cron: '30 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/mncvision.id.yml b/.github/workflows/mncvision.id.yml index 750074530..c9968ac03 100644 --- a/.github/workflows/mncvision.id.yml +++ b/.github/workflows/mncvision.id.yml @@ -1,7 +1,7 @@ name: mncvision.id on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/movistarplus.es.yml b/.github/workflows/movistarplus.es.yml index 2e9f6691b..60966b31c 100644 --- a/.github/workflows/movistarplus.es.yml +++ b/.github/workflows/movistarplus.es.yml @@ -1,7 +1,7 @@ name: movistarplus.es on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/mtel.ba.yml b/.github/workflows/mtel.ba.yml index f1f620689..807488b0c 100644 --- a/.github/workflows/mtel.ba.yml +++ b/.github/workflows/mtel.ba.yml @@ -1,7 +1,7 @@ name: mtel.ba on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/mts.rs.yml b/.github/workflows/mts.rs.yml index da1a864c9..ae4873a6c 100644 --- a/.github/workflows/mts.rs.yml +++ b/.github/workflows/mts.rs.yml @@ -1,7 +1,7 @@ name: mts.rs on: schedule: - - cron: '30 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/musor.tv.yml b/.github/workflows/musor.tv.yml index 795a75792..bd89034b4 100644 --- a/.github/workflows/musor.tv.yml +++ b/.github/workflows/musor.tv.yml @@ -1,7 +1,7 @@ name: musor.tv on: schedule: - - cron: '30 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/novacyprus.com.yml b/.github/workflows/novacyprus.com.yml index 53d3b27c3..80dcb9a2c 100644 --- a/.github/workflows/novacyprus.com.yml +++ b/.github/workflows/novacyprus.com.yml @@ -1,7 +1,7 @@ name: novacyprus.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/nowplayer.now.com.yml b/.github/workflows/nowplayer.now.com.yml index e1a17ae82..a83848835 100644 --- a/.github/workflows/nowplayer.now.com.yml +++ b/.github/workflows/nowplayer.now.com.yml @@ -1,7 +1,7 @@ name: nowplayer.now.com on: schedule: - - cron: '30 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/ontvtonight.com.yml b/.github/workflows/ontvtonight.com.yml index c45fc3d0d..1196f6f76 100644 --- a/.github/workflows/ontvtonight.com.yml +++ b/.github/workflows/ontvtonight.com.yml @@ -1,7 +1,7 @@ name: ontvtonight.com on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/osn.com.yml b/.github/workflows/osn.com.yml index 228945d94..8fda37e15 100644 --- a/.github/workflows/osn.com.yml +++ b/.github/workflows/osn.com.yml @@ -1,7 +1,7 @@ name: osn.com on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/pbsguam.org.yml b/.github/workflows/pbsguam.org.yml index d5c85dd03..758db2ac8 100644 --- a/.github/workflows/pbsguam.org.yml +++ b/.github/workflows/pbsguam.org.yml @@ -1,7 +1,7 @@ name: pbsguam.org on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/programacion-tv.elpais.com.yml b/.github/workflows/programacion-tv.elpais.com.yml index 52ebf0d24..d5211fa39 100644 --- a/.github/workflows/programacion-tv.elpais.com.yml +++ b/.github/workflows/programacion-tv.elpais.com.yml @@ -1,7 +1,7 @@ name: programacion-tv.elpais.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/programetv.ro.yml b/.github/workflows/programetv.ro.yml index da0829b2d..7e88fe999 100644 --- a/.github/workflows/programetv.ro.yml +++ b/.github/workflows/programetv.ro.yml @@ -1,7 +1,7 @@ name: programetv.ro on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/programme-tv.net.yml b/.github/workflows/programme-tv.net.yml index c7525968f..804edad18 100644 --- a/.github/workflows/programme-tv.net.yml +++ b/.github/workflows/programme-tv.net.yml @@ -1,7 +1,7 @@ name: programme-tv.net on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/programme-tv.vini.pf.yml b/.github/workflows/programme-tv.vini.pf.yml index 2ebdb93f2..3dd89fd97 100644 --- a/.github/workflows/programme-tv.vini.pf.yml +++ b/.github/workflows/programme-tv.vini.pf.yml @@ -1,7 +1,7 @@ name: programme-tv.vini.pf on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/programtv.onet.pl.yml b/.github/workflows/programtv.onet.pl.yml index 0f2703fc3..cebe54439 100644 --- a/.github/workflows/programtv.onet.pl.yml +++ b/.github/workflows/programtv.onet.pl.yml @@ -1,7 +1,7 @@ name: programtv.onet.pl on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/proximusmwc.be.yml b/.github/workflows/proximusmwc.be.yml index 7bfc2c0be..40cfaecbd 100644 --- a/.github/workflows/proximusmwc.be.yml +++ b/.github/workflows/proximusmwc.be.yml @@ -1,7 +1,7 @@ name: proximusmwc.be on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/raiplay.it.yml b/.github/workflows/raiplay.it.yml index a40d3831e..18ef42d33 100644 --- a/.github/workflows/raiplay.it.yml +++ b/.github/workflows/raiplay.it.yml @@ -1,7 +1,7 @@ name: raiplay.it on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/rev.bs.yml b/.github/workflows/rev.bs.yml index 87d8a91cc..1e197d1f6 100644 --- a/.github/workflows/rev.bs.yml +++ b/.github/workflows/rev.bs.yml @@ -1,7 +1,7 @@ name: rev.bs on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/rotana.net.yml b/.github/workflows/rotana.net.yml index 3c2834a0b..2f77ec6e7 100644 --- a/.github/workflows/rotana.net.yml +++ b/.github/workflows/rotana.net.yml @@ -1,7 +1,7 @@ name: rotana.net on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/rtb.gov.bn.yml b/.github/workflows/rtb.gov.bn.yml index 3467fb710..3b6645c51 100644 --- a/.github/workflows/rtb.gov.bn.yml +++ b/.github/workflows/rtb.gov.bn.yml @@ -1,7 +1,7 @@ name: rtb.gov.bn on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/ruv.is.yml b/.github/workflows/ruv.is.yml index 8fde6f061..26b7118d7 100644 --- a/.github/workflows/ruv.is.yml +++ b/.github/workflows/ruv.is.yml @@ -1,7 +1,7 @@ name: ruv.is on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/seezntv.com.yml b/.github/workflows/seezntv.com.yml index 4e1e4eedf..351e3ba77 100644 --- a/.github/workflows/seezntv.com.yml +++ b/.github/workflows/seezntv.com.yml @@ -1,7 +1,7 @@ name: seezntv.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/siba.com.co.yml b/.github/workflows/siba.com.co.yml index 9be5be690..b20e97ec7 100644 --- a/.github/workflows/siba.com.co.yml +++ b/.github/workflows/siba.com.co.yml @@ -1,7 +1,7 @@ name: siba.com.co on: schedule: - - cron: '15 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/sky.com.yml b/.github/workflows/sky.com.yml index eb63199ff..087cdf20a 100644 --- a/.github/workflows/sky.com.yml +++ b/.github/workflows/sky.com.yml @@ -1,7 +1,7 @@ name: sky.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/sky.de.yml b/.github/workflows/sky.de.yml index 0e2c6e978..e6bf87d93 100644 --- a/.github/workflows/sky.de.yml +++ b/.github/workflows/sky.de.yml @@ -1,7 +1,7 @@ name: sky.de on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/sportsnet.ca.yml b/.github/workflows/sportsnet.ca.yml index 375a84ccb..20df9e3cf 100644 --- a/.github/workflows/sportsnet.ca.yml +++ b/.github/workflows/sportsnet.ca.yml @@ -1,7 +1,7 @@ name: sportsnet.ca on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/starhubtvplus.com.yml b/.github/workflows/starhubtvplus.com.yml index d9861396e..dfa027d39 100644 --- a/.github/workflows/starhubtvplus.com.yml +++ b/.github/workflows/starhubtvplus.com.yml @@ -1,7 +1,7 @@ name: starhubtvplus.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/startimestv.com.yml b/.github/workflows/startimestv.com.yml index f18382435..87c3fb936 100644 --- a/.github/workflows/startimestv.com.yml +++ b/.github/workflows/startimestv.com.yml @@ -1,7 +1,7 @@ name: startimestv.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/startv.com.yml b/.github/workflows/startv.com.yml index 157681b48..13a29de60 100644 --- a/.github/workflows/startv.com.yml +++ b/.github/workflows/startv.com.yml @@ -1,7 +1,7 @@ name: startv.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/telecablesat.fr.yml b/.github/workflows/telecablesat.fr.yml index e09107302..585071bcb 100644 --- a/.github/workflows/telecablesat.fr.yml +++ b/.github/workflows/telecablesat.fr.yml @@ -1,7 +1,7 @@ name: telecablesat.fr on: schedule: - - cron: '30 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/telenettv.be.yml b/.github/workflows/telenettv.be.yml index 57263cbdf..75c836001 100644 --- a/.github/workflows/telenettv.be.yml +++ b/.github/workflows/telenettv.be.yml @@ -1,7 +1,7 @@ name: telenettv.be on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/teliatv.ee.yml b/.github/workflows/teliatv.ee.yml index 4b04c268d..05b8f8e77 100644 --- a/.github/workflows/teliatv.ee.yml +++ b/.github/workflows/teliatv.ee.yml @@ -1,7 +1,7 @@ name: teliatv.ee on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/telkussa.fi.yml b/.github/workflows/telkussa.fi.yml index 6efb54bd1..5ab015847 100644 --- a/.github/workflows/telkussa.fi.yml +++ b/.github/workflows/telkussa.fi.yml @@ -1,7 +1,7 @@ name: telkussa.fi on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/transvision.co.id.yml b/.github/workflows/transvision.co.id.yml index c1477d82c..17332305b 100644 --- a/.github/workflows/transvision.co.id.yml +++ b/.github/workflows/transvision.co.id.yml @@ -1,7 +1,7 @@ name: transvision.co.id on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/turksatkablo.com.tr.yml b/.github/workflows/turksatkablo.com.tr.yml index 0728a43d1..a32a02b67 100644 --- a/.github/workflows/turksatkablo.com.tr.yml +++ b/.github/workflows/turksatkablo.com.tr.yml @@ -1,7 +1,7 @@ name: turksatkablo.com.tr on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tv.blue.ch.yml b/.github/workflows/tv.blue.ch.yml index 17c2cb836..0dca7a612 100644 --- a/.github/workflows/tv.blue.ch.yml +++ b/.github/workflows/tv.blue.ch.yml @@ -1,7 +1,7 @@ name: tv.blue.ch on: schedule: - - cron: '30 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tv.cctv.com.yml b/.github/workflows/tv.cctv.com.yml index 889684b98..574821636 100644 --- a/.github/workflows/tv.cctv.com.yml +++ b/.github/workflows/tv.cctv.com.yml @@ -1,7 +1,7 @@ name: tv.cctv.com on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tv.dir.bg.yml b/.github/workflows/tv.dir.bg.yml index 3626c0c33..c028a8177 100644 --- a/.github/workflows/tv.dir.bg.yml +++ b/.github/workflows/tv.dir.bg.yml @@ -1,7 +1,7 @@ name: tv.dir.bg on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tv.lv.yml b/.github/workflows/tv.lv.yml index 943177755..dffa58aa3 100644 --- a/.github/workflows/tv.lv.yml +++ b/.github/workflows/tv.lv.yml @@ -1,7 +1,7 @@ name: tv.lv on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tv.mail.ru.yml b/.github/workflows/tv.mail.ru.yml index 2d9497c24..cf45f46c0 100644 --- a/.github/workflows/tv.mail.ru.yml +++ b/.github/workflows/tv.mail.ru.yml @@ -1,7 +1,7 @@ name: tv.mail.ru on: schedule: - - cron: '30 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tv.nu.yml b/.github/workflows/tv.nu.yml index dcfff814b..e425eeee2 100644 --- a/.github/workflows/tv.nu.yml +++ b/.github/workflows/tv.nu.yml @@ -1,7 +1,7 @@ name: tv.nu on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tv.trueid.net.yml b/.github/workflows/tv.trueid.net.yml index f328a1ceb..7f572fbfb 100644 --- a/.github/workflows/tv.trueid.net.yml +++ b/.github/workflows/tv.trueid.net.yml @@ -1,7 +1,7 @@ name: tv.trueid.net on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tv.yandex.ru.yml b/.github/workflows/tv.yandex.ru.yml index bbd031d3d..523ab6da9 100644 --- a/.github/workflows/tv.yandex.ru.yml +++ b/.github/workflows/tv.yandex.ru.yml @@ -1,7 +1,7 @@ name: tv.yandex.ru on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tv.yettel.hu.yml b/.github/workflows/tv.yettel.hu.yml index f6c540d06..28ddc6c4a 100644 --- a/.github/workflows/tv.yettel.hu.yml +++ b/.github/workflows/tv.yettel.hu.yml @@ -1,7 +1,7 @@ name: tv.yettel.hu on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tv2go.t-2.net.yml b/.github/workflows/tv2go.t-2.net.yml index 2a52bd502..3eeea5d04 100644 --- a/.github/workflows/tv2go.t-2.net.yml +++ b/.github/workflows/tv2go.t-2.net.yml @@ -1,7 +1,7 @@ name: tv2go.t-2.net on: schedule: - - cron: '30 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tva.tv.yml b/.github/workflows/tva.tv.yml index d72cf934b..6b89dff7d 100644 --- a/.github/workflows/tva.tv.yml +++ b/.github/workflows/tva.tv.yml @@ -1,7 +1,7 @@ name: tva.tv on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tvarenasport.com.yml b/.github/workflows/tvarenasport.com.yml index 8d0d65fec..4705d1a4f 100644 --- a/.github/workflows/tvarenasport.com.yml +++ b/.github/workflows/tvarenasport.com.yml @@ -1,7 +1,7 @@ name: tvarenasport.com on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tvarenasport.hr.yml b/.github/workflows/tvarenasport.hr.yml index 9ce1f6d5b..79186d45d 100644 --- a/.github/workflows/tvarenasport.hr.yml +++ b/.github/workflows/tvarenasport.hr.yml @@ -1,7 +1,7 @@ name: tvarenasport.hr on: schedule: - - cron: '10 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tvcubana.icrt.cu.yml b/.github/workflows/tvcubana.icrt.cu.yml index 7a666b7f6..818fdad49 100644 --- a/.github/workflows/tvcubana.icrt.cu.yml +++ b/.github/workflows/tvcubana.icrt.cu.yml @@ -1,7 +1,7 @@ name: tvcubana.icrt.cu on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tvgid.ua.yml b/.github/workflows/tvgid.ua.yml index d13f3d0d2..2995f220c 100644 --- a/.github/workflows/tvgid.ua.yml +++ b/.github/workflows/tvgid.ua.yml @@ -1,7 +1,7 @@ name: tvgid.ua on: schedule: - - cron: '30 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tvguide.com.yml b/.github/workflows/tvguide.com.yml index 2b8b8ca14..6e66b012a 100644 --- a/.github/workflows/tvguide.com.yml +++ b/.github/workflows/tvguide.com.yml @@ -1,7 +1,7 @@ name: tvguide.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tvguide.myjcom.jp.yml b/.github/workflows/tvguide.myjcom.jp.yml index f29fb943f..bfa6c18fa 100644 --- a/.github/workflows/tvguide.myjcom.jp.yml +++ b/.github/workflows/tvguide.myjcom.jp.yml @@ -1,7 +1,7 @@ name: tvguide.myjcom.jp on: schedule: - - cron: '30 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tvhebdo.com.yml b/.github/workflows/tvhebdo.com.yml index 540c4672a..1543e5d55 100644 --- a/.github/workflows/tvhebdo.com.yml +++ b/.github/workflows/tvhebdo.com.yml @@ -1,7 +1,7 @@ name: tvhebdo.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tvheute.at.yml b/.github/workflows/tvheute.at.yml index 9875d28d8..7f33c8758 100644 --- a/.github/workflows/tvheute.at.yml +++ b/.github/workflows/tvheute.at.yml @@ -1,7 +1,7 @@ name: tvheute.at on: schedule: - - cron: '10 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tvim.tv.yml b/.github/workflows/tvim.tv.yml index 4e029e278..ba5037eb8 100644 --- a/.github/workflows/tvim.tv.yml +++ b/.github/workflows/tvim.tv.yml @@ -1,7 +1,7 @@ name: tvim.tv on: schedule: - - cron: '10 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tvmi.mt.yml b/.github/workflows/tvmi.mt.yml index d48726db8..98f98d2bf 100644 --- a/.github/workflows/tvmi.mt.yml +++ b/.github/workflows/tvmi.mt.yml @@ -1,7 +1,7 @@ name: tvmi.mt on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tvmusor.hu.yml b/.github/workflows/tvmusor.hu.yml index 39776be49..2498c4d43 100644 --- a/.github/workflows/tvmusor.hu.yml +++ b/.github/workflows/tvmusor.hu.yml @@ -1,7 +1,7 @@ name: tvmusor.hu on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tvplus.com.tr.yml b/.github/workflows/tvplus.com.tr.yml index 6d985dcdd..220c45edf 100644 --- a/.github/workflows/tvplus.com.tr.yml +++ b/.github/workflows/tvplus.com.tr.yml @@ -1,7 +1,7 @@ name: tvplus.com.tr on: schedule: - - cron: '10 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tvprofil.com.yml b/.github/workflows/tvprofil.com.yml index 11db75f8f..ed1a8d344 100644 --- a/.github/workflows/tvprofil.com.yml +++ b/.github/workflows/tvprofil.com.yml @@ -1,7 +1,7 @@ name: tvprofil.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/tvtv.us.yml b/.github/workflows/tvtv.us.yml index 5afbce883..60a7bbfca 100644 --- a/.github/workflows/tvtv.us.yml +++ b/.github/workflows/tvtv.us.yml @@ -1,7 +1,7 @@ name: tvtv.us on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/useetv.com.yml b/.github/workflows/useetv.com.yml new file mode 100644 index 000000000..68aa420c8 --- /dev/null +++ b/.github/workflows/useetv.com.yml @@ -0,0 +1,17 @@ +name: useetv.com +on: + schedule: + - cron: '0 7 * * *' + workflow_dispatch: + workflow_run: + workflows: [_trigger] + types: + - completed +jobs: + load: + uses: ./.github/workflows/_load.yml + with: + site: ${{github.workflow}} + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/vidio.com.yml b/.github/workflows/vidio.com.yml index 054975723..5e21e56cd 100644 --- a/.github/workflows/vidio.com.yml +++ b/.github/workflows/vidio.com.yml @@ -1,7 +1,7 @@ name: vidio.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/virginmedia.com.yml b/.github/workflows/virginmedia.com.yml index 62e4f6b69..a248c89f6 100644 --- a/.github/workflows/virginmedia.com.yml +++ b/.github/workflows/virginmedia.com.yml @@ -1,7 +1,7 @@ name: virginmedia.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/vivacom.bg.yml b/.github/workflows/vivacom.bg.yml index 6a0a45b16..1e020fb1e 100644 --- a/.github/workflows/vivacom.bg.yml +++ b/.github/workflows/vivacom.bg.yml @@ -1,7 +1,7 @@ name: vivacom.bg on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/vtm.be.yml b/.github/workflows/vtm.be.yml index 833efae94..874328d9b 100644 --- a/.github/workflows/vtm.be.yml +++ b/.github/workflows/vtm.be.yml @@ -1,7 +1,7 @@ name: vtm.be on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/walesi.com.fj.yml b/.github/workflows/walesi.com.fj.yml index 9f33eb612..5fbdda21d 100644 --- a/.github/workflows/walesi.com.fj.yml +++ b/.github/workflows/walesi.com.fj.yml @@ -1,7 +1,7 @@ name: walesi.com.fj on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/wavve.com.yml b/.github/workflows/wavve.com.yml index 777320277..db9c9de9f 100644 --- a/.github/workflows/wavve.com.yml +++ b/.github/workflows/wavve.com.yml @@ -1,7 +1,7 @@ name: wavve.com on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/zap.co.ao.yml b/.github/workflows/zap.co.ao.yml index 784fa93b8..1c885749b 100644 --- a/.github/workflows/zap.co.ao.yml +++ b/.github/workflows/zap.co.ao.yml @@ -1,7 +1,7 @@ name: zap.co.ao on: schedule: - - cron: '5 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/ziggogo.tv.yml b/.github/workflows/ziggogo.tv.yml index 91cd11620..02d35e7c3 100644 --- a/.github/workflows/ziggogo.tv.yml +++ b/.github/workflows/ziggogo.tv.yml @@ -1,7 +1,7 @@ name: ziggogo.tv on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.github/workflows/znbc.co.zm.yml b/.github/workflows/znbc.co.zm.yml index dfb2d98d9..bc905311b 100644 --- a/.github/workflows/znbc.co.zm.yml +++ b/.github/workflows/znbc.co.zm.yml @@ -1,7 +1,7 @@ name: znbc.co.zm on: schedule: - - cron: '0 0 * * *' + - cron: '0 3 * * *' workflow_dispatch: workflow_run: workflows: [_trigger] diff --git a/.readme/template.md b/.readme/template.md index 6ad259848..9dc85d980 100644 --- a/.readme/template.md +++ b/.readme/template.md @@ -9,8 +9,6 @@ To load a program guide, all you need to do is copy the link to one or more of t #include "./.readme/_countries.md" -To use a compressed version of the files, add `.gz` to the end of the filename. - ## API The API documentation can be found in the [iptv-org/api](https://github.com/iptv-org/api) repository. diff --git a/README.md b/README.md index 4a32b35e4..9c4e30c15 100644 --- a/README.md +++ b/README.md @@ -12,300 +12,299 @@ To load a program guide, all you need to do is copy the link to one or more of t Country                         ChannelsEPGStatus                                                    - 🇦🇫 Afghanistan1https://iptv-org.github.io/epg/guides/af/arianaafgtv.com.epg.xmlarianaafgtv.com - 1https://iptv-org.github.io/epg/guides/af/arianatelevision.com.epg.xmlarianatelevision.com - 🇦🇱 Albania35https://iptv-org.github.io/epg/guides/al/ipko.com.epg.xmlipko.com - 🇩🇿 Algeria98https://iptv-org.github.io/epg/guides/dz-ar/osn.com.epg.xmlosn.com - 98https://iptv-org.github.io/epg/guides/dz-en/osn.com.epg.xmlosn.com - 🇦🇩 Andorra1https://iptv-org.github.io/epg/guides/ad/andorradifusio.ad.epg.xmlandorradifusio.ad - 🇦🇴 Angola100https://iptv-org.github.io/epg/guides/ao/zap.co.ao.epg.xmlzap.co.ao - 77https://iptv-org.github.io/epg/guides/ao/guide.dstv.com.epg.xmlguide.dstv.com - 🇦🇷 Argentina261https://iptv-org.github.io/epg/guides/ar/directv.com.ar.epg.xmldirectv.com.ar - 157https://iptv-org.github.io/epg/guides/ar/mi.tv.epg.xmlmi.tv - 35https://iptv-org.github.io/epg/guides/ar/gatotv.com.epg.xmlgatotv.com - 🇦🇲 Armenia19https://iptv-org.github.io/epg/guides/am/tv.mail.ru.epg.xmltv.mail.ru - 🇦🇺 Australia47https://iptv-org.github.io/epg/guides/au/ontvtonight.com.epg.xmlontvtonight.com - 3https://iptv-org.github.io/epg/guides/au/beinsports.com.epg.xmlbeinsports.com - 🇦🇹 Austria203https://iptv-org.github.io/epg/guides/at/magentatv.at.epg.xmlmagentatv.at - 52https://iptv-org.github.io/epg/guides/at/tvheute.at.epg.xmltvheute.at - 🇦🇿 Azerbaijan6https://iptv-org.github.io/epg/guides/az/tv.mail.ru.epg.xmltv.mail.ru - 🇧🇸 Bahamas180https://iptv-org.github.io/epg/guides/bs/rev.bs.epg.xmlrev.bs - 🇧🇭 Bahrain98https://iptv-org.github.io/epg/guides/bh-ar/osn.com.epg.xmlosn.com - 98https://iptv-org.github.io/epg/guides/bh-en/osn.com.epg.xmlosn.com - 🇧🇾 Belarus19https://iptv-org.github.io/epg/guides/by/tv.mail.ru.epg.xmltv.mail.ru - 🇧🇪 Belgium106https://iptv-org.github.io/epg/guides/be/telenettv.be.epg.xmltelenettv.be - 7https://iptv-org.github.io/epg/guides/be/vtm.be.epg.xmlvtm.be - 🇧🇯 Benin242https://iptv-org.github.io/epg/guides/bj/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 130https://iptv-org.github.io/epg/guides/bj/guide.dstv.com.epg.xmlguide.dstv.com - 🇧🇴 Bolivia75https://iptv-org.github.io/epg/guides/bo/comteco.com.bo.epg.xmlcomteco.com.bo - 33https://iptv-org.github.io/epg/guides/bo/gatotv.com.epg.xmlgatotv.com - 🇧🇦 Bosnia and Herzegovina169https://iptv-org.github.io/epg/guides/ba/mtel.ba.epg.xmlmtel.ba - 4https://iptv-org.github.io/epg/guides/ba/tvarenasport.com.epg.xmltvarenasport.com - 🇧🇼 Botswana130https://iptv-org.github.io/epg/guides/bw/guide.dstv.com.epg.xmlguide.dstv.com - 🇧🇷 Brazil252https://iptv-org.github.io/epg/guides/br/mi.tv.epg.xmlmi.tv - 🇧🇬 Bulgaria101https://iptv-org.github.io/epg/guides/bg/tv.dir.bg.epg.xmltv.dir.bg - 🇧🇫 Burkina Faso242https://iptv-org.github.io/epg/guides/bf/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 128https://iptv-org.github.io/epg/guides/bf/guide.dstv.com.epg.xmlguide.dstv.com - 🇧🇮 Burundi242https://iptv-org.github.io/epg/guides/bi/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 167https://iptv-org.github.io/epg/guides/bi/startimestv.com.epg.xmlstartimestv.com - 128https://iptv-org.github.io/epg/guides/bi/guide.dstv.com.epg.xmlguide.dstv.com - 🇨🇲 Cameroon242https://iptv-org.github.io/epg/guides/cm/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 142https://iptv-org.github.io/epg/guides/cm/startimestv.com.epg.xmlstartimestv.com - 128https://iptv-org.github.io/epg/guides/cm/guide.dstv.com.epg.xmlguide.dstv.com - 🇨🇦 Canada355https://iptv-org.github.io/epg/guides/ca/tvhebdo.com.epg.xmltvhebdo.com - 100https://iptv-org.github.io/epg/guides/ca/tvtv.us.epg.xmltvtv.us - 8https://iptv-org.github.io/epg/guides/ca/sportsnet.ca.epg.xmlsportsnet.ca - 🇨🇻 Cape Verde242https://iptv-org.github.io/epg/guides/cv/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 125https://iptv-org.github.io/epg/guides/cv/guide.dstv.com.epg.xmlguide.dstv.com - 🇨🇫 Central African Republic242https://iptv-org.github.io/epg/guides/cf/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 125https://iptv-org.github.io/epg/guides/cf/guide.dstv.com.epg.xmlguide.dstv.com - 🇹🇩 Chad242https://iptv-org.github.io/epg/guides/td/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 123https://iptv-org.github.io/epg/guides/td/guide.dstv.com.epg.xmlguide.dstv.com - 97https://iptv-org.github.io/epg/guides/td-ar/osn.com.epg.xmlosn.com - 97https://iptv-org.github.io/epg/guides/td-en/osn.com.epg.xmlosn.com - 🇨🇱 Chile79https://iptv-org.github.io/epg/guides/cl/mi.tv.epg.xmlmi.tv - 49https://iptv-org.github.io/epg/guides/cl/gatotv.com.epg.xmlgatotv.com - 🇨🇳 China94https://iptv-org.github.io/epg/guides/cn/tv.cctv.com.epg.xmltv.cctv.com - 🇨🇴 Colombia98https://iptv-org.github.io/epg/guides/co/siba.com.co.epg.xmlsiba.com.co - 52https://iptv-org.github.io/epg/guides/co/gatotv.com.epg.xmlgatotv.com - 41https://iptv-org.github.io/epg/guides/co/mi.tv.epg.xmlmi.tv - 🇰🇲 Comoros118https://iptv-org.github.io/epg/guides/km/canalplus-reunion.com.epg.xmlcanalplus-reunion.com - 🇨🇷 Costa Rica45https://iptv-org.github.io/epg/guides/cr/gatotv.com.epg.xmlgatotv.com - 🇭🇷 Croatia160https://iptv-org.github.io/epg/guides/hr/maxtv.hrvatskitelekom.hr.epg.xmlmaxtv.hrvatskitelekom.hr - 🇨🇺 Cuba10https://iptv-org.github.io/epg/guides/cu/tvcubana.icrt.cu.epg.xmltvcubana.icrt.cu - 🇨🇾 Cyprus29https://iptv-org.github.io/epg/guides/cy/novacyprus.com.epg.xmlnovacyprus.com - 🇨🇿 Czech Republic528https://iptv-org.github.io/epg/guides/cz/m.tv.sms.cz.epg.xmlm.tv.sms.cz - 🇨🇩 Democratic Republic of the Congo242https://iptv-org.github.io/epg/guides/cd/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 172https://iptv-org.github.io/epg/guides/cd/startimestv.com.epg.xmlstartimestv.com - 126https://iptv-org.github.io/epg/guides/cd/guide.dstv.com.epg.xmlguide.dstv.com - 🇩🇰 Denmark61https://iptv-org.github.io/epg/guides/dk/allente.se.epg.xmlallente.se - 🇩🇯 Djibouti242https://iptv-org.github.io/epg/guides/dj/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 121https://iptv-org.github.io/epg/guides/dj/guide.dstv.com.epg.xmlguide.dstv.com - 🇩🇴 Dominican Republic56https://iptv-org.github.io/epg/guides/do/gatotv.com.epg.xmlgatotv.com - 🇪🇨 Ecuador41https://iptv-org.github.io/epg/guides/ec/gatotv.com.epg.xmlgatotv.com - 🇪🇬 Egypt107https://iptv-org.github.io/epg/guides/eg-ar/elcinema.com.epg.xmlelcinema.com - 107https://iptv-org.github.io/epg/guides/eg-en/elcinema.com.epg.xmlelcinema.com - 98https://iptv-org.github.io/epg/guides/eg-ar/osn.com.epg.xmlosn.com - 98https://iptv-org.github.io/epg/guides/eg-en/osn.com.epg.xmlosn.com - 🇸🇻 El Salvador48https://iptv-org.github.io/epg/guides/sv/gatotv.com.epg.xmlgatotv.com - 12https://iptv-org.github.io/epg/guides/sv/mi.tv.epg.xmlmi.tv - 🇬🇶 Equatorial Guinea242https://iptv-org.github.io/epg/guides/gq/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 125https://iptv-org.github.io/epg/guides/gq/guide.dstv.com.epg.xmlguide.dstv.com - 🇪🇷 Eritrea123https://iptv-org.github.io/epg/guides/er/guide.dstv.com.epg.xmlguide.dstv.com - 🇪🇪 Estonia132https://iptv-org.github.io/epg/guides/ee-ru/teliatv.ee.epg.xmlteliatv.ee - 130https://iptv-org.github.io/epg/guides/ee-en/teliatv.ee.epg.xmlteliatv.ee - 130https://iptv-org.github.io/epg/guides/ee-et/teliatv.ee.epg.xmlteliatv.ee - 🇪🇹 Ethiopia148https://iptv-org.github.io/epg/guides/et/guide.dstv.com.epg.xmlguide.dstv.com - 🇫🇴 Faroe Islands1https://iptv-org.github.io/epg/guides/fo/kvf.fo.epg.xmlkvf.fo - 🇫🇮 Finland36https://iptv-org.github.io/epg/guides/fi/allente.se.epg.xmlallente.se - 36https://iptv-org.github.io/epg/guides/fi/telkussa.fi.epg.xmltelkussa.fi - 🇫🇷 France280https://iptv-org.github.io/epg/guides/fr/telecablesat.fr.epg.xmltelecablesat.fr - 225https://iptv-org.github.io/epg/guides/fr/canalplus.com.epg.xmlcanalplus.com - 211https://iptv-org.github.io/epg/guides/fr/programme-tv.net.epg.xmlprogramme-tv.net - 194https://iptv-org.github.io/epg/guides/fr/chaines-tv.orange.fr.epg.xmlchaines-tv.orange.fr - 10https://iptv-org.github.io/epg/guides/fr/beinsports.com.epg.xmlbeinsports.com - 🇬🇫 French Guiana127https://iptv-org.github.io/epg/guides/gf/canalplus-caraibes.com.epg.xmlcanalplus-caraibes.com - 🇵🇫 French Polynesia2https://iptv-org.github.io/epg/guides/pf/programme-tv.vini.pf.epg.xmlprogramme-tv.vini.pf - 🇬🇦 Gabon242https://iptv-org.github.io/epg/guides/ga/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 125https://iptv-org.github.io/epg/guides/ga/guide.dstv.com.epg.xmlguide.dstv.com - 101https://iptv-org.github.io/epg/guides/ga/startimestv.com.epg.xmlstartimestv.com - 🇬🇲 Gambia242https://iptv-org.github.io/epg/guides/gm/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 124https://iptv-org.github.io/epg/guides/gm/guide.dstv.com.epg.xmlguide.dstv.com - 🇬🇪 Georgia116https://iptv-org.github.io/epg/guides/ge/magticom.ge.epg.xmlmagticom.ge - 🇩🇪 Germany245https://iptv-org.github.io/epg/guides/de/horizon.tv.epg.xmlhorizon.tv - 121https://iptv-org.github.io/epg/guides/de/hd-plus.de.epg.xmlhd-plus.de - 🇬🇭 Ghana242https://iptv-org.github.io/epg/guides/gh/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 139https://iptv-org.github.io/epg/guides/gh/guide.dstv.com.epg.xmlguide.dstv.com - 124https://iptv-org.github.io/epg/guides/gh/startimestv.com.epg.xmlstartimestv.com - 🇬🇷 Greece86https://iptv-org.github.io/epg/guides/gr/cosmote.gr.epg.xmlcosmote.gr - 🇬🇱 Greenland1https://iptv-org.github.io/epg/guides/gl/knr.gl.epg.xmlknr.gl - 🇬🇵 Guadeloupe127https://iptv-org.github.io/epg/guides/gp/canalplus-caraibes.com.epg.xmlcanalplus-caraibes.com - 🇬🇺 Guam1https://iptv-org.github.io/epg/guides/gu/pbsguam.org.epg.xmlpbsguam.org - 🇬🇹 Guatemala49https://iptv-org.github.io/epg/guides/gt/gatotv.com.epg.xmlgatotv.com - 18https://iptv-org.github.io/epg/guides/gt/mi.tv.epg.xmlmi.tv - 🇬🇳 Guinea242https://iptv-org.github.io/epg/guides/gn/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 154https://iptv-org.github.io/epg/guides/gn/startimestv.com.epg.xmlstartimestv.com - 125https://iptv-org.github.io/epg/guides/gn/guide.dstv.com.epg.xmlguide.dstv.com - 🇬🇼 Guinea-Bissau242https://iptv-org.github.io/epg/guides/gw/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 125https://iptv-org.github.io/epg/guides/gw/guide.dstv.com.epg.xmlguide.dstv.com - 🇭🇹 Haiti112https://iptv-org.github.io/epg/guides/ht/canalplus-haiti.com.epg.xmlcanalplus-haiti.com - 🇭🇳 Honduras46https://iptv-org.github.io/epg/guides/hn/gatotv.com.epg.xmlgatotv.com - 22https://iptv-org.github.io/epg/guides/hn/mi.tv.epg.xmlmi.tv - 🇭🇰 Hong Kong131https://iptv-org.github.io/epg/guides/hk-en/nowplayer.now.com.epg.xmlnowplayer.now.com - 128https://iptv-org.github.io/epg/guides/hk-zh/nowplayer.now.com.epg.xmlnowplayer.now.com - 2https://iptv-org.github.io/epg/guides/hk/beinsports.com.epg.xmlbeinsports.com - 🇭🇺 Hungary169https://iptv-org.github.io/epg/guides/hu/musor.tv.epg.xmlmusor.tv - 90https://iptv-org.github.io/epg/guides/hu/tvmusor.hu.epg.xmltvmusor.hu - 74https://iptv-org.github.io/epg/guides/hu/tv.yettel.hu.epg.xmltv.yettel.hu - 8https://iptv-org.github.io/epg/guides/hu/mediaklikk.hu.epg.xmlmediaklikk.hu - 🇮🇸 Iceland2https://iptv-org.github.io/epg/guides/is/ruv.is.epg.xmlruv.is - 🇮🇳 India363https://iptv-org.github.io/epg/guides/in/dishtv.in.epg.xmldishtv.in - 🇮🇩 Indonesia98https://iptv-org.github.io/epg/guides/id-en/mncvision.id.epg.xmlmncvision.id - 98https://iptv-org.github.io/epg/guides/id-id/mncvision.id.epg.xmlmncvision.id - 78https://iptv-org.github.io/epg/guides/id/transvision.co.id.epg.xmltransvision.co.id - 57https://iptv-org.github.io/epg/guides/id/vidio.com.epg.xmlvidio.com - 2https://iptv-org.github.io/epg/guides/id/beinsports.com.epg.xmlbeinsports.com - 🇮🇷 Iran28https://iptv-org.github.io/epg/guides/ir/tva.tv.epg.xmltva.tv - 🇮🇶 Iraq98https://iptv-org.github.io/epg/guides/iq-ar/osn.com.epg.xmlosn.com - 98https://iptv-org.github.io/epg/guides/iq-en/osn.com.epg.xmlosn.com - 🇮🇪 Ireland3https://iptv-org.github.io/epg/guides/ie/ontvtonight.com.epg.xmlontvtonight.com - 🇮🇱 Israel3https://iptv-org.github.io/epg/guides/il/i24news.tv.epg.xmli24news.tv - 3https://iptv-org.github.io/epg/guides/il/kan.org.il.epg.xmlkan.org.il - 1https://iptv-org.github.io/epg/guides/il/9tv.co.il.epg.xml9tv.co.il - 1https://iptv-org.github.io/epg/guides/il/mako.co.il.epg.xmlmako.co.il - 🇮🇹 Italy152https://iptv-org.github.io/epg/guides/it/guidatv.sky.it.epg.xmlguidatv.sky.it - 15https://iptv-org.github.io/epg/guides/it/mediaset.it.epg.xmlmediaset.it - 14https://iptv-org.github.io/epg/guides/it/raiplay.it.epg.xmlraiplay.it - 🇨🇮 Ivory Coast242https://iptv-org.github.io/epg/guides/ci/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 172https://iptv-org.github.io/epg/guides/ci/startimestv.com.epg.xmlstartimestv.com - 128https://iptv-org.github.io/epg/guides/ci/guide.dstv.com.epg.xmlguide.dstv.com - 🇯🇵 Japan136https://iptv-org.github.io/epg/guides/jp/tvguide.myjcom.jp.epg.xmltvguide.myjcom.jp - 🇯🇴 Jordan98https://iptv-org.github.io/epg/guides/jo-ar/osn.com.epg.xmlosn.com - 98https://iptv-org.github.io/epg/guides/jo-en/osn.com.epg.xmlosn.com - 🇰🇿 Kazakhstan8https://iptv-org.github.io/epg/guides/kz/tv.yandex.ru.epg.xmltv.yandex.ru - 🇰🇪 Kenya151https://iptv-org.github.io/epg/guides/ke/guide.dstv.com.epg.xmlguide.dstv.com - 147https://iptv-org.github.io/epg/guides/ke/startimestv.com.epg.xmlstartimestv.com - 🇽🇰 Kosovo34https://iptv-org.github.io/epg/guides/xk/tvim.tv.epg.xmltvim.tv - 🇰🇼 Kuwait98https://iptv-org.github.io/epg/guides/kw-ar/osn.com.epg.xmlosn.com - 98https://iptv-org.github.io/epg/guides/kw-en/osn.com.epg.xmlosn.com - 🇱🇻 Latvia20https://iptv-org.github.io/epg/guides/lv/tv.lv.epg.xmltv.lv - 🇱🇧 Lebanon98https://iptv-org.github.io/epg/guides/lb-ar/osn.com.epg.xmlosn.com - 98https://iptv-org.github.io/epg/guides/lb-en/osn.com.epg.xmlosn.com - 🇱🇸 Lesotho145https://iptv-org.github.io/epg/guides/ls/guide.dstv.com.epg.xmlguide.dstv.com - 🇱🇷 Liberia125https://iptv-org.github.io/epg/guides/lr/guide.dstv.com.epg.xmlguide.dstv.com - 🇱🇾 Libya98https://iptv-org.github.io/epg/guides/ly-ar/osn.com.epg.xmlosn.com - 98https://iptv-org.github.io/epg/guides/ly-en/osn.com.epg.xmlosn.com - 🇲🇬 Madagascar164https://iptv-org.github.io/epg/guides/mg/startimestv.com.epg.xmlstartimestv.com - 125https://iptv-org.github.io/epg/guides/mg/guide.dstv.com.epg.xmlguide.dstv.com - 🇲🇼 Malawi131https://iptv-org.github.io/epg/guides/mw/guide.dstv.com.epg.xmlguide.dstv.com - 95https://iptv-org.github.io/epg/guides/mw/startimestv.com.epg.xmlstartimestv.com - 🇲🇾 Malaysia139https://iptv-org.github.io/epg/guides/my/astro.com.my.epg.xmlastro.com.my - 1https://iptv-org.github.io/epg/guides/my/beinsports.com.epg.xmlbeinsports.com - 🇲🇱 Mali242https://iptv-org.github.io/epg/guides/ml/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 125https://iptv-org.github.io/epg/guides/ml/guide.dstv.com.epg.xmlguide.dstv.com - 🇲🇹 Malta123https://iptv-org.github.io/epg/guides/mt/melita.com.epg.xmlmelita.com - 2https://iptv-org.github.io/epg/guides/mt/tvmi.mt.epg.xmltvmi.mt - 🇲🇶 Martinique127https://iptv-org.github.io/epg/guides/mq/canalplus-caraibes.com.epg.xmlcanalplus-caraibes.com - 🇲🇷 Mauritania242https://iptv-org.github.io/epg/guides/mr/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 125https://iptv-org.github.io/epg/guides/mr/guide.dstv.com.epg.xmlguide.dstv.com - 97https://iptv-org.github.io/epg/guides/mr-ar/osn.com.epg.xmlosn.com - 97https://iptv-org.github.io/epg/guides/mr-en/osn.com.epg.xmlosn.com - 🇲🇺 Mauritius126https://iptv-org.github.io/epg/guides/mu/guide.dstv.com.epg.xmlguide.dstv.com - 🇾🇹 Mayotte118https://iptv-org.github.io/epg/guides/yt/canalplus-reunion.com.epg.xmlcanalplus-reunion.com - 🇲🇽 Mexico101https://iptv-org.github.io/epg/guides/mx/gatotv.com.epg.xmlgatotv.com - 26https://iptv-org.github.io/epg/guides/mx/mi.tv.epg.xmlmi.tv - 🇲🇪 Montenegro4https://iptv-org.github.io/epg/guides/me/tvarenasport.com.epg.xmltvarenasport.com - 🇲🇦 Morocco97https://iptv-org.github.io/epg/guides/ma-ar/osn.com.epg.xmlosn.com - 97https://iptv-org.github.io/epg/guides/ma-en/osn.com.epg.xmlosn.com - 🇲🇿 Mozambique128https://iptv-org.github.io/epg/guides/mz/startimestv.com.epg.xmlstartimestv.com - 86https://iptv-org.github.io/epg/guides/mz/guide.dstv.com.epg.xmlguide.dstv.com - 🇳🇦 Namibia130https://iptv-org.github.io/epg/guides/na/guide.dstv.com.epg.xmlguide.dstv.com - 🇳🇱 Netherlands225https://iptv-org.github.io/epg/guides/nl/delta.nl.epg.xmldelta.nl - 141https://iptv-org.github.io/epg/guides/nl/ziggogo.tv.epg.xmlziggogo.tv - 🇳🇮 Nicaragua46https://iptv-org.github.io/epg/guides/ni/gatotv.com.epg.xmlgatotv.com - 🇳🇪 Niger242https://iptv-org.github.io/epg/guides/ne/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 128https://iptv-org.github.io/epg/guides/ne/guide.dstv.com.epg.xmlguide.dstv.com - 🇳🇬 Nigeria149https://iptv-org.github.io/epg/guides/ng/dstv.com.epg.xmldstv.com - 145https://iptv-org.github.io/epg/guides/ng/guide.dstv.com.epg.xmlguide.dstv.com - 140https://iptv-org.github.io/epg/guides/ng/startimestv.com.epg.xmlstartimestv.com - 🇲🇰 North Macedonia51https://iptv-org.github.io/epg/guides/mk/maxtvgo.mk.epg.xmlmaxtvgo.mk - 4https://iptv-org.github.io/epg/guides/mk/tvarenasport.com.epg.xmltvarenasport.com - 🇳🇴 Norway71https://iptv-org.github.io/epg/guides/no/allente.se.epg.xmlallente.se - 1https://iptv-org.github.io/epg/guides/no/frikanalen.no.epg.xmlfrikanalen.no - 🇴🇲 Oman97https://iptv-org.github.io/epg/guides/om-ar/osn.com.epg.xmlosn.com - 97https://iptv-org.github.io/epg/guides/om-en/osn.com.epg.xmlosn.com - 🇵🇸 Palestine98https://iptv-org.github.io/epg/guides/ps-ar/osn.com.epg.xmlosn.com - 98https://iptv-org.github.io/epg/guides/ps-en/osn.com.epg.xmlosn.com - 🇵🇦 Panama48https://iptv-org.github.io/epg/guides/pa/gatotv.com.epg.xmlgatotv.com - 🇵🇾 Paraguay35https://iptv-org.github.io/epg/guides/py/gatotv.com.epg.xmlgatotv.com - 🇵🇪 Peru44https://iptv-org.github.io/epg/guides/pe/gatotv.com.epg.xmlgatotv.com - 19https://iptv-org.github.io/epg/guides/pe/mi.tv.epg.xmlmi.tv - 🇵🇭 Philippines33https://iptv-org.github.io/epg/guides/ph/clickthecity.com.epg.xmlclickthecity.com - 2https://iptv-org.github.io/epg/guides/ph/beinsports.com.epg.xmlbeinsports.com - 🇵🇱 Poland341https://iptv-org.github.io/epg/guides/pl/programtv.onet.pl.epg.xmlprogramtv.onet.pl - 🇵🇹 Portugal203https://iptv-org.github.io/epg/guides/pt/meo.pt.epg.xmlmeo.pt - 🇶🇦 Qatar98https://iptv-org.github.io/epg/guides/qa-ar/osn.com.epg.xmlosn.com - 98https://iptv-org.github.io/epg/guides/qa-en/osn.com.epg.xmlosn.com - 34https://iptv-org.github.io/epg/guides/qa/bein.com.epg.xmlbein.com - 25https://iptv-org.github.io/epg/guides/qa-ar/beinsports.com.epg.xmlbeinsports.com - 18https://iptv-org.github.io/epg/guides/qa-en/beinsports.com.epg.xmlbeinsports.com - 🇨🇬 Republic of the Congo242https://iptv-org.github.io/epg/guides/cg/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 149https://iptv-org.github.io/epg/guides/cg/startimestv.com.epg.xmlstartimestv.com - 125https://iptv-org.github.io/epg/guides/cg/guide.dstv.com.epg.xmlguide.dstv.com - 🇷🇴 Romania233https://iptv-org.github.io/epg/guides/ro/programetv.ro.epg.xmlprogrametv.ro - 🇷🇺 Russia283https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xmltv.yandex.ru - 🇷🇼 Rwanda242https://iptv-org.github.io/epg/guides/rw/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 142https://iptv-org.github.io/epg/guides/rw/startimestv.com.epg.xmlstartimestv.com - 132https://iptv-org.github.io/epg/guides/rw/guide.dstv.com.epg.xmlguide.dstv.com - 🇷🇪 Réunion118https://iptv-org.github.io/epg/guides/re/canalplus-reunion.com.epg.xmlcanalplus-reunion.com - 🇧🇱 Saint Barthélemy127https://iptv-org.github.io/epg/guides/bl/canalplus-caraibes.com.epg.xmlcanalplus-caraibes.com - 🇲🇫 Saint Martin127https://iptv-org.github.io/epg/guides/mf/canalplus-caraibes.com.epg.xmlcanalplus-caraibes.com - 🇸🇦 Saudi Arabia97https://iptv-org.github.io/epg/guides/sa-ar/osn.com.epg.xmlosn.com - 97https://iptv-org.github.io/epg/guides/sa-en/osn.com.epg.xmlosn.com - 5https://iptv-org.github.io/epg/guides/sa/artonline.tv.epg.xmlartonline.tv - 🇸🇳 Senegal242https://iptv-org.github.io/epg/guides/sn/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 125https://iptv-org.github.io/epg/guides/sn/guide.dstv.com.epg.xmlguide.dstv.com - 🇷🇸 Serbia350https://iptv-org.github.io/epg/guides/rs/mts.rs.epg.xmlmts.rs - 12https://iptv-org.github.io/epg/guides/rs/tvarenasport.com.epg.xmltvarenasport.com - 🇸🇨 Seychelles124https://iptv-org.github.io/epg/guides/sc/guide.dstv.com.epg.xmlguide.dstv.com - 🇸🇱 Sierra Leone242https://iptv-org.github.io/epg/guides/sl/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 125https://iptv-org.github.io/epg/guides/sl/guide.dstv.com.epg.xmlguide.dstv.com - 🇸🇬 Singapore129https://iptv-org.github.io/epg/guides/sg/starhubtvplus.com.epg.xmlstarhubtvplus.com - 17https://iptv-org.github.io/epg/guides/sg/mewatch.sg.epg.xmlmewatch.sg - 🇸🇮 Slovenia264https://iptv-org.github.io/epg/guides/si/tv2go.t-2.net.epg.xmltv2go.t-2.net - 🇸🇴 Somalia120https://iptv-org.github.io/epg/guides/so/guide.dstv.com.epg.xmlguide.dstv.com - 🇿🇦 South Africa159https://iptv-org.github.io/epg/guides/za/guide.dstv.com.epg.xmlguide.dstv.com - 143https://iptv-org.github.io/epg/guides/za/dstv.com.epg.xmldstv.com - 🇰🇷 South Korea98https://iptv-org.github.io/epg/guides/kr/seezntv.com.epg.xmlseezntv.com - 77https://iptv-org.github.io/epg/guides/kr/wavve.com.epg.xmlwavve.com - 🇸🇸 South Sudan125https://iptv-org.github.io/epg/guides/ss/guide.dstv.com.epg.xmlguide.dstv.com - 🇪🇸 Spain183https://iptv-org.github.io/epg/guides/es/movistarplus.es.epg.xmlmovistarplus.es - 109https://iptv-org.github.io/epg/guides/es/programacion-tv.elpais.com.epg.xmlprogramacion-tv.elpais.com - 58https://iptv-org.github.io/epg/guides/es/gatotv.com.epg.xmlgatotv.com - 🇸🇩 Sudan118https://iptv-org.github.io/epg/guides/sd/guide.dstv.com.epg.xmlguide.dstv.com - 🇸🇿 Swaziland127https://iptv-org.github.io/epg/guides/sz/guide.dstv.com.epg.xmlguide.dstv.com - 🇸🇪 Sweden173https://iptv-org.github.io/epg/guides/se/tv.nu.epg.xmltv.nu - 107https://iptv-org.github.io/epg/guides/se/allente.se.epg.xmlallente.se - 🇨🇭 Switzerland598https://iptv-org.github.io/epg/guides/ch/tv.blue.ch.epg.xmltv.blue.ch - 🇸🇹 São Tomé and Príncipe128https://iptv-org.github.io/epg/guides/st/guide.dstv.com.epg.xmlguide.dstv.com - 🇹🇿 Tanzania152https://iptv-org.github.io/epg/guides/tz/startimestv.com.epg.xmlstartimestv.com - 30https://iptv-org.github.io/epg/guides/tz/guide.dstv.com.epg.xmlguide.dstv.com - 🇹🇭 Thailand81https://iptv-org.github.io/epg/guides/th/tv.trueid.net.epg.xmltv.trueid.net - 2https://iptv-org.github.io/epg/guides/th/beinsports.com.epg.xmlbeinsports.com - 🇹🇬 Togo242https://iptv-org.github.io/epg/guides/tg/canalplus-afrique.com.epg.xmlcanalplus-afrique.com - 137https://iptv-org.github.io/epg/guides/tg/guide.dstv.com.epg.xmlguide.dstv.com - 🇹🇷 Turkey144https://iptv-org.github.io/epg/guides/tr/tvplus.com.tr.epg.xmltvplus.com.tr - 115https://iptv-org.github.io/epg/guides/tr/digiturk.com.tr.epg.xmldigiturk.com.tr - 105https://iptv-org.github.io/epg/guides/tr/dsmart.com.tr.epg.xmldsmart.com.tr - 🇺🇬 Uganda151https://iptv-org.github.io/epg/guides/ug/guide.dstv.com.epg.xmlguide.dstv.com - 146https://iptv-org.github.io/epg/guides/ug/startimestv.com.epg.xmlstartimestv.com - 🇦🇪 United Arab Emirates98https://iptv-org.github.io/epg/guides/ae-ar/osn.com.epg.xmlosn.com - 98https://iptv-org.github.io/epg/guides/ae-en/osn.com.epg.xmlosn.com - 🇬🇧 United Kingdom261https://iptv-org.github.io/epg/guides/uk/sky.com.epg.xmlsky.com - 197https://iptv-org.github.io/epg/guides/uk/virginmedia.com.epg.xmlvirginmedia.com - 192https://iptv-org.github.io/epg/guides/uk/bt.com.epg.xmlbt.com - 97https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xmlontvtonight.com - 🇺🇸 United States1552https://iptv-org.github.io/epg/guides/us-local/tvtv.us.epg.xmltvtv.us - 739https://iptv-org.github.io/epg/guides/us/tvtv.us.epg.xmltvtv.us - 383https://iptv-org.github.io/epg/guides/us/directv.com.epg.xmldirectv.com - 329https://iptv-org.github.io/epg/guides/us-pluto/i.mjh.nz.epg.xmli.mjh.nz - 88https://iptv-org.github.io/epg/guides/us/tvguide.com.epg.xmltvguide.com - 22https://iptv-org.github.io/epg/guides/us/gatotv.com.epg.xmlgatotv.com - 11https://iptv-org.github.io/epg/guides/us/ontvtonight.com.epg.xmlontvtonight.com - 10https://iptv-org.github.io/epg/guides/us-en/beinsports.com.epg.xmlbeinsports.com - 10https://iptv-org.github.io/epg/guides/us-es/beinsports.com.epg.xmlbeinsports.com - 🇺🇾 Uruguay28https://iptv-org.github.io/epg/guides/uy/gatotv.com.epg.xmlgatotv.com - 🇻🇪 Venezuela33https://iptv-org.github.io/epg/guides/ve/gatotv.com.epg.xmlgatotv.com - 🇾🇪 Yemen98https://iptv-org.github.io/epg/guides/ye-ar/osn.com.epg.xmlosn.com - 98https://iptv-org.github.io/epg/guides/ye-en/osn.com.epg.xmlosn.com - 🇿🇲 Zambia136https://iptv-org.github.io/epg/guides/zm/guide.dstv.com.epg.xmlguide.dstv.com - 4https://iptv-org.github.io/epg/guides/zm/znbc.co.zm.epg.xmlznbc.co.zm - 🇿🇼 Zimbabwe130https://iptv-org.github.io/epg/guides/zw/guide.dstv.com.epg.xmlguide.dstv.com + 🇦🇫 Afghanistan1https://iptv-org.github.io/epg/guides/af/arianaafgtv.com.epg.xml.gzarianaafgtv.com + 1https://iptv-org.github.io/epg/guides/af/arianatelevision.com.epg.xml.gzarianatelevision.com + 🇦🇱 Albania35https://iptv-org.github.io/epg/guides/al/ipko.com.epg.xml.gzipko.com + 🇩🇿 Algeria98https://iptv-org.github.io/epg/guides/dz-ar/osn.com.epg.xml.gzosn.com + 98https://iptv-org.github.io/epg/guides/dz-en/osn.com.epg.xml.gzosn.com + 🇦🇩 Andorra1https://iptv-org.github.io/epg/guides/ad/andorradifusio.ad.epg.xml.gzandorradifusio.ad + 🇦🇴 Angola100https://iptv-org.github.io/epg/guides/ao/zap.co.ao.epg.xml.gzzap.co.ao + 77https://iptv-org.github.io/epg/guides/ao/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇦🇷 Argentina265https://iptv-org.github.io/epg/guides/ar/directv.com.ar.epg.xml.gzdirectv.com.ar + 157https://iptv-org.github.io/epg/guides/ar/mi.tv.epg.xml.gzmi.tv + 35https://iptv-org.github.io/epg/guides/ar/gatotv.com.epg.xml.gzgatotv.com + 🇦🇲 Armenia19https://iptv-org.github.io/epg/guides/am/tv.mail.ru.epg.xml.gztv.mail.ru + 🇦🇺 Australia47https://iptv-org.github.io/epg/guides/au/ontvtonight.com.epg.xml.gzontvtonight.com + 3https://iptv-org.github.io/epg/guides/au/beinsports.com.epg.xml.gzbeinsports.com + 🇦🇹 Austria203https://iptv-org.github.io/epg/guides/at/magentatv.at.epg.xml.gzmagentatv.at + 52https://iptv-org.github.io/epg/guides/at/tvheute.at.epg.xml.gztvheute.at + 🇦🇿 Azerbaijan6https://iptv-org.github.io/epg/guides/az/tv.mail.ru.epg.xml.gztv.mail.ru + 🇧🇸 Bahamas180https://iptv-org.github.io/epg/guides/bs/rev.bs.epg.xml.gzrev.bs + 🇧🇭 Bahrain98https://iptv-org.github.io/epg/guides/bh-ar/osn.com.epg.xml.gzosn.com + 98https://iptv-org.github.io/epg/guides/bh-en/osn.com.epg.xml.gzosn.com + 🇧🇾 Belarus19https://iptv-org.github.io/epg/guides/by/tv.mail.ru.epg.xml.gztv.mail.ru + 🇧🇪 Belgium106https://iptv-org.github.io/epg/guides/be/telenettv.be.epg.xml.gztelenettv.be + 7https://iptv-org.github.io/epg/guides/be/vtm.be.epg.xml.gzvtm.be + 🇧🇯 Benin242https://iptv-org.github.io/epg/guides/bj/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 130https://iptv-org.github.io/epg/guides/bj/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇧🇴 Bolivia75https://iptv-org.github.io/epg/guides/bo/comteco.com.bo.epg.xml.gzcomteco.com.bo + 33https://iptv-org.github.io/epg/guides/bo/gatotv.com.epg.xml.gzgatotv.com + 🇧🇦 Bosnia and Herzegovina169https://iptv-org.github.io/epg/guides/ba/mtel.ba.epg.xml.gzmtel.ba + 4https://iptv-org.github.io/epg/guides/ba/tvarenasport.com.epg.xml.gztvarenasport.com + 🇧🇼 Botswana130https://iptv-org.github.io/epg/guides/bw/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇧🇷 Brazil252https://iptv-org.github.io/epg/guides/br/mi.tv.epg.xml.gzmi.tv + 🇧🇬 Bulgaria101https://iptv-org.github.io/epg/guides/bg/tv.dir.bg.epg.xml.gztv.dir.bg + 🇧🇫 Burkina Faso242https://iptv-org.github.io/epg/guides/bf/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 128https://iptv-org.github.io/epg/guides/bf/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇧🇮 Burundi242https://iptv-org.github.io/epg/guides/bi/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 167https://iptv-org.github.io/epg/guides/bi/startimestv.com.epg.xml.gzstartimestv.com + 128https://iptv-org.github.io/epg/guides/bi/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇨🇲 Cameroon242https://iptv-org.github.io/epg/guides/cm/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 142https://iptv-org.github.io/epg/guides/cm/startimestv.com.epg.xml.gzstartimestv.com + 128https://iptv-org.github.io/epg/guides/cm/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇨🇦 Canada355https://iptv-org.github.io/epg/guides/ca/tvhebdo.com.epg.xml.gztvhebdo.com + 126https://iptv-org.github.io/epg/guides/ca/tvtv.us.epg.xml.gztvtv.us + 8https://iptv-org.github.io/epg/guides/ca/sportsnet.ca.epg.xml.gzsportsnet.ca + 🇨🇻 Cape Verde242https://iptv-org.github.io/epg/guides/cv/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 125https://iptv-org.github.io/epg/guides/cv/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇨🇫 Central African Republic242https://iptv-org.github.io/epg/guides/cf/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 125https://iptv-org.github.io/epg/guides/cf/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇹🇩 Chad242https://iptv-org.github.io/epg/guides/td/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 123https://iptv-org.github.io/epg/guides/td/guide.dstv.com.epg.xml.gzguide.dstv.com + 97https://iptv-org.github.io/epg/guides/td-ar/osn.com.epg.xml.gzosn.com + 97https://iptv-org.github.io/epg/guides/td-en/osn.com.epg.xml.gzosn.com + 🇨🇱 Chile79https://iptv-org.github.io/epg/guides/cl/mi.tv.epg.xml.gzmi.tv + 49https://iptv-org.github.io/epg/guides/cl/gatotv.com.epg.xml.gzgatotv.com + 🇨🇳 China94https://iptv-org.github.io/epg/guides/cn/tv.cctv.com.epg.xml.gztv.cctv.com + 🇨🇴 Colombia98https://iptv-org.github.io/epg/guides/co/siba.com.co.epg.xml.gzsiba.com.co + 52https://iptv-org.github.io/epg/guides/co/gatotv.com.epg.xml.gzgatotv.com + 41https://iptv-org.github.io/epg/guides/co/mi.tv.epg.xml.gzmi.tv + 🇰🇲 Comoros118https://iptv-org.github.io/epg/guides/km/canalplus-reunion.com.epg.xml.gzcanalplus-reunion.com + 🇨🇷 Costa Rica45https://iptv-org.github.io/epg/guides/cr/gatotv.com.epg.xml.gzgatotv.com + 🇭🇷 Croatia160https://iptv-org.github.io/epg/guides/hr/maxtv.hrvatskitelekom.hr.epg.xml.gzmaxtv.hrvatskitelekom.hr + 🇨🇺 Cuba10https://iptv-org.github.io/epg/guides/cu/tvcubana.icrt.cu.epg.xml.gztvcubana.icrt.cu + 🇨🇾 Cyprus29https://iptv-org.github.io/epg/guides/cy/novacyprus.com.epg.xml.gznovacyprus.com + 🇨🇿 Czech Republic528https://iptv-org.github.io/epg/guides/cz/m.tv.sms.cz.epg.xml.gzm.tv.sms.cz + 🇨🇩 Democratic Republic of the Congo242https://iptv-org.github.io/epg/guides/cd/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 172https://iptv-org.github.io/epg/guides/cd/startimestv.com.epg.xml.gzstartimestv.com + 126https://iptv-org.github.io/epg/guides/cd/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇩🇰 Denmark61https://iptv-org.github.io/epg/guides/dk/allente.se.epg.xml.gzallente.se + 🇩🇯 Djibouti242https://iptv-org.github.io/epg/guides/dj/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 121https://iptv-org.github.io/epg/guides/dj/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇩🇴 Dominican Republic56https://iptv-org.github.io/epg/guides/do/gatotv.com.epg.xml.gzgatotv.com + 🇪🇨 Ecuador41https://iptv-org.github.io/epg/guides/ec/gatotv.com.epg.xml.gzgatotv.com + 🇪🇬 Egypt107https://iptv-org.github.io/epg/guides/eg-ar/elcinema.com.epg.xml.gzelcinema.com + 107https://iptv-org.github.io/epg/guides/eg-en/elcinema.com.epg.xml.gzelcinema.com + 98https://iptv-org.github.io/epg/guides/eg-ar/osn.com.epg.xml.gzosn.com + 98https://iptv-org.github.io/epg/guides/eg-en/osn.com.epg.xml.gzosn.com + 🇸🇻 El Salvador48https://iptv-org.github.io/epg/guides/sv/gatotv.com.epg.xml.gzgatotv.com + 12https://iptv-org.github.io/epg/guides/sv/mi.tv.epg.xml.gzmi.tv + 🇬🇶 Equatorial Guinea242https://iptv-org.github.io/epg/guides/gq/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 125https://iptv-org.github.io/epg/guides/gq/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇪🇷 Eritrea123https://iptv-org.github.io/epg/guides/er/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇪🇪 Estonia132https://iptv-org.github.io/epg/guides/ee-en/teliatv.ee.epg.xml.gzteliatv.ee + 132https://iptv-org.github.io/epg/guides/ee-ru/teliatv.ee.epg.xml.gzteliatv.ee + 130https://iptv-org.github.io/epg/guides/ee-et/teliatv.ee.epg.xml.gzteliatv.ee + 🇪🇹 Ethiopia148https://iptv-org.github.io/epg/guides/et/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇫🇴 Faroe Islands1https://iptv-org.github.io/epg/guides/fo/kvf.fo.epg.xml.gzkvf.fo + 🇫🇮 Finland36https://iptv-org.github.io/epg/guides/fi/allente.se.epg.xml.gzallente.se + 36https://iptv-org.github.io/epg/guides/fi/telkussa.fi.epg.xml.gztelkussa.fi + 🇫🇷 France280https://iptv-org.github.io/epg/guides/fr/telecablesat.fr.epg.xml.gztelecablesat.fr + 225https://iptv-org.github.io/epg/guides/fr/canalplus.com.epg.xml.gzcanalplus.com + 211https://iptv-org.github.io/epg/guides/fr/programme-tv.net.epg.xml.gzprogramme-tv.net + 194https://iptv-org.github.io/epg/guides/fr/chaines-tv.orange.fr.epg.xml.gzchaines-tv.orange.fr + 10https://iptv-org.github.io/epg/guides/fr/beinsports.com.epg.xml.gzbeinsports.com + 🇬🇫 French Guiana127https://iptv-org.github.io/epg/guides/gf/canalplus-caraibes.com.epg.xml.gzcanalplus-caraibes.com + 🇵🇫 French Polynesia2https://iptv-org.github.io/epg/guides/pf/programme-tv.vini.pf.epg.xml.gzprogramme-tv.vini.pf + 🇬🇦 Gabon242https://iptv-org.github.io/epg/guides/ga/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 125https://iptv-org.github.io/epg/guides/ga/guide.dstv.com.epg.xml.gzguide.dstv.com + 101https://iptv-org.github.io/epg/guides/ga/startimestv.com.epg.xml.gzstartimestv.com + 🇬🇲 Gambia242https://iptv-org.github.io/epg/guides/gm/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 124https://iptv-org.github.io/epg/guides/gm/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇬🇪 Georgia116https://iptv-org.github.io/epg/guides/ge/magticom.ge.epg.xml.gzmagticom.ge + 🇩🇪 Germany245https://iptv-org.github.io/epg/guides/de/horizon.tv.epg.xml.gzhorizon.tv + 121https://iptv-org.github.io/epg/guides/de/hd-plus.de.epg.xml.gzhd-plus.de + 🇬🇭 Ghana242https://iptv-org.github.io/epg/guides/gh/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 139https://iptv-org.github.io/epg/guides/gh/guide.dstv.com.epg.xml.gzguide.dstv.com + 124https://iptv-org.github.io/epg/guides/gh/startimestv.com.epg.xml.gzstartimestv.com + 🇬🇷 Greece86https://iptv-org.github.io/epg/guides/gr/cosmote.gr.epg.xml.gzcosmote.gr + 🇬🇱 Greenland1https://iptv-org.github.io/epg/guides/gl/knr.gl.epg.xml.gzknr.gl + 🇬🇵 Guadeloupe127https://iptv-org.github.io/epg/guides/gp/canalplus-caraibes.com.epg.xml.gzcanalplus-caraibes.com + 🇬🇺 Guam1https://iptv-org.github.io/epg/guides/gu/pbsguam.org.epg.xml.gzpbsguam.org + 🇬🇹 Guatemala49https://iptv-org.github.io/epg/guides/gt/gatotv.com.epg.xml.gzgatotv.com + 18https://iptv-org.github.io/epg/guides/gt/mi.tv.epg.xml.gzmi.tv + 🇬🇳 Guinea242https://iptv-org.github.io/epg/guides/gn/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 154https://iptv-org.github.io/epg/guides/gn/startimestv.com.epg.xml.gzstartimestv.com + 125https://iptv-org.github.io/epg/guides/gn/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇬🇼 Guinea-Bissau242https://iptv-org.github.io/epg/guides/gw/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 125https://iptv-org.github.io/epg/guides/gw/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇭🇹 Haiti112https://iptv-org.github.io/epg/guides/ht/canalplus-haiti.com.epg.xml.gzcanalplus-haiti.com + 🇭🇳 Honduras46https://iptv-org.github.io/epg/guides/hn/gatotv.com.epg.xml.gzgatotv.com + 22https://iptv-org.github.io/epg/guides/hn/mi.tv.epg.xml.gzmi.tv + 🇭🇰 Hong Kong131https://iptv-org.github.io/epg/guides/hk-en/nowplayer.now.com.epg.xml.gznowplayer.now.com + 128https://iptv-org.github.io/epg/guides/hk-zh/nowplayer.now.com.epg.xml.gznowplayer.now.com + 2https://iptv-org.github.io/epg/guides/hk/beinsports.com.epg.xml.gzbeinsports.com + 🇭🇺 Hungary169https://iptv-org.github.io/epg/guides/hu/musor.tv.epg.xml.gzmusor.tv + 90https://iptv-org.github.io/epg/guides/hu/tvmusor.hu.epg.xml.gztvmusor.hu + 74https://iptv-org.github.io/epg/guides/hu/tv.yettel.hu.epg.xml.gztv.yettel.hu + 8https://iptv-org.github.io/epg/guides/hu/mediaklikk.hu.epg.xml.gzmediaklikk.hu + 🇮🇸 Iceland2https://iptv-org.github.io/epg/guides/is/ruv.is.epg.xml.gzruv.is + 🇮🇳 India363https://iptv-org.github.io/epg/guides/in/dishtv.in.epg.xml.gzdishtv.in + 🇮🇩 Indonesia126https://iptv-org.github.io/epg/guides/id/useetv.com.epg.xml.gzuseetv.com + 98https://iptv-org.github.io/epg/guides/id-en/mncvision.id.epg.xml.gzmncvision.id + 98https://iptv-org.github.io/epg/guides/id-id/mncvision.id.epg.xml.gzmncvision.id + 78https://iptv-org.github.io/epg/guides/id/transvision.co.id.epg.xml.gztransvision.co.id + 57https://iptv-org.github.io/epg/guides/id/vidio.com.epg.xml.gzvidio.com + 2https://iptv-org.github.io/epg/guides/id/beinsports.com.epg.xml.gzbeinsports.com + 🇮🇷 Iran28https://iptv-org.github.io/epg/guides/ir/tva.tv.epg.xml.gztva.tv + 🇮🇶 Iraq98https://iptv-org.github.io/epg/guides/iq-ar/osn.com.epg.xml.gzosn.com + 98https://iptv-org.github.io/epg/guides/iq-en/osn.com.epg.xml.gzosn.com + 🇮🇪 Ireland3https://iptv-org.github.io/epg/guides/ie/ontvtonight.com.epg.xml.gzontvtonight.com + 🇮🇱 Israel3https://iptv-org.github.io/epg/guides/il/i24news.tv.epg.xml.gzi24news.tv + 3https://iptv-org.github.io/epg/guides/il/kan.org.il.epg.xml.gzkan.org.il + 1https://iptv-org.github.io/epg/guides/il/9tv.co.il.epg.xml.gz9tv.co.il + 1https://iptv-org.github.io/epg/guides/il/mako.co.il.epg.xml.gzmako.co.il + 🇮🇹 Italy152https://iptv-org.github.io/epg/guides/it/guidatv.sky.it.epg.xml.gzguidatv.sky.it + 15https://iptv-org.github.io/epg/guides/it/mediaset.it.epg.xml.gzmediaset.it + 14https://iptv-org.github.io/epg/guides/it/raiplay.it.epg.xml.gzraiplay.it + 🇨🇮 Ivory Coast242https://iptv-org.github.io/epg/guides/ci/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 172https://iptv-org.github.io/epg/guides/ci/startimestv.com.epg.xml.gzstartimestv.com + 128https://iptv-org.github.io/epg/guides/ci/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇯🇵 Japan136https://iptv-org.github.io/epg/guides/jp/tvguide.myjcom.jp.epg.xml.gztvguide.myjcom.jp + 🇯🇴 Jordan98https://iptv-org.github.io/epg/guides/jo-ar/osn.com.epg.xml.gzosn.com + 98https://iptv-org.github.io/epg/guides/jo-en/osn.com.epg.xml.gzosn.com + 🇰🇿 Kazakhstan8https://iptv-org.github.io/epg/guides/kz/tv.yandex.ru.epg.xml.gztv.yandex.ru + 🇰🇪 Kenya151https://iptv-org.github.io/epg/guides/ke/guide.dstv.com.epg.xml.gzguide.dstv.com + 147https://iptv-org.github.io/epg/guides/ke/startimestv.com.epg.xml.gzstartimestv.com + 🇽🇰 Kosovo34https://iptv-org.github.io/epg/guides/xk/tvim.tv.epg.xml.gztvim.tv + 🇰🇼 Kuwait98https://iptv-org.github.io/epg/guides/kw-ar/osn.com.epg.xml.gzosn.com + 98https://iptv-org.github.io/epg/guides/kw-en/osn.com.epg.xml.gzosn.com + 🇱🇻 Latvia20https://iptv-org.github.io/epg/guides/lv/tv.lv.epg.xml.gztv.lv + 🇱🇧 Lebanon98https://iptv-org.github.io/epg/guides/lb-ar/osn.com.epg.xml.gzosn.com + 98https://iptv-org.github.io/epg/guides/lb-en/osn.com.epg.xml.gzosn.com + 🇱🇸 Lesotho145https://iptv-org.github.io/epg/guides/ls/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇱🇷 Liberia125https://iptv-org.github.io/epg/guides/lr/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇱🇾 Libya98https://iptv-org.github.io/epg/guides/ly-ar/osn.com.epg.xml.gzosn.com + 98https://iptv-org.github.io/epg/guides/ly-en/osn.com.epg.xml.gzosn.com + 🇲🇬 Madagascar164https://iptv-org.github.io/epg/guides/mg/startimestv.com.epg.xml.gzstartimestv.com + 125https://iptv-org.github.io/epg/guides/mg/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇲🇼 Malawi131https://iptv-org.github.io/epg/guides/mw/guide.dstv.com.epg.xml.gzguide.dstv.com + 95https://iptv-org.github.io/epg/guides/mw/startimestv.com.epg.xml.gzstartimestv.com + 🇲🇾 Malaysia139https://iptv-org.github.io/epg/guides/my/astro.com.my.epg.xml.gzastro.com.my + 1https://iptv-org.github.io/epg/guides/my/beinsports.com.epg.xml.gzbeinsports.com + 🇲🇱 Mali242https://iptv-org.github.io/epg/guides/ml/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 125https://iptv-org.github.io/epg/guides/ml/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇲🇹 Malta123https://iptv-org.github.io/epg/guides/mt/melita.com.epg.xml.gzmelita.com + 2https://iptv-org.github.io/epg/guides/mt/tvmi.mt.epg.xml.gztvmi.mt + 🇲🇶 Martinique127https://iptv-org.github.io/epg/guides/mq/canalplus-caraibes.com.epg.xml.gzcanalplus-caraibes.com + 🇲🇷 Mauritania242https://iptv-org.github.io/epg/guides/mr/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 125https://iptv-org.github.io/epg/guides/mr/guide.dstv.com.epg.xml.gzguide.dstv.com + 97https://iptv-org.github.io/epg/guides/mr-ar/osn.com.epg.xml.gzosn.com + 97https://iptv-org.github.io/epg/guides/mr-en/osn.com.epg.xml.gzosn.com + 🇲🇺 Mauritius126https://iptv-org.github.io/epg/guides/mu/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇾🇹 Mayotte118https://iptv-org.github.io/epg/guides/yt/canalplus-reunion.com.epg.xml.gzcanalplus-reunion.com + 🇲🇽 Mexico101https://iptv-org.github.io/epg/guides/mx/gatotv.com.epg.xml.gzgatotv.com + 26https://iptv-org.github.io/epg/guides/mx/mi.tv.epg.xml.gzmi.tv + 🇲🇪 Montenegro4https://iptv-org.github.io/epg/guides/me/tvarenasport.com.epg.xml.gztvarenasport.com + 🇲🇦 Morocco97https://iptv-org.github.io/epg/guides/ma-ar/osn.com.epg.xml.gzosn.com + 97https://iptv-org.github.io/epg/guides/ma-en/osn.com.epg.xml.gzosn.com + 🇲🇿 Mozambique128https://iptv-org.github.io/epg/guides/mz/startimestv.com.epg.xml.gzstartimestv.com + 86https://iptv-org.github.io/epg/guides/mz/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇳🇦 Namibia130https://iptv-org.github.io/epg/guides/na/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇳🇱 Netherlands225https://iptv-org.github.io/epg/guides/nl/delta.nl.epg.xml.gzdelta.nl + 141https://iptv-org.github.io/epg/guides/nl/ziggogo.tv.epg.xml.gzziggogo.tv + 🇳🇮 Nicaragua46https://iptv-org.github.io/epg/guides/ni/gatotv.com.epg.xml.gzgatotv.com + 🇳🇪 Niger242https://iptv-org.github.io/epg/guides/ne/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 128https://iptv-org.github.io/epg/guides/ne/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇳🇬 Nigeria149https://iptv-org.github.io/epg/guides/ng/dstv.com.epg.xml.gzdstv.com + 145https://iptv-org.github.io/epg/guides/ng/guide.dstv.com.epg.xml.gzguide.dstv.com + 140https://iptv-org.github.io/epg/guides/ng/startimestv.com.epg.xml.gzstartimestv.com + 🇲🇰 North Macedonia51https://iptv-org.github.io/epg/guides/mk/maxtvgo.mk.epg.xml.gzmaxtvgo.mk + 4https://iptv-org.github.io/epg/guides/mk/tvarenasport.com.epg.xml.gztvarenasport.com + 🇳🇴 Norway71https://iptv-org.github.io/epg/guides/no/allente.se.epg.xml.gzallente.se + 1https://iptv-org.github.io/epg/guides/no/frikanalen.no.epg.xml.gzfrikanalen.no + 🇴🇲 Oman97https://iptv-org.github.io/epg/guides/om-ar/osn.com.epg.xml.gzosn.com + 97https://iptv-org.github.io/epg/guides/om-en/osn.com.epg.xml.gzosn.com + 🇵🇸 Palestine98https://iptv-org.github.io/epg/guides/ps-ar/osn.com.epg.xml.gzosn.com + 98https://iptv-org.github.io/epg/guides/ps-en/osn.com.epg.xml.gzosn.com + 🇵🇦 Panama48https://iptv-org.github.io/epg/guides/pa/gatotv.com.epg.xml.gzgatotv.com + 🇵🇾 Paraguay35https://iptv-org.github.io/epg/guides/py/gatotv.com.epg.xml.gzgatotv.com + 🇵🇪 Peru44https://iptv-org.github.io/epg/guides/pe/gatotv.com.epg.xml.gzgatotv.com + 19https://iptv-org.github.io/epg/guides/pe/mi.tv.epg.xml.gzmi.tv + 🇵🇭 Philippines33https://iptv-org.github.io/epg/guides/ph/clickthecity.com.epg.xml.gzclickthecity.com + 2https://iptv-org.github.io/epg/guides/ph/beinsports.com.epg.xml.gzbeinsports.com + 🇵🇱 Poland341https://iptv-org.github.io/epg/guides/pl/programtv.onet.pl.epg.xml.gzprogramtv.onet.pl + 🇵🇹 Portugal203https://iptv-org.github.io/epg/guides/pt/meo.pt.epg.xml.gzmeo.pt + 🇶🇦 Qatar98https://iptv-org.github.io/epg/guides/qa-ar/osn.com.epg.xml.gzosn.com + 98https://iptv-org.github.io/epg/guides/qa-en/osn.com.epg.xml.gzosn.com + 34https://iptv-org.github.io/epg/guides/qa/bein.com.epg.xml.gzbein.com + 25https://iptv-org.github.io/epg/guides/qa-ar/beinsports.com.epg.xml.gzbeinsports.com + 19https://iptv-org.github.io/epg/guides/qa-en/beinsports.com.epg.xml.gzbeinsports.com + 🇨🇬 Republic of the Congo242https://iptv-org.github.io/epg/guides/cg/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 149https://iptv-org.github.io/epg/guides/cg/startimestv.com.epg.xml.gzstartimestv.com + 125https://iptv-org.github.io/epg/guides/cg/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇷🇴 Romania233https://iptv-org.github.io/epg/guides/ro/programetv.ro.epg.xml.gzprogrametv.ro + 🇷🇺 Russia283https://iptv-org.github.io/epg/guides/ru/tv.yandex.ru.epg.xml.gztv.yandex.ru + 🇷🇼 Rwanda242https://iptv-org.github.io/epg/guides/rw/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 142https://iptv-org.github.io/epg/guides/rw/startimestv.com.epg.xml.gzstartimestv.com + 132https://iptv-org.github.io/epg/guides/rw/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇷🇪 Réunion118https://iptv-org.github.io/epg/guides/re/canalplus-reunion.com.epg.xml.gzcanalplus-reunion.com + 🇧🇱 Saint Barthélemy127https://iptv-org.github.io/epg/guides/bl/canalplus-caraibes.com.epg.xml.gzcanalplus-caraibes.com + 🇲🇫 Saint Martin127https://iptv-org.github.io/epg/guides/mf/canalplus-caraibes.com.epg.xml.gzcanalplus-caraibes.com + 🇸🇦 Saudi Arabia97https://iptv-org.github.io/epg/guides/sa-ar/osn.com.epg.xml.gzosn.com + 97https://iptv-org.github.io/epg/guides/sa-en/osn.com.epg.xml.gzosn.com + 5https://iptv-org.github.io/epg/guides/sa/artonline.tv.epg.xml.gzartonline.tv + 🇸🇳 Senegal242https://iptv-org.github.io/epg/guides/sn/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 125https://iptv-org.github.io/epg/guides/sn/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇷🇸 Serbia350https://iptv-org.github.io/epg/guides/rs/mts.rs.epg.xml.gzmts.rs + 12https://iptv-org.github.io/epg/guides/rs/tvarenasport.com.epg.xml.gztvarenasport.com + 🇸🇨 Seychelles124https://iptv-org.github.io/epg/guides/sc/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇸🇱 Sierra Leone242https://iptv-org.github.io/epg/guides/sl/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 125https://iptv-org.github.io/epg/guides/sl/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇸🇬 Singapore129https://iptv-org.github.io/epg/guides/sg/starhubtvplus.com.epg.xml.gzstarhubtvplus.com + 17https://iptv-org.github.io/epg/guides/sg/mewatch.sg.epg.xml.gzmewatch.sg + 🇸🇮 Slovenia264https://iptv-org.github.io/epg/guides/si/tv2go.t-2.net.epg.xml.gztv2go.t-2.net + 🇸🇴 Somalia120https://iptv-org.github.io/epg/guides/so/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇿🇦 South Africa159https://iptv-org.github.io/epg/guides/za/guide.dstv.com.epg.xml.gzguide.dstv.com + 143https://iptv-org.github.io/epg/guides/za/dstv.com.epg.xml.gzdstv.com + 🇰🇷 South Korea98https://iptv-org.github.io/epg/guides/kr/seezntv.com.epg.xml.gzseezntv.com + 77https://iptv-org.github.io/epg/guides/kr/wavve.com.epg.xml.gzwavve.com + 🇸🇸 South Sudan125https://iptv-org.github.io/epg/guides/ss/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇪🇸 Spain183https://iptv-org.github.io/epg/guides/es/movistarplus.es.epg.xml.gzmovistarplus.es + 109https://iptv-org.github.io/epg/guides/es/programacion-tv.elpais.com.epg.xml.gzprogramacion-tv.elpais.com + 58https://iptv-org.github.io/epg/guides/es/gatotv.com.epg.xml.gzgatotv.com + 🇸🇩 Sudan118https://iptv-org.github.io/epg/guides/sd/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇸🇿 Swaziland127https://iptv-org.github.io/epg/guides/sz/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇸🇪 Sweden173https://iptv-org.github.io/epg/guides/se/tv.nu.epg.xml.gztv.nu + 109https://iptv-org.github.io/epg/guides/se/allente.se.epg.xml.gzallente.se + 🇨🇭 Switzerland598https://iptv-org.github.io/epg/guides/ch/tv.blue.ch.epg.xml.gztv.blue.ch + 🇸🇹 São Tomé and Príncipe128https://iptv-org.github.io/epg/guides/st/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇹🇿 Tanzania152https://iptv-org.github.io/epg/guides/tz/startimestv.com.epg.xml.gzstartimestv.com + 30https://iptv-org.github.io/epg/guides/tz/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇹🇭 Thailand81https://iptv-org.github.io/epg/guides/th/tv.trueid.net.epg.xml.gztv.trueid.net + 2https://iptv-org.github.io/epg/guides/th/beinsports.com.epg.xml.gzbeinsports.com + 🇹🇬 Togo242https://iptv-org.github.io/epg/guides/tg/canalplus-afrique.com.epg.xml.gzcanalplus-afrique.com + 137https://iptv-org.github.io/epg/guides/tg/guide.dstv.com.epg.xml.gzguide.dstv.com + 🇹🇷 Turkey144https://iptv-org.github.io/epg/guides/tr/tvplus.com.tr.epg.xml.gztvplus.com.tr + 115https://iptv-org.github.io/epg/guides/tr/digiturk.com.tr.epg.xml.gzdigiturk.com.tr + 105https://iptv-org.github.io/epg/guides/tr/dsmart.com.tr.epg.xml.gzdsmart.com.tr + 🇺🇬 Uganda151https://iptv-org.github.io/epg/guides/ug/guide.dstv.com.epg.xml.gzguide.dstv.com + 146https://iptv-org.github.io/epg/guides/ug/startimestv.com.epg.xml.gzstartimestv.com + 🇦🇪 United Arab Emirates98https://iptv-org.github.io/epg/guides/ae-ar/osn.com.epg.xml.gzosn.com + 98https://iptv-org.github.io/epg/guides/ae-en/osn.com.epg.xml.gzosn.com + 🇬🇧 United Kingdom261https://iptv-org.github.io/epg/guides/uk/sky.com.epg.xml.gzsky.com + 197https://iptv-org.github.io/epg/guides/uk/virginmedia.com.epg.xml.gzvirginmedia.com + 192https://iptv-org.github.io/epg/guides/uk/bt.com.epg.xml.gzbt.com + 97https://iptv-org.github.io/epg/guides/uk/ontvtonight.com.epg.xml.gzontvtonight.com + 🇺🇸 United States1552https://iptv-org.github.io/epg/guides/us-local/tvtv.us.epg.xml.gztvtv.us + 713https://iptv-org.github.io/epg/guides/us/tvtv.us.epg.xml.gztvtv.us + 383https://iptv-org.github.io/epg/guides/us/directv.com.epg.xml.gzdirectv.com + 329https://iptv-org.github.io/epg/guides/us-pluto/i.mjh.nz.epg.xml.gzi.mjh.nz + 88https://iptv-org.github.io/epg/guides/us/tvguide.com.epg.xml.gztvguide.com + 22https://iptv-org.github.io/epg/guides/us/gatotv.com.epg.xml.gzgatotv.com + 11https://iptv-org.github.io/epg/guides/us/ontvtonight.com.epg.xml.gzontvtonight.com + 10https://iptv-org.github.io/epg/guides/us-en/beinsports.com.epg.xml.gzbeinsports.com + 10https://iptv-org.github.io/epg/guides/us-es/beinsports.com.epg.xml.gzbeinsports.com + 🇺🇾 Uruguay28https://iptv-org.github.io/epg/guides/uy/gatotv.com.epg.xml.gzgatotv.com + 🇻🇪 Venezuela33https://iptv-org.github.io/epg/guides/ve/gatotv.com.epg.xml.gzgatotv.com + 🇾🇪 Yemen98https://iptv-org.github.io/epg/guides/ye-ar/osn.com.epg.xml.gzosn.com + 98https://iptv-org.github.io/epg/guides/ye-en/osn.com.epg.xml.gzosn.com + 🇿🇲 Zambia136https://iptv-org.github.io/epg/guides/zm/guide.dstv.com.epg.xml.gzguide.dstv.com + 4https://iptv-org.github.io/epg/guides/zm/znbc.co.zm.epg.xml.gzznbc.co.zm + 🇿🇼 Zimbabwe130https://iptv-org.github.io/epg/guides/zw/guide.dstv.com.epg.xml.gzguide.dstv.com -To use a compressed version of the files, add `.gz` to the end of the filename. - ## API The API documentation can be found in the [iptv-org/api](https://github.com/iptv-org/api) repository. diff --git a/package-lock.json b/package-lock.json index d5a4104fe..5cb5dc0cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1495,6 +1495,14 @@ } ] }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -1928,7 +1936,7 @@ "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, "node_modules/convert-source-map": { "version": "1.8.0", @@ -2134,7 +2142,7 @@ "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, "node_modules/detect-libc": { "version": "2.0.1", @@ -3043,7 +3051,7 @@ "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, "node_modules/html-encoding-sniffer": { "version": "2.0.1", @@ -4258,19 +4266,6 @@ "node": ">=12" } }, - "node_modules/libxmljs2/node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/libxmljs2/node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" - }, "node_modules/lie": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", @@ -4504,9 +4499,9 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", + "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", "dependencies": { "yallist": "^4.0.0" }, @@ -4526,6 +4521,17 @@ "node": ">= 8" } }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/mockdate": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/mockdate/-/mockdate-3.0.5.tgz", @@ -4541,6 +4547,11 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, + "node_modules/nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -4586,17 +4597,17 @@ "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -4691,7 +4702,7 @@ "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { "node": ">=0.10.0" } @@ -5300,7 +5311,7 @@ "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, "node_modules/shebang-command": { "version": "2.0.0", @@ -5649,17 +5660,6 @@ "node": ">= 10" } }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", @@ -7269,6 +7269,14 @@ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -7590,7 +7598,7 @@ "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, "convert-source-map": { "version": "1.8.0", @@ -7749,7 +7757,7 @@ "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, "detect-libc": { "version": "2.0.1", @@ -8410,7 +8418,7 @@ "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, "html-encoding-sniffer": { "version": "2.0.1", @@ -9305,21 +9313,6 @@ "@mapbox/node-pre-gyp": "^1.0.9", "bindings": "~1.5.0", "nan": "~2.15.0" - }, - "dependencies": { - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" - } } }, "lie": { @@ -9503,9 +9496,9 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", + "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", "requires": { "yallist": "^4.0.0" } @@ -9519,6 +9512,11 @@ "yallist": "^4.0.0" } }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, "mockdate": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/mockdate/-/mockdate-3.0.5.tgz", @@ -9534,6 +9532,11 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, + "nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -9568,17 +9571,17 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "requires": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -9654,7 +9657,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-code": { "version": "1.2.2", @@ -10097,7 +10100,7 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, "shebang-command": { "version": "2.0.0", @@ -10354,13 +10357,6 @@ "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - } } }, "terminal-link": { diff --git a/scripts/commands/api/update.js b/scripts/commands/api/update.js index e705db672..f11afa470 100644 --- a/scripts/commands/api/update.js +++ b/scripts/commands/api/update.js @@ -24,7 +24,7 @@ async function main() { channel: channel.id, site: channel.site, lang: channel.lang, - url: `https://iptv-org.github.io/epg/guides/${suffix}/${site}.epg.xml` + url: `https://iptv-org.github.io/epg/guides/${suffix}/${site}.epg.xml.gz` }) } } catch (err) { diff --git a/scripts/commands/guides/update.js b/scripts/commands/guides/update.js index 59e624a57..304d4ccca 100644 --- a/scripts/commands/guides/update.js +++ b/scripts/commands/guides/update.js @@ -31,12 +31,11 @@ async function main() { channels = Object.values(channels) channels = _.sortBy(channels, 'id') - const filepath = `${PUBLIC_DIR}/guides/${key}.epg.xml` + const filepath = `${PUBLIC_DIR}/guides/${key}.epg.xml.gz` logger.info(`Creating "${filepath}"...`) - const output = generateXMLTV({ channels, programs, date: CURR_DATE }) - await file.create(filepath, output) - const compressed = await zip.compress(output) - await file.create(filepath + '.gz', compressed) + const xmltv = generateXMLTV({ channels, programs, date: CURR_DATE }) + const compressed = await zip.compress(xmltv) + await file.create(filepath, compressed) } if (!total) { diff --git a/scripts/commands/readme/update.js b/scripts/commands/readme/update.js index 18f47c52e..1afaf5d7f 100644 --- a/scripts/commands/readme/update.js +++ b/scripts/commands/readme/update.js @@ -55,7 +55,7 @@ async function generateCountriesTable(items = []) { flag: country.flag, name: country.name, channels: item.count, - epg: `https://iptv-org.github.io/epg/guides/${item.group}.epg.xml`, + epg: `https://iptv-org.github.io/epg/guides/${item.group}.epg.xml.gz`, status: `${item.site}` }) } diff --git a/sites/allente.se/allente.se.config.js b/sites/allente.se/allente.se.config.js index 816e3f589..f2592ea06 100644 --- a/sites/allente.se/allente.se.config.js +++ b/sites/allente.se/allente.se.config.js @@ -20,6 +20,8 @@ module.exports = { category: item.details.categories, description: item.details.description, icon: item.details.image, + season: parseSeason(item), + episode: parseEpisode(item), start, stop }) @@ -51,3 +53,10 @@ function parseItems(content, channel) { return channelData && Array.isArray(channelData.events) ? channelData.events : [] } + +function parseSeason(item) { + return item.details.season || null +} +function parseEpisode(item) { + return item.details.episode || null +} \ No newline at end of file diff --git a/sites/allente.se/allente.se.test.js b/sites/allente.se/allente.se.test.js index 5a5d4d030..6d6eab1ce 100644 --- a/sites/allente.se/allente.se.test.js +++ b/sites/allente.se/allente.se.test.js @@ -2,7 +2,7 @@ // node ./scripts/channels.js --config=./sites/allente.se/allente.se.config.js --output=./sites/allente.se/allente.se_fi.channels.xml --set=country:fi --set=lang:fi // node ./scripts/channels.js --config=./sites/allente.se/allente.se.config.js --output=./sites/allente.se/allente.se_no.channels.xml --set=country:no --set=lang:no // node ./scripts/channels.js --config=./sites/allente.se/allente.se.config.js --output=./sites/allente.se/allente.se_dk.channels.xml --set=country:dk --set=lang:da -// npx epg-grabber --config=sites/allente.se/allente.se.config.js --channels=sites/allente.se/allente.se_se.channels.xml --output=.gh-pages/guides/se/allente.se.epg.xml --days=2 +// npx epg-grabber --config=sites/allente.se/allente.se.config.js --channels=sites/allente.se/allente.se_se.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./allente.se.config.js') const dayjs = require('dayjs') @@ -29,7 +29,7 @@ it('can generate valid url for different country', () => { }) it('can parse response', () => { - const content = `{"channels":[{"id":"0148","icon":"//images.ctfassets.net/989y85n5kcxs/5uT9g9pdQWRZeDPQXVI9g6/e02f550a32e259b9be8081e83dc64948/svt_1_logotyp_rgb_0.png","name":"SVT1 HD (T)","events":[{"id":"0086202111170415","live":false,"time":"2021-11-17T04:15:00Z","title":"Go'kväll","details":{"title":"Go'kväll","image":"https://viasatps.api.comspace.se/PS/channeldate/image/viasat.ps/21/2021-11-16/se.cs.svt1.event.A_40938191100.jpg?size=2560x1440","description":"Svenskt magasin från 2021. Dockspelare och hundar. Intervju med dockspelarna Björn Carlberg och Petter Lennstrand, personerna bakom tv-favoriter som Allram Eest och Klotty. Nu är de aktuella med turné och en ny dockföreställning. Sofia Åhman ger nya inspirerande träningstips och hundinstruktören Helena Tilly svarar på tittarnas frågor om hundar. Reportageserien \\"Sju sorters kakor\\" fortsätter.","season":2021,"episode":121,"categories":["other"],"duration":"45"}}]}]}` + const content = `{"channels":[{"id":"0148","icon":"//images.ctfassets.net/989y85n5kcxs/5uT9g9pdQWRZeDPQXVI9g6/9cc44da567f591822ed645c99ecdcb64/SVT_1_black_new__2_.png","name":"SVT1 HD (T)","events":[{"id":"0086202208220710","live":false,"time":"2022-08-22T07:10:00Z","title":"Hemmagympa med Sofia","details":{"title":"Hemmagympa med Sofia","image":"https://viasatps.api.comspace.se/PS/channeldate/image/viasat.ps/21/2022-08-22/se.cs.svt1.event.A_41214031600.jpg?size=2560x1440","description":"Svenskt träningsprogram från 2021. Styrka. Sofia Åhman leder SVT:s hemmagympapass. Denna gång fokuserar vi på styrka.","season":4,"episode":1,"categories":["other"],"duration":"20"}}]}]}` const result = parser({ content, channel }).map(p => { p.start = p.start.toJSON() p.stop = p.stop.toJSON() @@ -38,12 +38,14 @@ it('can parse response', () => { expect(result).toMatchObject([ { - start: '2021-11-17T04:15:00.000Z', - stop: '2021-11-17T05:00:00.000Z', - title: `Go'kväll`, + start: '2022-08-22T07:10:00.000Z', + stop: '2022-08-22T07:30:00.000Z', + title: `Hemmagympa med Sofia`, category: ['other'], - description: `Svenskt magasin från 2021. Dockspelare och hundar. Intervju med dockspelarna Björn Carlberg och Petter Lennstrand, personerna bakom tv-favoriter som Allram Eest och Klotty. Nu är de aktuella med turné och en ny dockföreställning. Sofia Åhman ger nya inspirerande träningstips och hundinstruktören Helena Tilly svarar på tittarnas frågor om hundar. Reportageserien \"Sju sorters kakor\" fortsätter.`, - icon: 'https://viasatps.api.comspace.se/PS/channeldate/image/viasat.ps/21/2021-11-16/se.cs.svt1.event.A_40938191100.jpg?size=2560x1440' + description: `Svenskt träningsprogram från 2021. Styrka. Sofia Åhman leder SVT:s hemmagympapass. Denna gång fokuserar vi på styrka.`, + icon: 'https://viasatps.api.comspace.se/PS/channeldate/image/viasat.ps/21/2022-08-22/se.cs.svt1.event.A_41214031600.jpg?size=2560x1440', + season: 4, + episode: 1 } ]) }) diff --git a/sites/allente.se/allente.se_se.channels.xml b/sites/allente.se/allente.se_se.channels.xml index ee108babc..eab78d1e0 100644 --- a/sites/allente.se/allente.se_se.channels.xml +++ b/sites/allente.se/allente.se_se.channels.xml @@ -68,6 +68,8 @@ NRK2 NRK3 Paramount Network + Paramount+ Movies + Paramount+ Series SF-kanalen Sjuan Sky News International diff --git a/sites/andorradifusio.ad/andorradifusio.ad.test.js b/sites/andorradifusio.ad/andorradifusio.ad.test.js index 9ac8ac6d3..afe3448e2 100644 --- a/sites/andorradifusio.ad/andorradifusio.ad.test.js +++ b/sites/andorradifusio.ad/andorradifusio.ad.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/andorradifusio.ad/andorradifusio.ad.config.js --channels=sites/andorradifusio.ad/andorradifusio.ad_ad.channels.xml --output=.gh-pages/guides/ad/andorradifusio.ad.epg.xml --days=2 +// npx epg-grabber --config=sites/andorradifusio.ad/andorradifusio.ad.config.js --channels=sites/andorradifusio.ad/andorradifusio.ad_ad.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./andorradifusio.ad.config.js') const dayjs = require('dayjs') diff --git a/sites/beinsports.com/beinsports.com_qa-en.channels.xml b/sites/beinsports.com/beinsports.com_qa-en.channels.xml index fbed5101e..08ae8abda 100644 --- a/sites/beinsports.com/beinsports.com_qa-en.channels.xml +++ b/sites/beinsports.com/beinsports.com_qa-en.channels.xml @@ -11,13 +11,14 @@ BeIn Sports 7 BeIn Sports Premium 3 BeIn Sports Xtra 1 - BeIn 4K - BeIn NBA - BeIn Sports English 1 - BeIn Sports English 2 - BeIn Sports English 3 - BeIn Sports French 1 - BeIn Sports French 2 - BeIn Sports French 3 + BeIn Sports Xtra 2 + BeIn 4K + BeIn NBA + BeIn Sports English 1 + BeIn Sports English 2 + BeIn Sports English 3 + BeIn Sports French 1 + BeIn Sports French 2 + BeIn Sports French 3 - \ No newline at end of file + diff --git a/sites/canalplus-caraibes.com/canalplus-caraibes.com.test.js b/sites/canalplus-caraibes.com/canalplus-caraibes.com.test.js index 932b8ca2d..1744cb5bd 100644 --- a/sites/canalplus-caraibes.com/canalplus-caraibes.com.test.js +++ b/sites/canalplus-caraibes.com/canalplus-caraibes.com.test.js @@ -1,5 +1,5 @@ // [Geo-blocked] node ./scripts/channels.js --config=./sites/canalplus-caraibes.com/canalplus-caraibes.com.config.js --output=./sites/canalplus-caraibes.com/canalplus-caraibes.com_bl.channels.xml --set=country:bl -// npx epg-grabber --config=sites/canalplus-caraibes.com/canalplus-caraibes.com.config.js --channels=sites/canalplus-caraibes.com/canalplus-caraibes.com_bl.channels.xml --output=.gh-pages/guides/bl/canalplus-caraibes.com.epg.xml --days=2 +// npx epg-grabber --config=sites/canalplus-caraibes.com/canalplus-caraibes.com.config.js --channels=sites/canalplus-caraibes.com/canalplus-caraibes.com_bl.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./canalplus-caraibes.com.config.js') const axios = require('axios') @@ -30,13 +30,12 @@ it('can generate valid url for tomorrow', () => { ) }) - it('can parse response', done => { - const content = `{"timeSlices":[{"contents":[{"title":"Rugby - Leinster / La Rochelle","subtitle":"Rugby","thirdTitle":"BEIN SPORTS 1 HD","startTime":1660815000,"endTime":1660816800,"onClick":{"displayTemplate":"miniDetail","displayName":"Rugby - Leinster / La Rochelle","URLPage":"https://service.canal-overseas.com/ott-frontend/vector/53001/event/140377765","URLVitrine":"https://service.canal-overseas.com/ott-frontend/vector/53001/program/224515801/recommendations"},"programID":224515801,"diffusionID":"140377765","URLImageDefault":"https://service.canal-overseas.com/image-api/v1/image/75fca4586fdc3458930dd1ab6fc2e643","URLImage":"https://service.canal-overseas.com/image-api/v1/image/7854e20fb6efecd398598653c57cc771"}],"timeSlice":"4"}]}` - axios.get.mockImplementation(url => { - if (url === 'https://service.canal-overseas.com/ott-frontend/vector/53001/event/140377765') { - return Promise.resolve({ - data: JSON.parse(`{ + const content = `{"timeSlices":[{"contents":[{"title":"Rugby - Leinster / La Rochelle","subtitle":"Rugby","thirdTitle":"BEIN SPORTS 1 HD","startTime":1660815000,"endTime":1660816800,"onClick":{"displayTemplate":"miniDetail","displayName":"Rugby - Leinster / La Rochelle","URLPage":"https://service.canal-overseas.com/ott-frontend/vector/53001/event/140377765","URLVitrine":"https://service.canal-overseas.com/ott-frontend/vector/53001/program/224515801/recommendations"},"programID":224515801,"diffusionID":"140377765","URLImageDefault":"https://service.canal-overseas.com/image-api/v1/image/75fca4586fdc3458930dd1ab6fc2e643","URLImage":"https://service.canal-overseas.com/image-api/v1/image/7854e20fb6efecd398598653c57cc771"}],"timeSlice":"4"}]}` + axios.get.mockImplementation(url => { + if (url === 'https://service.canal-overseas.com/ott-frontend/vector/53001/event/140377765') { + return Promise.resolve({ + data: JSON.parse(`{ "currentPage": { "displayName": "Rugby - Leinster / La Rochelle", "displayTemplate": "detailPage", @@ -94,42 +93,43 @@ it('can parse response', done => { ] } }`) - }) - } else { - return Promise.resolve({ data: '' }) + }) + } else { + return Promise.resolve({ data: '' }) + } + }) + + parser({ content }) + .then(result => { + result = result.map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) + + expect(result).toMatchObject([ + { + start: '2022-08-18T09:30:00.000Z', + stop: '2022-08-18T10:00:00.000Z', + title: 'Rugby - Leinster / La Rochelle', + icon: 'https://service.canal-overseas.com/image-api/v1/image/7854e20fb6efecd398598653c57cc771', + category: 'Rugby', + description: + "Retransmission d'un match de Champions Cup de rugby à XV. L'European Rugby Champions Cup est une compétition annuelle interclubs de rugby à XV disputée par les meilleures équipes en Europe. Jusqu'en 2014, cette compétition s'appelait Heineken Cup, ou H Cup, et était sous l'égide de l'ERC, et depuis cette date l'EPRC lui a succédé. La première édition s'est déroulée en 1995." } + ]) + done() }) - - parser({ content }) - .then(result => { - result = result.map(p => { - p.start = p.start.toJSON() - p.stop = p.stop.toJSON() - return p - }) - - expect(result).toMatchObject([ - { - start: '2022-08-18T09:30:00.000Z', - stop: '2022-08-18T10:00:00.000Z', - title: 'Rugby - Leinster / La Rochelle', - icon: 'https://service.canal-overseas.com/image-api/v1/image/7854e20fb6efecd398598653c57cc771', - category: 'Rugby', - description: 'Retransmission d\'un match de Champions Cup de rugby à XV. L\'European Rugby Champions Cup est une compétition annuelle interclubs de rugby à XV disputée par les meilleures équipes en Europe. Jusqu\'en 2014, cette compétition s\'appelait Heineken Cup, ou H Cup, et était sous l\'égide de l\'ERC, et depuis cette date l\'EPRC lui a succédé. La première édition s\'est déroulée en 1995.' - } - ]) - done() - }) - .catch(done) + .catch(done) }) it('can handle empty guide', done => { - parser({ - content: `{"currentPage":{"displayTemplate":"error","BOName":"Page introuvable"},"title":"Page introuvable","text":"La page que vous demandez est introuvable. Si le problème persiste, vous pouvez contacter l'assistance de CANAL+/CANALSAT.","code":404}` + parser({ + content: `{"currentPage":{"displayTemplate":"error","BOName":"Page introuvable"},"title":"Page introuvable","text":"La page que vous demandez est introuvable. Si le problème persiste, vous pouvez contacter l'assistance de CANAL+/CANALSAT.","code":404}` + }) + .then(result => { + expect(result).toMatchObject([]) + done() }) - .then(result => { - expect(result).toMatchObject([]) - done() - }) - .catch(done) + .catch(done) }) diff --git a/sites/canalplus-haiti.com/canalplus-haiti.com.test.js b/sites/canalplus-haiti.com/canalplus-haiti.com.test.js index 8886305b2..95216efce 100644 --- a/sites/canalplus-haiti.com/canalplus-haiti.com.test.js +++ b/sites/canalplus-haiti.com/canalplus-haiti.com.test.js @@ -1,5 +1,5 @@ // [Geo-blocked] node ./scripts/channels.js --config=./sites/canalplus-haiti.com/canalplus-haiti.com.config.js --output=./sites/canalplus-haiti.com/canalplus-haiti.com_ht.channels.xml -// npx epg-grabber --config=sites/canalplus-haiti.com/canalplus-haiti.com.config.js --channels=sites/canalplus-haiti.com/canalplus-haiti.com_ht.channels.xml --output=.gh-pages/guides/ht/canalplus-haiti.com.epg.xml --days=2 +// npx epg-grabber --config=sites/canalplus-haiti.com/canalplus-haiti.com.config.js --channels=sites/canalplus-haiti.com/canalplus-haiti.com_ht.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./canalplus-haiti.com.config.js') const axios = require('axios') @@ -31,7 +31,7 @@ it('can generate valid url for tomorrow', () => { }) it('can parse response', done => { - const content = `{ + const content = `{ "timeSlices": [ { "contents": [ @@ -57,10 +57,10 @@ it('can parse response', done => { } ] }` - axios.get.mockImplementation(url => { - if (url === 'https://service.canal-overseas.com/ott-frontend/vector/53101/event/140952809') { - return Promise.resolve({ - data: JSON.parse(`{ + axios.get.mockImplementation(url => { + if (url === 'https://service.canal-overseas.com/ott-frontend/vector/53101/event/140952809') { + return Promise.resolve({ + data: JSON.parse(`{ "currentPage": { "displayName": "New Amsterdam - S3 - Ep7", "displayTemplate": "detailPage", @@ -133,42 +133,43 @@ it('can parse response', done => { ] } }`) - }) - } else { - return Promise.resolve({ data: '' }) + }) + } else { + return Promise.resolve({ data: '' }) + } + }) + + parser({ content }) + .then(result => { + result = result.map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) + + expect(result).toMatchObject([ + { + start: '2022-08-17T23:55:00.000Z', + stop: '2022-08-18T00:40:00.000Z', + title: 'New Amsterdam - S3 - Ep7', + icon: 'https://service.canal-overseas.com/image-api/v1/image/52a18a209e28380b199201961c27097e', + category: 'Série Hôpital', + description: + "C'est la journée nationale de dépistage du VIH et Max offre des soins gratuits à tous les malades séropositifs qui se présentent à New Amsterdam." } + ]) + done() }) - - parser({ content }) - .then(result => { - result = result.map(p => { - p.start = p.start.toJSON() - p.stop = p.stop.toJSON() - return p - }) - - expect(result).toMatchObject([ - { - start: '2022-08-17T23:55:00.000Z', - stop: '2022-08-18T00:40:00.000Z', - title: 'New Amsterdam - S3 - Ep7', - icon: 'https://service.canal-overseas.com/image-api/v1/image/52a18a209e28380b199201961c27097e', - category: 'Série Hôpital', - description: 'C\'est la journée nationale de dépistage du VIH et Max offre des soins gratuits à tous les malades séropositifs qui se présentent à New Amsterdam.' - } - ]) - done() - }) - .catch(done) + .catch(done) }) it('can handle empty guide', done => { - parser({ - content: `{"currentPage":{"displayTemplate":"error","BOName":"Page introuvable"},"title":"Page introuvable","text":"La page que vous demandez est introuvable. Si le problème persiste, vous pouvez contacter l'assistance de CANAL+/CANALSAT.","code":404}` + parser({ + content: `{"currentPage":{"displayTemplate":"error","BOName":"Page introuvable"},"title":"Page introuvable","text":"La page que vous demandez est introuvable. Si le problème persiste, vous pouvez contacter l'assistance de CANAL+/CANALSAT.","code":404}` + }) + .then(result => { + expect(result).toMatchObject([]) + done() }) - .then(result => { - expect(result).toMatchObject([]) - done() - }) - .catch(done) + .catch(done) }) diff --git a/sites/canalplus-reunion.com/canalplus-reunion.com.test.js b/sites/canalplus-reunion.com/canalplus-reunion.com.test.js index 26bfd8975..b45acc318 100644 --- a/sites/canalplus-reunion.com/canalplus-reunion.com.test.js +++ b/sites/canalplus-reunion.com/canalplus-reunion.com.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/canalplus-reunion.com/canalplus-reunion.com.config.js --channels=sites/canalplus-reunion.com/canalplus-reunion.com_km.channels.xml --output=.gh-pages/guides/km/canalplus-reunion.com.epg.xml --days=2 +// npx epg-grabber --config=sites/canalplus-reunion.com/canalplus-reunion.com.config.js --channels=sites/canalplus-reunion.com/canalplus-reunion.com_km.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./canalplus-reunion.com.config.js') const axios = require('axios') @@ -30,7 +30,7 @@ it('can generate valid url for tomorrow', () => { }) it('can parse response', done => { - const content = `{ + const content = `{ "timeSlices": [ { "contents": [ @@ -56,10 +56,10 @@ it('can parse response', done => { } ] }` - axios.get.mockImplementation(url => { - if (url === 'https://service.canal-overseas.com/ott-frontend/vector/63001/event/140382363') { - return Promise.resolve({ - data: JSON.parse(`{ + axios.get.mockImplementation(url => { + if (url === 'https://service.canal-overseas.com/ott-frontend/vector/63001/event/140382363') { + return Promise.resolve({ + data: JSON.parse(`{ "currentPage": { "displayName": "Almeria / Real Madrid", "displayTemplate": "detailPage", @@ -117,42 +117,43 @@ it('can parse response', done => { ] } }`) - }) - } else { - return Promise.resolve({ data: '' }) + }) + } else { + return Promise.resolve({ data: '' }) + } + }) + + parser({ content }) + .then(result => { + result = result.map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) + + expect(result).toMatchObject([ + { + start: '2022-08-18T00:00:00.000Z', + stop: '2022-08-18T02:00:00.000Z', + title: 'Almeria / Real Madrid', + icon: 'https://service.canal-overseas.com/image-api/v1/image/47000149dabce60d1769589c766aad20', + category: 'Football', + description: + "Diffusion d'un match de LaLiga Santander, championnat d'Espagne de football, la plus haute compétition de football d'Espagne. Cette compétition professionnelle, placée sous la supervision de la Fédération espagnole de football, a été fondée en 1928 et s'appelle Primera Division jusqu'en 2008. Elle se nomme ensuite Liga BBVA jusqu'en 2016 puis LaLiga Santander depuis cette date." } + ]) + done() }) - - parser({ content }) - .then(result => { - result = result.map(p => { - p.start = p.start.toJSON() - p.stop = p.stop.toJSON() - return p - }) - - expect(result).toMatchObject([ - { - start: '2022-08-18T00:00:00.000Z', - stop: '2022-08-18T02:00:00.000Z', - title: 'Almeria / Real Madrid', - icon: 'https://service.canal-overseas.com/image-api/v1/image/47000149dabce60d1769589c766aad20', - category: 'Football', - description: 'Diffusion d\'un match de LaLiga Santander, championnat d\'Espagne de football, la plus haute compétition de football d\'Espagne. Cette compétition professionnelle, placée sous la supervision de la Fédération espagnole de football, a été fondée en 1928 et s\'appelle Primera Division jusqu\'en 2008. Elle se nomme ensuite Liga BBVA jusqu\'en 2016 puis LaLiga Santander depuis cette date.' - } - ]) - done() - }) - .catch(done) + .catch(done) }) it('can handle empty guide', done => { - parser({ - content: `{"currentPage":{"displayTemplate":"error","BOName":"Page introuvable"},"title":"Page introuvable","text":"La page que vous demandez est introuvable. Si le problème persiste, vous pouvez contacter l'assistance de CANAL+/CANALSAT.","code":404}` + parser({ + content: `{"currentPage":{"displayTemplate":"error","BOName":"Page introuvable"},"title":"Page introuvable","text":"La page que vous demandez est introuvable. Si le problème persiste, vous pouvez contacter l'assistance de CANAL+/CANALSAT.","code":404}` + }) + .then(result => { + expect(result).toMatchObject([]) + done() }) - .then(result => { - expect(result).toMatchObject([]) - done() - }) - .catch(done) + .catch(done) }) diff --git a/sites/chaines-tv.orange.fr/chaines-tv.orange.fr.test.js b/sites/chaines-tv.orange.fr/chaines-tv.orange.fr.test.js index 8ea798641..0cd1f4184 100644 --- a/sites/chaines-tv.orange.fr/chaines-tv.orange.fr.test.js +++ b/sites/chaines-tv.orange.fr/chaines-tv.orange.fr.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/chaines-tv.orange.fr/chaines-tv.orange.fr.config.js --channels=sites/chaines-tv.orange.fr/chaines-tv.orange.fr_fr.channels.xml --output=.gh-pages/guides/fr/chaines-tv.orange.fr.epg.xml --days=2 +// npx epg-grabber --config=sites/chaines-tv.orange.fr/chaines-tv.orange.fr.config.js --channels=sites/chaines-tv.orange.fr/chaines-tv.orange.fr_fr.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./chaines-tv.orange.fr.config.js') const dayjs = require('dayjs') diff --git a/sites/digiturk.com.tr/digiturk.com.tr.test.js b/sites/digiturk.com.tr/digiturk.com.tr.test.js index 2391852b1..bb7d615ab 100644 --- a/sites/digiturk.com.tr/digiturk.com.tr.test.js +++ b/sites/digiturk.com.tr/digiturk.com.tr.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/digiturk.com.tr/digiturk.com.tr.config.js --channels=sites/digiturk.com.tr/digiturk.com.tr_tr.channels.xml --output=.gh-pages/guides/tr/digiturk.com.tr.epg.xml --days=2 +// npx epg-grabber --config=sites/digiturk.com.tr/digiturk.com.tr.config.js --channels=sites/digiturk.com.tr/digiturk.com.tr_tr.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./digiturk.com.tr.config.js') const dayjs = require('dayjs') diff --git a/sites/dishtv.in/dishtv.in.test.js b/sites/dishtv.in/dishtv.in.test.js index e811a73a3..c0c71e13a 100644 --- a/sites/dishtv.in/dishtv.in.test.js +++ b/sites/dishtv.in/dishtv.in.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/dishtv.in/dishtv.in.config.js --channels=sites/dishtv.in/dishtv.in_in.channels.xml --output=.gh-pages/guides/in/dishtv.in.epg.xml --days=2 +// npx epg-grabber --config=sites/dishtv.in/dishtv.in.config.js --channels=sites/dishtv.in/dishtv.in_in.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./dishtv.in.config.js') const dayjs = require('dayjs') diff --git a/sites/elcinema.com/elcinema.com.test.js b/sites/elcinema.com/elcinema.com.test.js index 4d9b69d99..7bb229b43 100644 --- a/sites/elcinema.com/elcinema.com.test.js +++ b/sites/elcinema.com/elcinema.com.test.js @@ -1,5 +1,5 @@ -// npx epg-grabber --config=sites/elcinema.com/elcinema.com.config.js --channels=sites/elcinema.com/elcinema.com_eg-en.channels.xml --output=.gh-pages/guides/eg-en/elcinema.com.epg.xml --days=2 -// npx epg-grabber --config=sites/elcinema.com/elcinema.com.config.js --channels=sites/elcinema.com/elcinema.com_eg-ar.channels.xml --output=.gh-pages/guides/eg-ar/elcinema.com.epg.xml --days=2 +// npx epg-grabber --config=sites/elcinema.com/elcinema.com.config.js --channels=sites/elcinema.com/elcinema.com_eg-en.channels.xml --output=guide.xml --days=2 +// npx epg-grabber --config=sites/elcinema.com/elcinema.com.config.js --channels=sites/elcinema.com/elcinema.com_eg-ar.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./elcinema.com.config.js') const dayjs = require('dayjs') diff --git a/sites/elcinema.com/elcinema.com_eg-ar.channels.xml b/sites/elcinema.com/elcinema.com_eg-ar.channels.xml index 347d0d321..27733698f 100644 --- a/sites/elcinema.com/elcinema.com_eg-ar.channels.xml +++ b/sites/elcinema.com/elcinema.com_eg-ar.channels.xml @@ -5,6 +5,7 @@ Abu Dhabi Drama Abu Dhabi TV Al Aoula Middle East + Al Araby 2 TV Al Dafrah TV Al Hayat Al Jadeed @@ -32,6 +33,7 @@ BeIn Movies Premiere BeIn Series 1 BeIn Series 2 + Cartoon Network Arabic CBC CBC Drama CBC Sofra @@ -55,6 +57,7 @@ KTV Khallik Bilbait Kuwait TV Lana TV + LBC LBC International Maspero Zaman MBC @@ -67,12 +70,14 @@ MBC Drama MBC Drama + MBC Maser + MBC Maser 2 MBC Max Mix Bel Araby Mix Hollywood MTV Alloubnaniya Musawa - National Geographic Middle East + National Geographic Abu Dhabi + National Geographic Middle East Nessma Nile Comedy Nile Drama @@ -91,7 +96,10 @@ OSN Ya Hala OSN Ya Hala Al Oula OSN Ya Hala Cinema + Rotana Comedy + Rotana Cinema Egypt Rotana Cinema KSA + Rotana Classic Rotana Drama Sada Elbalad Sada Elbalad 2 @@ -108,5 +116,9 @@ Ten Thikrayat TV UTV + Watania 1 + Watania 2 + Zee Aflam + Zee Alwan - + \ No newline at end of file diff --git a/sites/elcinema.com/elcinema.com_eg-en.channels.xml b/sites/elcinema.com/elcinema.com_eg-en.channels.xml index 578240f60..8187acb7d 100644 --- a/sites/elcinema.com/elcinema.com_eg-en.channels.xml +++ b/sites/elcinema.com/elcinema.com_eg-en.channels.xml @@ -5,6 +5,7 @@ Abu Dhabi Drama Abu Dhabi TV Al Aoula Middle East + Al Araby 2 TV Al Dafrah TV Al Hayat Al Jadeed @@ -32,6 +33,7 @@ BeIn Movies Premiere BeIn Series 1 BeIn Series 2 + Cartoon Network Arabic CBC CBC Drama CBC Sofra @@ -55,6 +57,7 @@ KTV Khallik Bilbait Kuwait TV Lana TV + LBC LBC International Maspero Zaman MBC @@ -67,12 +70,14 @@ MBC Drama MBC Drama + MBC Maser + MBC Maser 2 MBC Max Mix Bel Araby Mix Hollywood MTV Alloubnaniya Musawa - National Geographic Middle East + National Geographic Abu Dhabi + National Geographic Middle East Nessma Nile Comedy Nile Drama @@ -91,7 +96,10 @@ OSN Ya Hala OSN Ya Hala Al Oula OSN Ya Hala Cinema + Rotana Comedy + Rotana Cinema Egypt Rotana Cinema KSA + Rotana Classic Rotana Drama Sada Elbalad Sada Elbalad 2 @@ -108,5 +116,9 @@ Ten Thikrayat TV UTV + Watania 1 + Watania 2 + Zee Aflam + Zee Alwan diff --git a/sites/gatotv.com/gatotv.com.test.js b/sites/gatotv.com/gatotv.com.test.js index 7fe27ba83..8a439a53f 100644 --- a/sites/gatotv.com/gatotv.com.test.js +++ b/sites/gatotv.com/gatotv.com.test.js @@ -1,5 +1,5 @@ // node ./scripts/channels.js --config=./sites/gatotv.com/gatotv.com.config.js --output=./sites/gatotv.com/gatotv.com_cr.channels.xml --set=country:costa_rica -// npx epg-grabber --config=sites/gatotv.com/gatotv.com.config.js --channels=sites/gatotv.com/gatotv.com_ar.channels.xml --output=.gh-pages/guides/ar/gatotv.com.epg.xml --days=2 +// npx epg-grabber --config=sites/gatotv.com/gatotv.com.config.js --channels=sites/gatotv.com/gatotv.com_ar.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./gatotv.com.config.js') const dayjs = require('dayjs') diff --git a/sites/hd-plus.de/hd-plus.de.test.js b/sites/hd-plus.de/hd-plus.de.test.js index 52602c7b1..c60325c7f 100644 --- a/sites/hd-plus.de/hd-plus.de.test.js +++ b/sites/hd-plus.de/hd-plus.de.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/hd-plus.de/hd-plus.de.config.js --channels=sites/hd-plus.de/hd-plus.de_de.channels.xml --output=.gh-pages/guides/de/hd-plus.de.epg.xml --days=2 +// npx epg-grabber --config=sites/hd-plus.de/hd-plus.de.config.js --channels=sites/hd-plus.de/hd-plus.de_de.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./hd-plus.de.config.js') const dayjs = require('dayjs') diff --git a/sites/ipko.com/ipko.com.test.js b/sites/ipko.com/ipko.com.test.js index ecdaaa447..5c1345432 100644 --- a/sites/ipko.com/ipko.com.test.js +++ b/sites/ipko.com/ipko.com.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/ipko.com/ipko.com.config.js --channels=sites/ipko.com/ipko.com_al.channels.xml --days=2 --output=.gh-pages/guides/al/ipko.com.epg.xml +// npx epg-grabber --config=sites/ipko.com/ipko.com.config.js --channels=sites/ipko.com/ipko.com_al.channels.xml --days=2 --output=guide.xml const { parser, url } = require('./ipko.com.config.js') const dayjs = require('dayjs') diff --git a/sites/knr.gl/knr.gl.test.js b/sites/knr.gl/knr.gl.test.js index 98da1ef40..687843cad 100644 --- a/sites/knr.gl/knr.gl.test.js +++ b/sites/knr.gl/knr.gl.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/knr.gl/knr.gl.config.js --channels=sites/knr.gl/knr.gl_gl.channels.xml --output=.gh-pages/guides/gl/knr.gl.epg.xml --days=2 +// npx epg-grabber --config=sites/knr.gl/knr.gl.config.js --channels=sites/knr.gl/knr.gl_gl.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./knr.gl.config.js') const dayjs = require('dayjs') diff --git a/sites/magticom.ge/magticom.ge.test.js b/sites/magticom.ge/magticom.ge.test.js index f49216ecc..5322d5c70 100644 --- a/sites/magticom.ge/magticom.ge.test.js +++ b/sites/magticom.ge/magticom.ge.test.js @@ -1,5 +1,5 @@ // node ./scripts/channels.js --config=./sites/magticom.ge/magticom.ge.config.js --output=./sites/magticom.ge/magticom.ge_ge.channels.xml -// npx epg-grabber --config=sites/magticom.ge/magticom.ge.config.js --channels=sites/magticom.ge/magticom.ge_ge.channels.xml --output=.gh-pages/guides/ge/magticom.ge.epg.xml --days=2 +// npx epg-grabber --config=sites/magticom.ge/magticom.ge.config.js --channels=sites/magticom.ge/magticom.ge_ge.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./magticom.ge.config.js') const dayjs = require('dayjs') diff --git a/sites/maxtv.hrvatskitelekom.hr/maxtv.hrvatskitelekom.hr.test.js b/sites/maxtv.hrvatskitelekom.hr/maxtv.hrvatskitelekom.hr.test.js index 4424d9fc4..ee91f1e36 100644 --- a/sites/maxtv.hrvatskitelekom.hr/maxtv.hrvatskitelekom.hr.test.js +++ b/sites/maxtv.hrvatskitelekom.hr/maxtv.hrvatskitelekom.hr.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/maxtv.hrvatskitelekom.hr/maxtv.hrvatskitelekom.hr.config.js --channels=sites/maxtv.hrvatskitelekom.hr/maxtv.hrvatskitelekom.hr_hr.channels.xml --output=.gh-pages/guides/hr/maxtv.hrvatskitelekom.hr.epg.xml --days=2 +// npx epg-grabber --config=sites/maxtv.hrvatskitelekom.hr/maxtv.hrvatskitelekom.hr.config.js --channels=sites/maxtv.hrvatskitelekom.hr/maxtv.hrvatskitelekom.hr_hr.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./maxtv.hrvatskitelekom.hr.config.js') const dayjs = require('dayjs') diff --git a/sites/maxtvgo.mk/maxtvgo.mk.test.js b/sites/maxtvgo.mk/maxtvgo.mk.test.js index 35b9af607..b7edd24d3 100644 --- a/sites/maxtvgo.mk/maxtvgo.mk.test.js +++ b/sites/maxtvgo.mk/maxtvgo.mk.test.js @@ -1,5 +1,5 @@ // node ./scripts/channels.js --config=./sites/maxtvgo.mk/maxtvgo.mk.config.js --output=./sites/maxtvgo.mk/maxtvgo.mk_mk.channels.xml -// npx epg-grabber --config=sites/maxtvgo.mk/maxtvgo.mk.config.js --channels=sites/maxtvgo.mk/maxtvgo.mk_mk.channels.xml --output=.gh-pages/guides/mk/maxtvgo.mk.epg.xml --days=2 +// npx epg-grabber --config=sites/maxtvgo.mk/maxtvgo.mk.config.js --channels=sites/maxtvgo.mk/maxtvgo.mk_mk.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./maxtvgo.mk.config.js') const dayjs = require('dayjs') diff --git a/sites/mi.tv/mi.tv.test.js b/sites/mi.tv/mi.tv.test.js index 1fbf8a63c..bed906498 100644 --- a/sites/mi.tv/mi.tv.test.js +++ b/sites/mi.tv/mi.tv.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/mi.tv/mi.tv.config.js --channels=sites/mi.tv/mi.tv_ar.channels.xml --output=.gh-pages/guides/ar/mi.tv.epg.xml --days=2 +// npx epg-grabber --config=sites/mi.tv/mi.tv.config.js --channels=sites/mi.tv/mi.tv_ar.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./mi.tv.config.js') const dayjs = require('dayjs') diff --git a/sites/mtel.ba/mtel.ba.test.js b/sites/mtel.ba/mtel.ba.test.js index c5ae873a6..3021b1f2a 100644 --- a/sites/mtel.ba/mtel.ba.test.js +++ b/sites/mtel.ba/mtel.ba.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/mtel.ba/mtel.ba.config.js --channels=sites/mtel.ba/mtel.ba_ba.channels.xml --output=.gh-pages/guides/ba/mtel.ba.epg.xml --days=2 +// npx epg-grabber --config=sites/mtel.ba/mtel.ba.config.js --channels=sites/mtel.ba/mtel.ba_ba.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./mtel.ba.config.js') const dayjs = require('dayjs') diff --git a/sites/mts.rs/mts.rs.test.js b/sites/mts.rs/mts.rs.test.js index fb8464699..833566752 100644 --- a/sites/mts.rs/mts.rs.test.js +++ b/sites/mts.rs/mts.rs.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/mts.rs/mts.rs.config.js --channels=sites/mts.rs/mts.rs_rs.channels.xml --output=.gh-pages/guides/rs/mts.rs.epg.xml --days=2 +// npx epg-grabber --config=sites/mts.rs/mts.rs.config.js --channels=sites/mts.rs/mts.rs_rs.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./mts.rs.config.js') const dayjs = require('dayjs') diff --git a/sites/novacyprus.com/novacyprus.com.test.js b/sites/novacyprus.com/novacyprus.com.test.js index 4ff0c1e0c..ebeb6d4c5 100644 --- a/sites/novacyprus.com/novacyprus.com.test.js +++ b/sites/novacyprus.com/novacyprus.com.test.js @@ -1,5 +1,5 @@ // node ./scripts/channels.js --config=./sites/novacyprus.com/novacyprus.com.config.js --output=./sites/novacyprus.com/novacyprus.com_cy.channels.xml -// npx epg-grabber --config=sites/novacyprus.com/novacyprus.com.config.js --channels=sites/novacyprus.com/novacyprus.com_cy.channels.xml --output=.gh-pages/guides/cy/novacyprus.com.epg.xml --days=2 +// npx epg-grabber --config=sites/novacyprus.com/novacyprus.com.config.js --channels=sites/novacyprus.com/novacyprus.com_cy.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./novacyprus.com.config.js') const dayjs = require('dayjs') diff --git a/sites/programetv.ro/programetv.ro.test.js b/sites/programetv.ro/programetv.ro.test.js index b4efdc22e..fcac56de5 100644 --- a/sites/programetv.ro/programetv.ro.test.js +++ b/sites/programetv.ro/programetv.ro.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/programetv.ro/programetv.ro.config.js --channels=sites/programetv.ro/programetv.ro_ro.channels.xml --output=.gh-pages/guides/ro/programetv.ro.epg.xml --days=2 +// npx epg-grabber --config=sites/programetv.ro/programetv.ro.config.js --channels=sites/programetv.ro/programetv.ro_ro.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./programetv.ro.config.js') const dayjs = require('dayjs') diff --git a/sites/programme-tv.vini.pf/programme-tv.vini.pf.test.js b/sites/programme-tv.vini.pf/programme-tv.vini.pf.test.js index 8ba6637b7..331a1e1b6 100644 --- a/sites/programme-tv.vini.pf/programme-tv.vini.pf.test.js +++ b/sites/programme-tv.vini.pf/programme-tv.vini.pf.test.js @@ -1,5 +1,5 @@ // node ./scripts/channels.js --config=./sites/programme-tv.vini.pf/programme-tv.vini.pf.config.js --output=./sites/programme-tv.vini.pf/programme-tv.vini.pf_pf.channels.xml -// npx epg-grabber --config=sites/programme-tv.vini.pf/programme-tv.vini.pf.config.js --channels=sites/programme-tv.vini.pf/programme-tv.vini.pf_pf.channels.xml --output=.gh-pages/guides/pf/programme-tv.vini.pf.epg.xml --days=2 +// npx epg-grabber --config=sites/programme-tv.vini.pf/programme-tv.vini.pf.config.js --channels=sites/programme-tv.vini.pf/programme-tv.vini.pf_pf.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./programme-tv.vini.pf.config.js') const axios = require('axios') diff --git a/sites/rev.bs/rev.bs.test.js b/sites/rev.bs/rev.bs.test.js index d54bee6f1..576618ab4 100644 --- a/sites/rev.bs/rev.bs.test.js +++ b/sites/rev.bs/rev.bs.test.js @@ -1,5 +1,5 @@ // node ./scripts/channels.js --config=./sites/rev.bs/rev.bs.config.js --output=./sites/rev.bs/rev.bs_bs.channels.xml -// npx epg-grabber --config=sites/rev.bs/rev.bs.config.js --channels=sites/rev.bs/rev.bs_bs.channels.xml --output=.gh-pages/guides/bs/rev.bs.epg.xml --days=2 +// npx epg-grabber --config=sites/rev.bs/rev.bs.config.js --channels=sites/rev.bs/rev.bs_bs.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./rev.bs.config.js') const axios = require('axios') diff --git a/sites/rtb.gov.bn/rtb.gov.bn.test.js b/sites/rtb.gov.bn/rtb.gov.bn.test.js index 75c4bb76b..6078c4960 100644 --- a/sites/rtb.gov.bn/rtb.gov.bn.test.js +++ b/sites/rtb.gov.bn/rtb.gov.bn.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/rtb.gov.bn/rtb.gov.bn.config.js --channels=sites/rtb.gov.bn/rtb.gov.bn_bn.channels.xml --output=.gh-pages/guides/bn/rtb.gov.bn.epg.xml --days=2 +// npx epg-grabber --config=sites/rtb.gov.bn/rtb.gov.bn.config.js --channels=sites/rtb.gov.bn/rtb.gov.bn_bn.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./rtb.gov.bn.config.js') const path = require('path') diff --git a/sites/ruv.is/ruv.is.test.js b/sites/ruv.is/ruv.is.test.js index 52cb4452f..4732e48da 100644 --- a/sites/ruv.is/ruv.is.test.js +++ b/sites/ruv.is/ruv.is.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/ruv.is/ruv.is.config.js --channels=sites/ruv.is/ruv.is_is.channels.xml --output=.gh-pages/guides/is/ruv.is.epg.xml --days=2 +// npx epg-grabber --config=sites/ruv.is/ruv.is.config.js --channels=sites/ruv.is/ruv.is_is.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./ruv.is.config.js') const dayjs = require('dayjs') diff --git a/sites/siba.com.co/siba.com.co.test.js b/sites/siba.com.co/siba.com.co.test.js index 01e01c46d..85d178b35 100644 --- a/sites/siba.com.co/siba.com.co.test.js +++ b/sites/siba.com.co/siba.com.co.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/siba.com.co/siba.com.co.config.js --channels=sites/siba.com.co/siba.com.co_co.channels.xml --output=.gh-pages/guides/co/siba.com.co.epg.xml --days=2 +// npx epg-grabber --config=sites/siba.com.co/siba.com.co.config.js --channels=sites/siba.com.co/siba.com.co_co.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./siba.com.co.config.js') const dayjs = require('dayjs') diff --git a/sites/sky.com/sky.com.test.js b/sites/sky.com/sky.com.test.js index 199d6714b..5ff01d764 100644 --- a/sites/sky.com/sky.com.test.js +++ b/sites/sky.com/sky.com.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/sky.com/sky.com.config.js --channels=sites/sky.com/sky.com_uk.channels.xml --output=.gh-pages/guides/au/sky.com.epg.xml --days=2 +// npx epg-grabber --config=sites/sky.com/sky.com.config.js --channels=sites/sky.com/sky.com_uk.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./sky.com.config.js') const dayjs = require('dayjs') diff --git a/sites/teliatv.ee/teliatv.ee.test.js b/sites/teliatv.ee/teliatv.ee.test.js index 8e1c17671..fd5e9db93 100644 --- a/sites/teliatv.ee/teliatv.ee.test.js +++ b/sites/teliatv.ee/teliatv.ee.test.js @@ -1,7 +1,7 @@ // node ./scripts/channels.js --config=./sites/teliatv.ee/teliatv.ee.config.js --output=./sites/teliatv.ee/teliatv.ee_ee-et.channels.xml --set=lang:et // node ./scripts/channels.js --config=./sites/teliatv.ee/teliatv.ee.config.js --output=./sites/teliatv.ee/teliatv.ee_ee-ru.channels.xml --set=lang:ru // node ./scripts/channels.js --config=./sites/teliatv.ee/teliatv.ee.config.js --output=./sites/teliatv.ee/teliatv.ee_ee-en.channels.xml --set=lang:en -// npx epg-grabber --config=sites/teliatv.ee/teliatv.ee.config.js --channels=sites/teliatv.ee/teliatv.ee_ee-et.channels.xml --output=.gh-pages/guides/ee-et/teliatv.ee.epg.xml --days=2 +// npx epg-grabber --config=sites/teliatv.ee/teliatv.ee.config.js --channels=sites/teliatv.ee/teliatv.ee_ee-et.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./teliatv.ee.config.js') const dayjs = require('dayjs') diff --git a/sites/teliatv.ee/teliatv.ee_ee-en.channels.xml b/sites/teliatv.ee/teliatv.ee_ee-en.channels.xml index af5b16e67..ac6c08de4 100644 --- a/sites/teliatv.ee/teliatv.ee_ee-en.channels.xml +++ b/sites/teliatv.ee/teliatv.ee_ee-en.channels.xml @@ -74,6 +74,8 @@ MTV Live HD MyHits MyZen TV + National Geographic + National Geographic Wild Nickelodeon Nick Jr Nicktoons @@ -132,4 +134,4 @@ YLE TV 1 YLE TV 2 - \ No newline at end of file + diff --git a/sites/turksatkablo.com.tr/turksatkablo.com.tr.test.js b/sites/turksatkablo.com.tr/turksatkablo.com.tr.test.js index 13a157c4e..0e2c72ee6 100644 --- a/sites/turksatkablo.com.tr/turksatkablo.com.tr.test.js +++ b/sites/turksatkablo.com.tr/turksatkablo.com.tr.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/turksatkablo.com.tr/turksatkablo.com.tr.config.js --channels=sites/turksatkablo.com.tr/turksatkablo.com.tr_tr.channels.xml --output=.gh-pages/guides/tr/turksatkablo.com.tr.epg.xml --days=2 +// npx epg-grabber --config=sites/turksatkablo.com.tr/turksatkablo.com.tr.config.js --channels=sites/turksatkablo.com.tr/turksatkablo.com.tr_tr.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./turksatkablo.com.tr.config.js') const dayjs = require('dayjs') diff --git a/sites/tv.mail.ru/tv.mail.ru.test.js b/sites/tv.mail.ru/tv.mail.ru.test.js index 404b21ebe..e1884c1ab 100644 --- a/sites/tv.mail.ru/tv.mail.ru.test.js +++ b/sites/tv.mail.ru/tv.mail.ru.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/tv.mail.ru/tv.mail.ru.config.js --channels=sites/tv.mail.ru/tv.mail.ru_am.channels.xml --output=.gh-pages/guides/am/tv.mail.ru.epg.xml --days=2 +// npx epg-grabber --config=sites/tv.mail.ru/tv.mail.ru.config.js --channels=sites/tv.mail.ru/tv.mail.ru_am.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./tv.mail.ru.config.js') const dayjs = require('dayjs') diff --git a/sites/tv.nu/tv.nu_se.channels.xml b/sites/tv.nu/tv.nu_se.channels.xml index 4813d721d..39dad329d 100644 --- a/sites/tv.nu/tv.nu_se.channels.xml +++ b/sites/tv.nu/tv.nu_se.channels.xml @@ -104,6 +104,8 @@ Outdoor Channel HD OUTtv Paramount Network + Paramount+ Movies + Paramount+ Series Pink Plus Playboy TV Europe ProSieben diff --git a/sites/tv.yandex.ru/tv.yandex.ru.test.js b/sites/tv.yandex.ru/tv.yandex.ru.test.js index ebbc1eaeb..790742cbf 100644 --- a/sites/tv.yandex.ru/tv.yandex.ru.test.js +++ b/sites/tv.yandex.ru/tv.yandex.ru.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/tv.yandex.ru/tv.yandex.ru.config.js --channels=sites/tv.yandex.ru/tv.yandex.ru_kz.channels.xml --output=.gh-pages/guides/kz/tv.yandex.ru.epg.xml --days=2 +// npx epg-grabber --config=sites/tv.yandex.ru/tv.yandex.ru.config.js --channels=sites/tv.yandex.ru/tv.yandex.ru_kz.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./tv.yandex.ru.config.js') const dayjs = require('dayjs') diff --git a/sites/tv2go.t-2.net/tv2go.t-2.net.test.js b/sites/tv2go.t-2.net/tv2go.t-2.net.test.js index 03198505b..cde2bbc8d 100644 --- a/sites/tv2go.t-2.net/tv2go.t-2.net.test.js +++ b/sites/tv2go.t-2.net/tv2go.t-2.net.test.js @@ -1,5 +1,5 @@ // node ./scripts/channels.js --config=./sites/tv2go.t-2.net/tv2go.t-2.net.config.js --output=./sites/tv2go.t-2.net/tv2go.t-2.net_si.channels.xml -// npx epg-grabber --config=sites/tv2go.t-2.net/tv2go.t-2.net.config.js --channels=sites/tv2go.t-2.net/tv2go.t-2.net_si.channels.xml --output=.gh-pages/guides/si/tv2go.t-2.net.epg.xml --days=2 +// npx epg-grabber --config=sites/tv2go.t-2.net/tv2go.t-2.net.config.js --channels=sites/tv2go.t-2.net/tv2go.t-2.net_si.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./tv2go.t-2.net.config.js') const dayjs = require('dayjs') diff --git a/sites/tva.tv/tva.tv.test.js b/sites/tva.tv/tva.tv.test.js index 55c3ce0ad..ad322f8cf 100644 --- a/sites/tva.tv/tva.tv.test.js +++ b/sites/tva.tv/tva.tv.test.js @@ -1,5 +1,5 @@ // node ./scripts/channels.js --config=./sites/tva.tv/tva.tv.config.js --output=./sites/tva.tv/tva.tv_ir.channels.xml -// npx epg-grabber --config=sites/tva.tv/tva.tv.config.js --channels=sites/tva.tv/tva.tv_ir.channels.xml --output=.gh-pages/guides/ir/tva.tv.epg.xml --timeout=30000 --days=2 +// npx epg-grabber --config=sites/tva.tv/tva.tv.config.js --channels=sites/tva.tv/tva.tv_ir.channels.xml --output=guide.xml --timeout=30000 --days=2 const { parser, url } = require('./tva.tv.config.js') const dayjs = require('dayjs') diff --git a/sites/tvarenasport.com/tvarenasport.com.test.js b/sites/tvarenasport.com/tvarenasport.com.test.js index af0f12385..e1979078f 100644 --- a/sites/tvarenasport.com/tvarenasport.com.test.js +++ b/sites/tvarenasport.com/tvarenasport.com.test.js @@ -1,5 +1,5 @@ // node ./scripts/channels.js --config=./sites/tvarenasport.com/tvarenasport.com.config.js --output=./sites/tvarenasport.com/tvarenasport.com_rs.channels.xml --set=country:rs -// npx epg-grabber --config=sites/tvarenasport.com/tvarenasport.com.config.js --channels=sites/tvarenasport.com/tvarenasport.com_rs.channels.xml --output=.gh-pages/guides/rs/tvarenasport.com.epg.xml --days=2 +// npx epg-grabber --config=sites/tvarenasport.com/tvarenasport.com.config.js --channels=sites/tvarenasport.com/tvarenasport.com_rs.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./tvarenasport.com.config.js') const dayjs = require('dayjs') diff --git a/sites/tvarenasport.hr/tvarenasport.hr.test.js b/sites/tvarenasport.hr/tvarenasport.hr.test.js index 7d0630a05..399f22df4 100644 --- a/sites/tvarenasport.hr/tvarenasport.hr.test.js +++ b/sites/tvarenasport.hr/tvarenasport.hr.test.js @@ -1,5 +1,5 @@ // node ./scripts/channels.js --config=./sites/tvarenasport.hr/tvarenasport.hr.config.js --output=./sites/tvarenasport.hr/tvarenasport.hr_hr.channels.xml -// npx epg-grabber --config=sites/tvarenasport.hr/tvarenasport.hr.config.js --channels=sites/tvarenasport.hr/tvarenasport.hr_hr.channels.xml --output=.gh-pages/guides/hr/tvarenasport.hr.epg.xml --days=2 +// npx epg-grabber --config=sites/tvarenasport.hr/tvarenasport.hr.config.js --channels=sites/tvarenasport.hr/tvarenasport.hr_hr.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./tvarenasport.hr.config.js') const dayjs = require('dayjs') diff --git a/sites/tvcubana.icrt.cu/tvcubana.icrt.cu.test.js b/sites/tvcubana.icrt.cu/tvcubana.icrt.cu.test.js index eacc82a31..68bf48a8d 100644 --- a/sites/tvcubana.icrt.cu/tvcubana.icrt.cu.test.js +++ b/sites/tvcubana.icrt.cu/tvcubana.icrt.cu.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/tvcubana.icrt.cu/tvcubana.icrt.cu.config.js --channels=sites/tvcubana.icrt.cu/tvcubana.icrt.cu_cu.channels.xml --output=.gh-pages/guides/cu/tvcubana.icrt.cu.epg.xml --days=2 +// npx epg-grabber --config=sites/tvcubana.icrt.cu/tvcubana.icrt.cu.config.js --channels=sites/tvcubana.icrt.cu/tvcubana.icrt.cu_cu.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./tvcubana.icrt.cu.config.js') const dayjs = require('dayjs') diff --git a/sites/tvgid.ua/tvgid.ua.test.js b/sites/tvgid.ua/tvgid.ua.test.js index 8a68ab72e..0ee8eda5b 100644 --- a/sites/tvgid.ua/tvgid.ua.test.js +++ b/sites/tvgid.ua/tvgid.ua.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/tvgid.ua/tvgid.ua.config.js --channels=sites/tvgid.ua/tvgid.ua_ua.channels.xml --output=.gh-pages/guides/ua/tvgid.ua.epg.xml --days=2 +// npx epg-grabber --config=sites/tvgid.ua/tvgid.ua.config.js --channels=sites/tvgid.ua/tvgid.ua_ua.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./tvgid.ua.config.js') const iconv = require('iconv-lite') diff --git a/sites/tvheute.at/tvheute.at.test.js b/sites/tvheute.at/tvheute.at.test.js index 96d3bbf27..fe360f80a 100644 --- a/sites/tvheute.at/tvheute.at.test.js +++ b/sites/tvheute.at/tvheute.at.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/tvheute.at/tvheute.at.config.js --channels=sites/tvheute.at/tvheute.at_at.channels.xml --output=.gh-pages/guides/at/tvheute.at.epg.xml --days=2 +// npx epg-grabber --config=sites/tvheute.at/tvheute.at.config.js --channels=sites/tvheute.at/tvheute.at_at.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./tvheute.at.config.js') const dayjs = require('dayjs') diff --git a/sites/tvim.tv/tvim.tv.test.js b/sites/tvim.tv/tvim.tv.test.js index 87e6b2a74..1b1beba33 100644 --- a/sites/tvim.tv/tvim.tv.test.js +++ b/sites/tvim.tv/tvim.tv.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/tvim.tv/tvim.tv.config.js --channels=sites/tvim.tv/tvim.tv_xk.channels.xml --days=2 --output=.gh-pages/guides/xk/tvim.tv.epg.xml +// npx epg-grabber --config=sites/tvim.tv/tvim.tv.config.js --channels=sites/tvim.tv/tvim.tv_xk.channels.xml --days=2 --output=guide.xml const { parser, url } = require('./tvim.tv.config.js') const dayjs = require('dayjs') diff --git a/sites/tvmusor.hu/tvmusor.hu.test.js b/sites/tvmusor.hu/tvmusor.hu.test.js index 69bea1434..08fc6a3cb 100644 --- a/sites/tvmusor.hu/tvmusor.hu.test.js +++ b/sites/tvmusor.hu/tvmusor.hu.test.js @@ -1,5 +1,5 @@ // node ./scripts/channels.js --config=./sites/tvmusor.hu/tvmusor.hu.config.js --output=./sites/tvmusor.hu/tvmusor.hu_hu.channels.xml -// npx epg-grabber --config=sites/tvmusor.hu/tvmusor.hu.config.js --channels=sites/tvmusor.hu/tvmusor.hu_hu.channels.xml --output=.gh-pages/guides/hu/tvmusor.hu.epg.xml --days=2 +// npx epg-grabber --config=sites/tvmusor.hu/tvmusor.hu.config.js --channels=sites/tvmusor.hu/tvmusor.hu_hu.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./tvmusor.hu.config.js') const dayjs = require('dayjs') diff --git a/sites/tvplus.com.tr/tvplus.com.tr.test.js b/sites/tvplus.com.tr/tvplus.com.tr.test.js index 8312fbb39..6374a5d62 100644 --- a/sites/tvplus.com.tr/tvplus.com.tr.test.js +++ b/sites/tvplus.com.tr/tvplus.com.tr.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/tvplus.com.tr/tvplus.com.tr.config.js --channels=sites/tvplus.com.tr/tvplus.com.tr_tr.channels.xml --output=.gh-pages/guides/tr/tvplus.com.tr.epg.xml --days=2 +// npx epg-grabber --config=sites/tvplus.com.tr/tvplus.com.tr.config.js --channels=sites/tvplus.com.tr/tvplus.com.tr_tr.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./tvplus.com.tr.config.js') const dayjs = require('dayjs') diff --git a/sites/tvtv.us/tvtv.us.config.js b/sites/tvtv.us/tvtv.us.config.js index c845c0f2f..76fe54b65 100644 --- a/sites/tvtv.us/tvtv.us.config.js +++ b/sites/tvtv.us/tvtv.us.config.js @@ -23,6 +23,9 @@ module.exports = { category: parseCategory(item), season: parseSeason(item), episode: parseEpisode(item), + directors: parseDirectors(item), + actors: parseActors(item), + date: parseDate(item), start: parseStart(item), stop: parseStop(item), icon: parseIcon(item) @@ -122,6 +125,18 @@ function parseEpisode(item) { return item.program.episodeNum || null } +function parseDirectors(item) { + return item.program.directors || [] +} + +function parseDate(item) { + return item.program.releaseDate +} + +function parseActors(item) { + return item.program.topCast || [] +} + function parseIcon(item) { return item.program.preferredImage && item.program.preferredImage.uri ? `https://tvtv.us/gn/i/${item.program.preferredImage.uri}` diff --git a/sites/tvtv.us/tvtv.us.test.js b/sites/tvtv.us/tvtv.us.test.js index c78a7f983..8892b382d 100644 --- a/sites/tvtv.us/tvtv.us.test.js +++ b/sites/tvtv.us/tvtv.us.test.js @@ -40,6 +40,7 @@ it('can parse response', () => { category: ['Health'], season: 1, episode: 6, + date: '2019-04-20', icon: 'https://tvtv.us/gn/i/assets/p16640522_b_v9_aa.jpg?w=240&h=360' }, { @@ -49,6 +50,8 @@ it('can parse response', () => { sub_title: 'Sizzled & Seared', description: `Everything is sizzled and seared as chef Corbin Tomaszeski joins Christine and Carl in the kitchen.`, category: ['House/garden'], + actors: ['Carl Heinrich','Christine Ha'], + date: '2016-01-14', icon: 'https://tvtv.us/gn/i/assets/p10464580_b_v7_aa.jpg?w=240&h=360' } ]) diff --git a/sites/tvtv.us/tvtv.us_ca.channels.xml b/sites/tvtv.us/tvtv.us_ca.channels.xml index 56eeadc59..70b8a666d 100644 --- a/sites/tvtv.us/tvtv.us_ca.channels.xml +++ b/sites/tvtv.us/tvtv.us_ca.channels.xml @@ -11,30 +11,27 @@ ATN Punjabi Plus ATN Zoom Cartoon Network Canada - CBC Edmonton - CBC Calgary - CBC Halifax - CBC Montreal CBC News Network - CBC Ottawa - CBC Toronto CBC Windsor - CBC Winnipeg - Ici Radio-Canada Télé + CBC Halifax + CBC Toronto + CBC Montreal + CBC Ottawa + CBC Calgary CBS Sports Network Canada + CBC Winnipeg + CBC Edmonton ICI (CFHD-DT) Montréal, QC - TVA + CTV2 (CFPL-DT) London ON + CTV (CFTO-DT) Toronto ON Global (CHBC-DT-2) Vernon, BC Global (CHKM) Kamloops, BC - TVOntario (CICA-DT) Toronto - Télé-Québec - CPAC - CTV2 (CKVR-DT) Barrie ON - CTV2 (CFPL-DT) London ON CTV2 (CHWI-DT) Wheatley ON + TVOntario (CICA-DT) Toronto CTV (CKCO-DT) Kitchener ON + CTV2 (CKVR-DT) Barrie ON + CPAC CTV Sci-Fi Channel - CTV (CFTO-DT) Toronto ON Deja View Disney Channel Canada West Fairchild TV 2 @@ -42,20 +39,16 @@ Frissons TV Global News: BC1 History2 Canada - History2 HD Canada + History2 HD Canada Hollywood Suite 00s Movies Hollywood Suite 70s Movies Hollywood Suite 80s Movies Hollywood Suite 90s Movies - ICI RDI Investigation - LCN Leafs Nation Network Love Nature Makeful - Noovo Prime Asia TV - Qello Concerts by Stingray Saisons Canada Sportsman Channel Canada SportsNet East @@ -72,23 +65,24 @@ Stingray Classic R&B Stingray Classic Rock Stingray Country - Stingray Exitos del Momento + Stingray Remember the 80's Stingray Festival 4K Stingray Flashback 70s Stingray Franco Fêtes Stingray Gospel Stingray Greatest Hits - Stingray Hip-Hop/R&B Stingray Hit List Stingray Hot Country Stingray Karaoke Stingray Naturescape Stingray No Fences Stingray Pop Adult - Stingray Remember the 80's + Qello Concerts by Stingray Stingray Rock Alternative Stingray Romance Latino Stingray Soul Storm + Stingray Exitos del Momento + Stingray Hip-Hop/R&B Telebimbi The Rural Channel TSN1 @@ -101,5 +95,37 @@ Water Television Network WWE Network YourTV Milton + Ici Radio-Canada Télé + TVA + Télé-Québec + ICI RDI + LCN + Noovo + Pay Per View 1 + Pay Per View 2 + Pay Per View 3 + Pay Per View 4 + Pay Per View 5 + Pay Per View 6 + Pay Per View 7 + Pay Per View 8 + Stingray Classica + Stingray Classic Rock + Stingray Easy Listening + Stingray Remember the 80's + Stingray Flashback 70s + Stingray Greatest Hits + Stingray Hit List + Stingray Hot Country + Stingray Karaoke + Stingray Nothin' But 90's + Stingray Pop Adult + Qello Concerts by Stingray + Stingray Rock Alternative + Stingray Smooth Jazz + Stingray Soul Storm + Stingray Exitos del Momento + Stingray Hip-Hop/R&B + Family CHRGD diff --git a/sites/tvtv.us/tvtv.us_us-local.channels.xml b/sites/tvtv.us/tvtv.us_us-local.channels.xml index 95a805f87..05090e0f5 100644 --- a/sites/tvtv.us/tvtv.us_us-local.channels.xml +++ b/sites/tvtv.us/tvtv.us_us-local.channels.xml @@ -1,10 +1,6 @@ - FOX (WTNZ) KNOXVILLE - NBC (WBIR) KNOXVILLE - CBS (WVLT) KNOXVILLE - ABC (WATE) KNOXVILLE 360 North (K05FW-D3) Girdwood, AK Three Angels (K08MM) Bakersfield, CA Comet TV (K11LC-D2) Prescott, AZ @@ -408,7 +404,7 @@ ABC (KITV) Honolulu, HI MeTV (KITV-DT2) Honolulu, HI Hawaii TV (KITV-DT3) Honolulu, HI - ABC (KIVI-DT1) Boise, ID + ABC (KIVI-DT1) Boise, ID PBS (KIXE) Redding, CA Create (KIXE-TV2) Redding, CA PBS World (KIXE-DT3) Redding, CA @@ -445,7 +441,7 @@ PBS Kids (KLCS-DT2) Los Angeles, CA Three Angels (KLFB-LD) Salinas, CA 3ABN Latino (KLFB-LD2) Salinas, CA - 3ABN Proclaim (KLFB-LD3) Salinas, CA + 3ABN Proclaim (KLFB-LD3) Salinas, CA ABC (KLKN-DT1) Lincoln, NE Decades (KLPD-LD2) Denver, CO Retro TV (KLRA-CD4) Little Rock, AR @@ -683,7 +679,7 @@ LATV (KSEE-DT3) Fresno, CA Mana (KSFV-CD2) Los Angeles, CA Corner Store (KSFV-CD3) Los Angeles, CA - ABC (KSFY-DT1) Sioux Falls, SD + ABC (KSFY-DT1) Sioux Falls, SD beIN Sports Xtra (KSKJ-CD) Los Angeles, CA SSTN (KSKJ-DT2) Los Angeles, CA Infomercials (KSKJ-CD3) Los Angeles, CA @@ -779,7 +775,8 @@ FOX (KTVI-DT1) St Louis, MO Antenna TV (KTVI-DT2) St Louis, MO Ion Mystery (KTVI-DT3) St Louis, MO - Dabl (KTVI-DT4) St Louis, MO + Dabl (KTVI-DT4) St Louis, MO + NBC (KTVM-DT1) Butte, MT ABC (KTVO-DT1) Kirskville, MO Shop LC (KTVP-LD3) Phoenix, AZ CBS (WFAA-DT1) Dallas, TX @@ -790,7 +787,6 @@ LATV (KTVU-DT2) San Francisco, CA Movies! (KTVU-DT3) San Francisco, CA Buzzr TV (KTVU4) Oakland, CA - NBC (KTVM-DT1) Butte, MT Digi TV (KTVW-DT5) Phoenix, AZ MyNetwork (KTXH-DT1) Houston TX Movies! (KTXH-DT2) Houston TX @@ -873,7 +869,7 @@ Create (KVPT3) Fresno, CA PBS World (KVPT-DT4) Fresno, CA UniMás (KVSN-DT2) Colorado Springs, CO - ABC (KVUE-DT1) Austin, TX + ABC (KVUE-DT1) Austin, TX Azteca (KVVG-LD) Porterville, CA CW (KWGN-DT1) Denver, CO Canal 22 (KWHY-TV) Los Angeles, CA @@ -882,7 +878,7 @@ Majestadtv (KWHY-DT5) Los Angeles, CA Infomercials (KWMO-LD2) Hot Springs, AR ABC (KWYB-DT1) Butte, MT - NBC (KXAN-DT1) Austin, TX + NBC (KXAN-DT1) Austin, TX NBC (KXAS-DT1) Dallas TX Cozi TV (KXAS-DT2) Dallas TX NBCLX (KXAS-DT3) Dallas TX @@ -955,6 +951,8 @@ Jewelry TV (WALE-LD4) Montgomery, AL WAPA America WAPA Deportes + EstrellaTV (WASA-LD1) Port Jervis, NY + ABC (WATE) KNOXVILLE My Network TV (WATL-DT1) Atlanta, GA This TV (WATL-DT2) Atlanta, GA Antenna TV (WATL-DT3) Atlanta, GA @@ -962,7 +960,6 @@ FOX (WATM2) Altoona, PA Cozi TV (WATM3) Altoona, PA This TV (WATM4) Altoona, PA - EstrellaTV (WASA-LD1) Port Jervis, NY TV 64 (WAXN-DT1) Kannapolis, NC NBC (WBAL-DT1) Baltimore, MD MeTV (WBAL-DT2) Baltimore, MD @@ -971,13 +968,18 @@ Start TV (WFMZ-DT2) Chicago, IL Dabl (WFMZ-DT3) Chicago, IL MeTV (WBBZ-TV) Springville, NY + YouToo America (WBCF-LD2) Florence, AL FOX (WBFF-DT1) Baltimore, MD My TV (WBFF-DT2) Baltimore, MD - YouToo America (WBCF-LD2) Florence, AL Decades (WBGT-CD5) Rochester, NY Movies! (WBGT-CD7) Rochester, NY PBS (WBGU-TV) Toledo, OH + NBC (WBIR) KNOXVILLE WBNX-TV 55 (WBNX-DT1) Akron, OH + AMG TV (WBON-LD) Richmond, KY + Buzzr TV (WBON-LD2) Richmond, KY + Heartland (WBON-LD3) Richmond, KY + Retro TV (WBON-LD4) Richmond, KY ABC (WBRZ-DT1) Baton Rouge, LA CW (WBSF) Bay City, MI NBC (WBTS-CD1) Boston, MA @@ -1012,7 +1014,7 @@ MeTV Plus (WCIU-DT5) Chicago, IL Decades (WCIU-DT6) Chicago, IL PBS (WCMU-TV) Mount Pleasant, MI - ABC (WCTI-DT1) New Bern, NC + ABC (WCTI-DT1) New Bern, NC CBS (WCTV1) Tallahassee, FL MeTV (WCTV2) Tallahassee, FL Circle (WCTV3) Tallahassee, FL @@ -1022,6 +1024,10 @@ Comet (WCTX-DT2) Hartford, CT ABC (WCVB-DT1) Boston, MA MeTV (WCVB-DT2) Boston, MA + PBS (WCVE-DT) Richmond, VA + Create (WCVE-DT2) Richmond, VA + PBS World (WCVE-DT3) Richmond, VA + PBS Kids (WCVE-DT4) Richmond, VA CW (WCWN-DT1) Albany, NY My Network TV (WDCA-DT1) Washington D.C. Movies! (WDCA-DT2) Washington D.C. @@ -1151,9 +1157,9 @@ MeTV (WJAC2) Altoona, PA Comet (WJAC3) Altoona, PA CW (WJAC4) Altoona, PA - FOX (WJBK-DT1) Detroit, MI ABC (WJBF-DT1) Augusta, GA - ABC (WJLA-DT1) Washington, DC + FOX (WJBK-DT1) Detroit, MI + ABC (WJLA-DT1) Washington, DC MeTV (WJLP-DT1) New York, NY Laff (WJLP-DT2) New York, NY Grit (WJLP-DT3) New York, NY @@ -1168,9 +1174,9 @@ Comet (WJW-DT3) Cleveland, OH Charge (WJW-DT4) Cleveland, OH CBS (WJZ-DT1) Baltimore, MD - PBS (WKAR-TV) East Lansing, MI Telemundo (WKAQ-DT) San Juan, PR Punto 2 (WKAQ-DT) San Juan, PR + PBS (WKAR-TV) East Lansing, MI CW (WKBD-TV) Detroit, MI ABC (WKBW1) Buffalo, NY Bounce (WKBW2) Buffalo, NY @@ -1185,6 +1191,11 @@ EstrellaTV (WKOB-LD6) New York, NY Shop LC (WKOB-LD7) New York, NY Novelisima (WKOB-LD8) New York, NY + ION (WKOI-DT) Richmond, IN + Hillsong (WKOI-DT2) Richmond, IN + PosiTiV (WKOI-DT3) Richmond, IN + Enlace (WKOI-DT4) Richmond, IN + Smile (WKOI-DT5) Richmond, IN ABC (WKRN-DT1) Nashville, TN NBC (WKYC-DT1) Cleveland, OH True Crime Network (WKYC-DT2) Cleveland, OH @@ -1220,10 +1231,10 @@ Bounce (WMAR-DT3) Washington D.C. Court TV Mystery (WMAR-DT4) Washington D.C. Court TV (WMAR-DT5) Washington D.C. - ABC (WMBB-DT1) Panama City, FL - WMBC (WMBC-DT1) Newton, NJ - Quest (WMBC-DT2) Newton, NJ - TBD (WMBC-DT3) Newton, NJ + ABC (WMBB-DT1) Panama City, FL + WMBC (WMBC-DT1) Newton, NJ + Quest (WMBC-DT2) Newton, NJ + TBD (WMBC-DT3) Newton, NJ SinoVision (WMBC-DT4) Newton, NJ New Tang Dynasty (WMBC-DT5) Newton, NJ Aliento Vision (WMBC-DT7) Newton, NJ @@ -1344,6 +1355,14 @@ Telemundp (WRC-DT4) Washington D.C. UniMás 29 (WRCF-CD1) Orlando, FL TV27 (WRDQ-DT1) Orlando, FL + ABC (WRIC-DT) Richmond, VA + ION (WRIC-DT2) Richmond, VA + Cozi TV (WRIC-DT3) Richmond, VA + FOX (WRLH-DT) Richmond, KY + MyNetworkTV (WRLH-DT2) Richmond, KY + Comet TV (WRLH-DT3) Richmond, KY + CHARGE! (WRLH-DT4) Richmond, KY + Dabl (WRLH-DT5) Richmond, KY WRNN/ShopHQ (WRNN-DT1) New Rochelle, NY Circle (WRNN-DT2) Kingston, NY Canal de La Fe (WRNN-DT3) New York, NY @@ -1376,7 +1395,6 @@ Telemundo (WSNS-DT1) Chicago, IL TeleXitos (WSNS-DT2) Chicago, IL ABC (WSOC-DT1) Charlotte, NC - Telemundo (WSOC-DT2) Charlotte, NC The Cowboy Channel (WSSF-LD2) Fayette, AL Smile (WSSF-LD3) Fayette, AL TBN (WSSF-LD6) Fayette, AL @@ -1405,7 +1423,8 @@ Telemundo 31 (WTMO-CD1) Orlando, FL ABC (WTNH-DT1) Hartford, CT Rewind TV (WTNH-DT2) Hartford, CT - ABC (WTOK-DT1) Meridian, MS + FOX (WTNZ) KNOXVILLE + ABC (WTOK-DT1) Meridian, MS CBS (WTOL) Toledo, OH FOX (WTTG-DT1) Washington D.C. Burzzr (WTTG-DT2) Washington D.C. @@ -1417,6 +1436,8 @@ WTTW Prime (WTTW-DT2) Chicago, IL Create and World (WTTW-DT3) Chicago, IL ABC (WTVD-DT1) Durham, NC + TVE51/Infomercials (WTVE-DT1) Reading, PA + Timeless/Infomercials (WTVE-DT2) Reading, PA CBS (WTVF-DT1) Nashville, TN Newschannel 5+ (WTVF-DT2) Nashville, TN ABC (WTVG) Toledo, OH @@ -1424,13 +1445,14 @@ NBC (WTVJ-DT1) Miami, FL Cozi TV (WTVJ-DT2) Miami, FL NBCLX (WTVJ-DT3) Miami, FL + CBS (WTVR-DT) Richmond, KY + Antenna TV (WTVR-DT2) Richmond, KY + Court TV (WTVR-DT4) Richmond, KY PBS (WTVS-DT1) Detroit, MI Michigan Learning Channel (WTVS-DT5) Detroit, MI H&I (WTVU-CD3) Syracuse, NY Decades (WTVU-CD5) Syracuse, NY Movies! (WTVU-CD6) Syracuse, NY - TVE51/Infomercials (WTVE-DT1) Reading, PA - Timeless/Infomercials (WTVE-DT2) Reading, PA NBC (WCTV1) Tallahassee, FL FOX (WCTV2) Tallahassee, FL Charge! (WCTV3) Tallahassee, FL @@ -1478,8 +1500,14 @@ PBS World (WVIZ-DT3) Cleveland, OH PBS Create (WVIZ-DT4) Cleveland, OH PBS Kids (WVIZ-DT5) Cleveland, OH + CBS (WVLT) KNOXVILLE Infomercials (WVTT-CD4) Olean, NY Cornerstone (WVVC-LD2) Utica, NY + NBC (WWBT-DT) Richmond, KY + MeTV (WWBT-DT2) Richmond, KY + Circle (WWBT-DT3) Richmond, KY + Ion Mystery (WWBT-DT4) Richmond, KY + True Crime Network (WWBT-DT5) Richmond, KY CBS (WWJ-DT1) Detroit, MI Start TV (WWJ-DT2) Detroit, MI Dabl (WWJ-DT3) Detroit, MI @@ -1495,6 +1523,10 @@ NBC (WXIA-DT1) Atanta, GA True Crime Network (WXIA-DT3) Atanta, GA Quest (WXIA-DT4) Atanta, GA + FOX (WXMI-DT1) Grand Rapids, MI + Antenna TV (WXMI-DT2) Grand Rapids, MI + Bounce (WXMI-DT3) Grand Rapids, MI + Ion Mystery (WXMI-DT4) Grand Rapids, MI CCTV 4 America (WXNY-LD2) New York, NY CGTN Español (WXNY-LD3) New York, NY Retro TV (WXNY-LD4) New York, NY @@ -1505,10 +1537,6 @@ Twist (WXTV-DT3) NY Grit (WXTV-DT4) NY WXXA-TV4 - FOX (WXMI-DT1) Grand Rapids, MI - Antenna TV (WXMI-DT2) Grand Rapids, MI - Bounce (WXMI-DT3) Grand Rapids, MI - Ion Mystery (WXMI-DT4) Grand Rapids, MI ABC (WXYZ-DT1) Detroit, MI Bounce (WXYZ-DT2) Detroit, MI Laff (WXYZ-DT3) Detroit, MI @@ -1521,37 +1549,9 @@ Telemundo (WZDC-CD1) Washington, DC Story Television (WZME-DT1) New York, NY MeTV Plus (WZME-DT2) New York, NY - ABC (WZZM-DT1) Grand Rapids, MI - AMG TV (WBON-LD) Richmond, KY - Buzzr TV (WBON-LD2) Richmond, KY - Heartland (WBON-LD3) Richmond, KY - Retro TV (WBON-LD4) Richmond, KY - PBS (WCVE-DT) Richmond, VA - Create (WCVE-DT2) Richmond, VA - PBS World (WCVE-DT3) Richmond, VA - PBS Kids (WCVE-DT4) Richmond, VA - ION (WKOI-DT) Richmond, IN - Hillsong (WKOI-DT2) Richmond, IN - PosiTiV (WKOI-DT3) Richmond, IN - Enlace (WKOI-DT4) Richmond, IN - Smile (WKOI-DT5) Richmond, IN - ABC (WRIC-DT) Richmond, VA - ION (WRIC-DT2) Richmond, VA - Cozi TV (WRIC-DT3) Richmond, VA - FOX (WRLH-DT) Richmond, KY - MyNetworkTV (WRLH-DT2) Richmond, KY - Comet TV (WRLH-DT3) Richmond, KY - CHARGE! (WRLH-DT4) Richmond, KY - Dabl (WRLH-DT5) Richmond, KY - CBS (WTVR-DT) Richmond, KY - Antenna TV (WTVR-DT2) Richmond, KY - Court TV (WTVR-DT4) Richmond, KY - NBC (WWBT-DT) Richmond, KY - MeTV (WWBT-DT2) Richmond, KY - Circle (WWBT-DT3) Richmond, KY - Ion Mystery (WWBT-DT4) Richmond, KY - True Crime Network (WWBT-DT5) Richmond, KY Telemundo (WZTD-LD) Richmond, KY + ABC (WZZM-DT1) Grand Rapids, MI LATV (XHAS-DT2) San Diego, CA + Telemundo (WSOC-DT2) Charlotte, NC diff --git a/sites/tvtv.us/tvtv.us_us.channels.xml b/sites/tvtv.us/tvtv.us_us.channels.xml index 9ad0e62e1..bc8e31741 100644 --- a/sites/tvtv.us/tvtv.us_us.channels.xml +++ b/sites/tvtv.us/tvtv.us_us.channels.xml @@ -13,14 +13,12 @@ AccuWeather ActionMax East ActionMax West - Adrenalina Sports Network + Adrenalina Sports Network [adult swim]East [adult swim]West AFN Spectrum AFN Sports AFN Sports 2 - A&E East - A&E West Al Resalah Altitude Sports AMC East @@ -145,6 +143,7 @@ Comedy Central West Comedy.TV Comet + CONtv Cooking Channel Court TV Mystery Cozi TV @@ -158,8 +157,8 @@ Dabl Daystar TV Decades - De Pelicula De Pelicula Clasico + De Pelicula Destination America Discovery Channel East Discovery Channel West @@ -175,6 +174,7 @@ Disney XD West Classic Doctor Who DocuBox HD + Docurama Dog TV Dream 2 Dust @@ -202,6 +202,7 @@ ESPN Deportes ESPNEWS ESPNU + ESTV Estrella TV ES.TV Entertainment Tonight Live @@ -214,7 +215,6 @@ Euronews Français E! West EWTN - Family CHRGD FETV Flix East Flix West @@ -225,7 +225,6 @@ Fox Deportes Fox East FOX News - LiveNow From FOX Fox Soccer Plus Fox Sports 1 Fox Sports 2 @@ -313,6 +312,7 @@ JBS Jewelry TV Jewish Life Television + Johnny Carson Kanal D Laff Law & Crime @@ -322,6 +322,7 @@ Lifetime Real Women East Lifetime West Link TV + LiveNow From FOX Living Faith TV Logo East Logo West @@ -338,7 +339,7 @@ Melody Aflam Melody Drama Melody Hits - MeTV + MeTV Mezzo Live HD MGM HD Military History Channel @@ -373,8 +374,8 @@ MTV Classic East MTV Classic West MTV East - MTV Live MTV Live (International) + MTV Live MTV Tr3s East MTV Tr3s West MTV U @@ -413,6 +414,7 @@ Music Choice Tropicales Music Choice Y2K MyDestination.TV + Mystery Science Theater 3000 NASA TV NASA TV UHD Nat Geo Mundo @@ -506,17 +508,9 @@ Pac-12 Washington Paramount Network East Pasiones US - Pay Per View 1 - Pay Per View 2 - Pay Per View 3 - Pay Per View 4 - Pay Per View 5 - Pay Per View 6 - Pay Per View 7 - Pay Per View 8 PBS East (National Feed) - PBS West (National Feed) PBS Kids East (National Feed) + PBS West (National Feed) People TV Perú Mágico Pets.TV @@ -526,7 +520,7 @@ Pop West Positiv TV Pursuit Channel - Qello Concerts by Stingray + Pursuit Up Quest QVC QVC2 @@ -560,6 +554,7 @@ ShopHQ Shop LC Shop TV + Shout Factory TV Showtime 2 East Showtime 2 West Showtime East @@ -623,23 +618,7 @@ Starz Kids & Family East Starz Kids & Family West Starz West - Stingray Classica - Stingray Classic Rock - Stingray Easy Listening - Stingray Exitos del Momento - Stingray Flashback 70s - Stingray Greatest Hits - Stingray Hip-Hop/R&B - Stingray Hit List - Stingray Hot Country - Stingray Karaoke Stingray Naturescape - Stingray Nothin' But 90's - Stingray Pop Adult - Stingray Remember the 80's - Stingray Rock Alternative - Stingray Smooth Jazz - Stingray Soul Storm StudioCanal SundanceTV East SundanceTV West @@ -660,9 +639,11 @@ TeleXitos Tennis Channel The Africa Channel + The Carol Burnett Show The Country Network The Cowboy Channel The Family Channel + The First The Israeli Network The Movie Channel East The Movie Channel West @@ -696,6 +677,7 @@ TVP Polonia TVW TyC Sports + TYT Network Ultra Familia UniMás Central UniMás Este @@ -730,15 +712,5 @@ Zee Tamil Zee TV USA Zee Zest - The First - Shout Factory TV - Mystery Science Theater 3000 - Johnny Carson - The Carol Burnett Show - CONtv - Docurama - ESTV - Pursuit Up - TYT Network diff --git a/sites/useetv.com/useetv.com.config.js b/sites/useetv.com/useetv.com.config.js new file mode 100644 index 000000000..26ab90b1c --- /dev/null +++ b/sites/useetv.com/useetv.com.config.js @@ -0,0 +1,67 @@ +const cheerio = require('cheerio') +const dayjs = require('dayjs') +const utc = require('dayjs/plugin/utc') +const timezone = require('dayjs/plugin/timezone') +const customParseFormat = require('dayjs/plugin/customParseFormat') + +dayjs.extend(utc) +dayjs.extend(timezone) +dayjs.extend(customParseFormat) + +module.exports = { + site: 'useetv.com', + url({ channel }) { + return `https://www.useetv.com/tvod/${channel.site_id}` + }, + parser({ content, date }) { + const programs = [] + const items = parseItems(content, date) + items.forEach(item => { + const prev = programs[programs.length - 1] + const $item = cheerio.load(item) + let start = parseStart($item, date) + if (prev && start.isBefore(prev.start)) { + start = start.add(1, 'd') + date = date.add(1, 'd') + } + let stop = parseStop($item, date) + if (stop.isBefore(start)) { + stop = stop.add(1, 'd') + date = date.add(1, 'd') + } + programs.push({ + title: parseTitle($item), + start, + stop + }) + }) + + return programs + } +} + +function parseStart($item, date) { + const timeString = $item('p').text() + const [_, start] = timeString.match(/(\d{2}:\d{2}) -/) || [null, null] + const dateString = `${date.format('YYYY-MM-DD')} ${start}` + + return dayjs.tz(dateString, 'YYYY-MM-DD HH:mm', 'Asia/Jakarta') +} + +function parseStop($item, date) { + const timeString = $item('p').text() + const [_, stop] = timeString.match(/- (\d{2}:\d{2})/) || [null, null] + const dateString = `${date.format('YYYY-MM-DD')} ${stop}` + + return dayjs.tz(dateString, 'YYYY-MM-DD HH:mm', 'Asia/Jakarta') +} + +function parseTitle($item) { + return $item('b').text() +} + +function parseItems(content, date) { + const $ = cheerio.load(content) + + return $(`#pills-${date.format('YYYY-MM-DD')} .schedule-item`).toArray() +} diff --git a/sites/useetv.com/useetv.com.test.js b/sites/useetv.com/useetv.com.test.js new file mode 100644 index 000000000..3033ebf93 --- /dev/null +++ b/sites/useetv.com/useetv.com.test.js @@ -0,0 +1,57 @@ +// npx epg-grabber --config=sites/useetv.com/useetv.com.config.js --channels=sites/useetv.com/useetv.com_id.channels.xml --output=guide.xml --timeout=30000 --days=2 + +const { parser, url, request } = require('./useetv.com.config.js') +const dayjs = require('dayjs') +const utc = require('dayjs/plugin/utc') +dayjs.extend(utc) + +const date = dayjs.utc('2022-08-08', 'YYYY-MM-DD').startOf('d') +const channel = { + site_id: 'metrotv', + xmltv_id: 'MetroTV.id' +} +const content = `
` + +it('can generate valid url', () => { + expect(url({ channel })).toBe('https://www.useetv.com/tvod/metrotv') +}) + +it('can parse response', () => { + const result = parser({ content, channel, date }).map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) + + expect(result).toMatchObject([ + { + title: 'Headline News', + start: '2022-08-08T00:00:00.000Z', + stop: '2022-08-08T00:05:00.000Z' + }, + { + title: 'Editorial Media Indonesia', + start: '2022-08-08T00:05:00.000Z', + stop: '2022-08-08T00:30:00.000Z' + }, + { + title: 'Editorial Media Indonesia', + start: '2022-08-08T00:30:00.000Z', + stop: '2022-08-08T00:45:00.000Z' + }, + { + title: 'Editorial Media Indonesia', + start: '2022-08-08T00:45:00.000Z', + stop: '2022-08-08T01:00:00.000Z' + } + ]) +}) + +it('can handle empty guide', () => { + const result = parser({ + date, + channel, + content: `` + }) + expect(result).toMatchObject([]) +}) diff --git a/sites/useetv.com/useetv.com_id.channels.xml b/sites/useetv.com/useetv.com_id.channels.xml new file mode 100644 index 000000000..62a63c492 --- /dev/null +++ b/sites/useetv.com/useetv.com_id.channels.xml @@ -0,0 +1,162 @@ + + + + UseePrime + Usee Photo + + Ruang Trampil + SEA Today + Trans7 + TransTV + ANTV + TV One + Metro TV + Kompas TV + iNews + TVRI + Rajawali TV + Rodja TV + JTV + MNC News + Berita Satu + RRI NET + Bali TV + MQTV + MTATV + + JakTV + Nusantara TV + + + + TV Edukasi + Arirang + MUI TV + Tawaf TV + TV9 NU + + + CCTV4 + DW (English) + ABC Australia + + Euronews + TRT World + France 24 + CGTN Documentary + SCTV + Indosiar + + + beIN Sports 1 + beIN Sports 3 + SPOTV + SPOTV2 + NBA + NBA + egg network + Fight Sport + TVN Movies + IMC + Galaxy Premium + Galaxy + + + Bioskop Indonesia + Celestial Movie + ZBioskop + Paramount + Thrill + My Cinema Asia + My Family + My Cinema + Cinema World + CNN Indonesia + CNBC Indonesia + Bloomberg + News Asia + CNN International + Aljazeera + CNBC Asia + TVBS News + TVN + AXN + AXN + Kplus + KBS World + Citra Drama + Warner + Rock Extreme + TLC + History + Dunia Lain + Rock Entertainment + ANIPlus + Animax + SONE + Kix + Lifetime + TV5Monde + NHK World Premium + + + Zhejiang + + + CTI Asia + Cartoon Network + Horee + Nick Junior + Nickelodeon + Dunia anak + Boomerang + MyKidz + Mentari TV + + Nat Geo + Nat Geo + Discovery Channel + Discovery Channel + Nat Geo Wild + Nat Geo Wild + Tech Storm + Crime Investigation + Lingua + + Asian Food Network + HGTV + Eat N Go + FashionTV + MTV Live + Citra Dangdut + + O Channel + Insert + + + Net. + Daai TV + IDX + + + M Shop + Seru! + UChannel + + NHK World Japan + ATV + Outdoor Channel + Horizon Sports + + Star Chinese Movies + Star Chinese Channel + + Baby First + Dreamworks + + + + \ No newline at end of file diff --git a/sites/vidio.com/vidio.com.test.js b/sites/vidio.com/vidio.com.test.js index 060457f0a..96203d97c 100644 --- a/sites/vidio.com/vidio.com.test.js +++ b/sites/vidio.com/vidio.com.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/vidio.com/vidio.com.config.js --channels=sites/vidio.com/vidio.com_id.channels.xml --output=.gh-pages/guides/id/vidio.com.epg.xml --days=2 +// npx epg-grabber --config=sites/vidio.com/vidio.com.config.js --channels=sites/vidio.com/vidio.com_id.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./vidio.com.config.js') const dayjs = require('dayjs') diff --git a/sites/vivacom.bg/vivacom.bg.test.js b/sites/vivacom.bg/vivacom.bg.test.js index cbd102a1c..9b9f1e5e7 100644 --- a/sites/vivacom.bg/vivacom.bg.test.js +++ b/sites/vivacom.bg/vivacom.bg.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/vivacom.bg/vivacom.bg.config.js --channels=sites/vivacom.bg/vivacom.bg_bg.channels.xml --output=.gh-pages/guides/bg/vivacom.bg.epg.xml --days=2 +// npx epg-grabber --config=sites/vivacom.bg/vivacom.bg.config.js --channels=sites/vivacom.bg/vivacom.bg_bg.channels.xml --output=guide.xml --days=2 const { parser, url, request } = require('./vivacom.bg.config.js') const dayjs = require('dayjs') diff --git a/sites/vtm.be/vtm.be.test.js b/sites/vtm.be/vtm.be.test.js index 4c19ca9f9..dea7bc4a6 100644 --- a/sites/vtm.be/vtm.be.test.js +++ b/sites/vtm.be/vtm.be.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/vtm.be/vtm.be.config.js --channels=sites/vtm.be/vtm.be_be.channels.xml --output=.gh-pages/guides/be/vtm.be.epg.xml --days=2 +// npx epg-grabber --config=sites/vtm.be/vtm.be.config.js --channels=sites/vtm.be/vtm.be_be.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./vtm.be.config.js') const dayjs = require('dayjs') diff --git a/sites/walesi.com.fj/walesi.com.fj.test.js b/sites/walesi.com.fj/walesi.com.fj.test.js index 5dd8b3c4e..7d210a112 100644 --- a/sites/walesi.com.fj/walesi.com.fj.test.js +++ b/sites/walesi.com.fj/walesi.com.fj.test.js @@ -45,13 +45,13 @@ it('can parse response', () => { expect(result).toMatchObject([ { - start: '2021-11-20T11:00:00.000Z', - stop: '2021-11-20T17:00:00.000Z', + start: '2021-11-20T12:00:00.000Z', + stop: '2021-11-20T18:00:00.000Z', title: `Aljazeera` }, { - start: '2021-11-20T17:00:00.000Z', - stop: '2021-11-20T17:30:00.000Z', + start: '2021-11-20T18:00:00.000Z', + stop: '2021-11-20T18:30:00.000Z', title: `Move Fiji` } ]) diff --git a/sites/zap.co.ao/zap.co.ao.test.js b/sites/zap.co.ao/zap.co.ao.test.js index 406723c37..3ad36e05d 100644 --- a/sites/zap.co.ao/zap.co.ao.test.js +++ b/sites/zap.co.ao/zap.co.ao.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/zap.co.ao/zap.co.ao.config.js --channels=sites/zap.co.ao/zap.co.ao_ao.channels.xml --output=.gh-pages/guides/ao/zap.co.ao.epg.xml --days=2 +// npx epg-grabber --config=sites/zap.co.ao/zap.co.ao.config.js --channels=sites/zap.co.ao/zap.co.ao_ao.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./zap.co.ao.config.js') const dayjs = require('dayjs') diff --git a/sites/znbc.co.zm/znbc.co.zm.test.js b/sites/znbc.co.zm/znbc.co.zm.test.js index 7487a1f53..9483f94b4 100644 --- a/sites/znbc.co.zm/znbc.co.zm.test.js +++ b/sites/znbc.co.zm/znbc.co.zm.test.js @@ -1,4 +1,4 @@ -// npx epg-grabber --config=sites/znbc.co.zm/znbc.co.zm.config.js --channels=sites/znbc.co.zm/znbc.co.zm_zm.channels.xml --output=.gh-pages/guides/zm/znbc.co.zm.epg.xml --days=2 +// npx epg-grabber --config=sites/znbc.co.zm/znbc.co.zm.config.js --channels=sites/znbc.co.zm/znbc.co.zm_zm.channels.xml --output=guide.xml --days=2 const { parser, url } = require('./znbc.co.zm.config.js') const dayjs = require('dayjs') diff --git a/tests/__data__/expected/_readme.md b/tests/__data__/expected/_readme.md index c0f5df2fb..1f3928467 100644 --- a/tests/__data__/expected/_readme.md +++ b/tests/__data__/expected/_readme.md @@ -12,13 +12,11 @@ To load a program guide, all you need to do is copy the link to one or more of t Country                         ChannelsEPGStatus                                                    - 🇨🇦 Canada2https://iptv-org.github.io/epg/guides/ca-en/example.com.epg.xmlexample.com - 1https://iptv-org.github.io/epg/guides/ca-ru/example.com.epg.xmlexample.com + 🇨🇦 Canada2https://iptv-org.github.io/epg/guides/ca-en/example.com.epg.xml.gzexample.com + 1https://iptv-org.github.io/epg/guides/ca-ru/example.com.epg.xml.gzexample.com -To use a compressed version of the files, add `.gz` to the end of the filename. - ## API The API documentation can be found in the [iptv-org/api](https://github.com/iptv-org/api) repository. diff --git a/tests/__data__/expected/api/guides.json b/tests/__data__/expected/api/guides.json index e016b25ee..fdf08bc42 100644 --- a/tests/__data__/expected/api/guides.json +++ b/tests/__data__/expected/api/guides.json @@ -1 +1 @@ -[{"channel":"CNNInternationalEurope.us","site":"example.com","lang":"en","url":"https://iptv-org.github.io/epg/guides/ca-en/example.com.epg.xml"},{"channel":"CNNInternationalEurope.us","site":"example.com","lang":"ru","url":"https://iptv-org.github.io/epg/guides/ca-ru/example.com.epg.xml"},{"channel":"CNNInternationalEurope2.us","site":"example.com","lang":"en","url":"https://iptv-org.github.io/epg/guides/ca-en/example.com.epg.xml"}] \ No newline at end of file +[{"channel":"CNNInternationalEurope.us","site":"example.com","lang":"en","url":"https://iptv-org.github.io/epg/guides/ca-en/example.com.epg.xml.gz"},{"channel":"CNNInternationalEurope.us","site":"example.com","lang":"ru","url":"https://iptv-org.github.io/epg/guides/ca-ru/example.com.epg.xml.gz"},{"channel":"CNNInternationalEurope2.us","site":"example.com","lang":"en","url":"https://iptv-org.github.io/epg/guides/ca-en/example.com.epg.xml.gz"}] \ No newline at end of file diff --git a/tests/__data__/expected/guides/bh/chaines-tv.orange.fr.epg.xml b/tests/__data__/expected/guides/bh/chaines-tv.orange.fr.epg.xml deleted file mode 100644 index 61118187c..000000000 --- a/tests/__data__/expected/guides/bh/chaines-tv.orange.fr.epg.xml +++ /dev/null @@ -1,5 +0,0 @@ - -CNN Internationalhttps://chaines-tv.orange.fr -World SportВсе о главных спортивных событиях мира. Обзоры самых важных спортивных событий, аналитика, мнения экспертов. -Connecting Africa. 114-я серия114-я серия. Проект, рассказывающий о людях и компаниях, которые совершают революцию в африканском бизнесе, и о тех, кто объединяет континент, выступая за свободную торговлю в Африке. - \ No newline at end of file diff --git a/tests/__data__/expected/guides/fr/chaines-tv.orange.fr.epg.xml b/tests/__data__/expected/guides/fr/chaines-tv.orange.fr.epg.xml deleted file mode 100644 index 61118187c..000000000 --- a/tests/__data__/expected/guides/fr/chaines-tv.orange.fr.epg.xml +++ /dev/null @@ -1,5 +0,0 @@ - -CNN Internationalhttps://chaines-tv.orange.fr -World SportВсе о главных спортивных событиях мира. Обзоры самых важных спортивных событий, аналитика, мнения экспертов. -Connecting Africa. 114-я серия114-я серия. Проект, рассказывающий о людях и компаниях, которые совершают революцию в африканском бизнесе, и о тех, кто объединяет континент, выступая за свободную торговлю в Африке. - \ No newline at end of file diff --git a/tests/__data__/expected/guides/ge/magticom.ge.epg.xml b/tests/__data__/expected/guides/ge/magticom.ge.epg.xml deleted file mode 100644 index 9a4ed48ef..000000000 --- a/tests/__data__/expected/guides/ge/magticom.ge.epg.xml +++ /dev/null @@ -1,3 +0,0 @@ - -CNN Internationalhttps://magticom.ge - \ No newline at end of file diff --git a/tests/__data__/expected/guides/ru/yandex.ru.epg.xml b/tests/__data__/expected/guides/ru/yandex.ru.epg.xml deleted file mode 100644 index d396a1dff..000000000 --- a/tests/__data__/expected/guides/ru/yandex.ru.epg.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/tests/__data__/expected/guides/us/directv.com.epg.xml b/tests/__data__/expected/guides/us/directv.com.epg.xml deleted file mode 100644 index d396a1dff..000000000 --- a/tests/__data__/expected/guides/us/directv.com.epg.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/tests/__data__/expected/guides/zw/dstv.com.epg.xml b/tests/__data__/expected/guides/zw/dstv.com.epg.xml deleted file mode 100644 index efb0e0ab7..000000000 --- a/tests/__data__/expected/guides/zw/dstv.com.epg.xml +++ /dev/null @@ -1,4 +0,0 @@ - -M-Net Movies 2https://dstv.com -Robin Hood8.256.0/1S09E257 - \ No newline at end of file diff --git a/tests/commands/channels/lint.test.js b/tests/commands/channels/lint.test.js index f504efd66..9c758af4d 100644 --- a/tests/commands/channels/lint.test.js +++ b/tests/commands/channels/lint.test.js @@ -13,7 +13,7 @@ it('will show a message if the file contains a syntax error', () => { } catch (err) { expect(err.status).toBe(1) expect(err.stdout).toBe( - `\n> channels:lint\n> node scripts/commands/channels/lint.js "tests/__data__/input/sites/lint.channels.xml"\n\n\ntests/__data__/input/sites/lint.channels.xml\n 4:0 Element 'channel': The attribute 'lang' is required but missing.\n\n1 error(s)\n` + `\n> channels:lint\n> node scripts/commands/channels/lint.js\n\n\ntests/__data__/input/sites/lint.channels.xml\n 4:0 Element 'channel': The attribute 'lang' is required but missing.\n\n1 error(s)\n` ) } }) diff --git a/tests/commands/channels/validate.test.js b/tests/commands/channels/validate.test.js index 0c7e60264..b705d3cf3 100644 --- a/tests/commands/channels/validate.test.js +++ b/tests/commands/channels/validate.test.js @@ -13,7 +13,7 @@ it('will show a message if the file contains a duplicate', () => { } catch (err) { expect(err.status).toBe(1) expect(err.stdout).toBe( - `\n> channels:validate\n> node scripts/commands/channels/validate.js "tests/__data__/input/sites/duplicate.channels.xml"\n\ntests/__data__/input/sites/duplicate.channels.xml + `\n> channels:validate\n> node scripts/commands/channels/validate.js\n\ntests/__data__/input/sites/duplicate.channels.xml ┌─────────┬─────────────┬──────┬─────────────────────────────┬─────────┬─────────────────────┐ │ (index) │ type │ lang │ xmltv_id │ site_id │ name │ ├─────────┼─────────────┼──────┼─────────────────────────────┼─────────┼─────────────────────┤ @@ -37,7 +37,7 @@ it('will show a message if the file contains a channel with wrong xmltv_id', () } catch (err) { expect(err.status).toBe(1) expect(err.stdout).toBe( - `\n> channels:validate\n> node scripts/commands/channels/validate.js "tests/__data__/input/sites/wrong_xmltv_id.channels.xml"\n\ntests/__data__/input/sites/wrong_xmltv_id.channels.xml + `\n> channels:validate\n> node scripts/commands/channels/validate.js\n\ntests/__data__/input/sites/wrong_xmltv_id.channels.xml ┌─────────┬──────────────────┬──────┬────────────────────┬─────────┬─────────────────────┐ │ (index) │ type │ lang │ xmltv_id │ site_id │ name │ ├─────────┼──────────────────┼──────┼────────────────────┼─────────┼─────────────────────┤ diff --git a/tests/commands/guides/update.test.js b/tests/commands/guides/update.test.js index ce60208e5..f85848f91 100644 --- a/tests/commands/guides/update.test.js +++ b/tests/commands/guides/update.test.js @@ -21,16 +21,8 @@ it('can generate /guides', () => { { encoding: 'utf8' } ) - const guides = glob - .sync('tests/__data__/expected/guides/**/*.xml') - .map(f => f.replace('tests/__data__/expected/', '')) - - guides.forEach(filepath => { - expect(content(`output/${filepath}`), filepath).toBe(content(`expected/${filepath}`)) - }) - const compressed = glob - .sync('tests/__data__/expected/guides/**/*.xml.gz') + .sync('tests/__data__/expected/guides/**/*.epg.xml.gz') .map(f => f.replace('tests/__data__/expected/', '')) compressed.forEach(filepath => { @@ -58,12 +50,12 @@ it('will terminate process if programs not found', () => { Generating guides/... Loading \"database/programs.db\"... Loading queue... -Creating \"tests/__data__/output/guides/us/directv.com.epg.xml\"... -Creating \"tests/__data__/output/guides/fr/chaines-tv.orange.fr.epg.xml\"... -Creating \"tests/__data__/output/guides/bh/chaines-tv.orange.fr.epg.xml\"... -Creating \"tests/__data__/output/guides/ge/magticom.ge.epg.xml\"... -Creating \"tests/__data__/output/guides/ru/yandex.ru.epg.xml\"... -Creating \"tests/__data__/output/guides/zw/dstv.com.epg.xml\"... +Creating \"tests/__data__/output/guides/us/directv.com.epg.xml.gz\"... +Creating \"tests/__data__/output/guides/fr/chaines-tv.orange.fr.epg.xml.gz\"... +Creating \"tests/__data__/output/guides/bh/chaines-tv.orange.fr.epg.xml.gz\"... +Creating \"tests/__data__/output/guides/ge/magticom.ge.epg.xml.gz\"... +Creating \"tests/__data__/output/guides/ru/yandex.ru.epg.xml.gz\"... +Creating \"tests/__data__/output/guides/zw/dstv.com.epg.xml.gz\"... Error: No programs found `) diff --git a/yarn.lock b/yarn.lock index edaccfd62..65f5a0144 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1302,7 +1302,7 @@ "version" "0.0.1" "console-control-strings@^1.0.0", "console-control-strings@^1.1.0": - "integrity" "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity" "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" "resolved" "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" "version" "1.1.0" @@ -1442,7 +1442,7 @@ "version" "1.0.0" "delegates@^1.0.0": - "integrity" "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity" "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" "resolved" "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" "version" "1.0.0" @@ -2008,7 +2008,7 @@ "version" "4.0.0" "has-unicode@^2.0.1": - "integrity" "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "integrity" "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" "resolved" "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" "version" "2.0.1" @@ -2993,9 +2993,9 @@ "version" "1.2.6" "minipass@^3.0.0": - "integrity" "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==" - "resolved" "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz" - "version" "3.1.6" + "integrity" "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==" + "resolved" "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz" + "version" "3.3.4" dependencies: "yallist" "^4.0.0" @@ -3128,7 +3128,7 @@ "version" "2.2.0" "object-assign@^4.1.1": - "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" "version" "4.1.1" @@ -3561,7 +3561,7 @@ "lru-cache" "^6.0.0" "set-blocking@^2.0.0": - "integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity" "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" "version" "2.0.0" @@ -3836,7 +3836,7 @@ "punycode" "^2.1.1" "tr46@~0.0.3": - "integrity" "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + "integrity" "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" "resolved" "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" "version" "0.0.3" @@ -3958,7 +3958,7 @@ "defaults" "^1.0.3" "webidl-conversions@^3.0.0": - "integrity" "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + "integrity" "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" "version" "3.0.1" @@ -3985,7 +3985,7 @@ "version" "2.3.0" "whatwg-url@^5.0.0": - "integrity" "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=" + "integrity" "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==" "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" "version" "5.0.0" dependencies: