diff --git a/.github/workflows/9tv.co.il.yml b/.github/workflows/9tv.co.il.yml index 07fbd82f..5337634e 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 d076ee27..a1a9f00c 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 976d23aa..a813b0cf 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 d4968348..86bd9fdd 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 3c9e7273..2178aa50 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 ecc02af7..da156927 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 8cbe2661..3b03e126 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 8a422300..93a727af 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 2f08d7ed..b9883778 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 31f36185..0267dc99 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 c57e613d..efcb4d69 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 fb65cfe8..50f6889b 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 ebdddd23..e5b4392c 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 e29f7ce8..c68cbb1c 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 fe871859..54e72d45 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 38f6c038..0559c63c 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 3beee9ab..e35f3f99 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 450403d4..da5f5fc5 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 31b3e2d8..d7238247 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 e66b53e2..5e57a8d6 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 9db21c69..379278af 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 dd14616e..1b6e0b95 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 c3fd0075..c4454acf 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 c511551f..3aac10e7 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 56024334..2269ab23 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 4f2144bb..254afc29 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 055f3339..e4653e29 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 7c94c891..f4be55c1 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 85d8839d..c9d21d9a 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 a3a1c0cd..ffa6b396 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 5c176e90..cb66da80 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 bc69b75c..b7a27a8c 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 de4e7b76..611ff468 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 cbd18d3a..12c3338c 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 a115057b..e56e2378 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 5b2fd0ba..081c8328 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 7768a031..23016f1c 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 1271234a..c94493a7 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 6fdb988f..cf347380 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 3faa5eac..25d5f953 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 a5c49cff..1b529431 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 a33e8245..fe70faf7 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 46b8c7f1..a8a07a37 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 5d4a70ee..9b1b177e 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 011ec02e..a59d6167 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 34d49fbe..76de135f 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 146700d6..e2aa55ec 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 601d261e..8f3fa2bc 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 a8fd5a3e..7304248b 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 bc33eae3..d76cd486 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 83efb792..952bfb21 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 e96f1efb..0b704fa4 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 d2bb08be..f06532ef 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 dab0aec6..bbab50fb 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 3211f0f6..da8542fe 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 8b1be24f..9b0a1a18 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 75007453..c9968ac0 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 2e9f6691..60966b31 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 f1f62068..807488b0 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 da1a864c..ae4873a6 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 795a7579..bd89034b 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 53d3b27c..80dcb9a2 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 e1a17ae8..a8384883 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 c45fc3d0..1196f6f7 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 228945d9..8fda37e1 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 d5c85dd0..758db2ac 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 52ebf0d2..d5211fa3 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 da0829b2..7e88fe99 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 c7525968..804edad1 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 2ebdb93f..3dd89fd9 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 0f2703fc..cebe5443 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 7bfc2c0b..40cfaecb 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 a40d3831..18ef42d3 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 87d8a91c..1e197d1f 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 3c2834a0..2f77ec6e 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 3467fb71..3b6645c5 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 8fde6f06..26b7118d 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 4e1e4eed..351e3ba7 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 9be5be69..b20e97ec 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 eb63199f..087cdf20 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 0e2c6e97..e6bf87d9 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 375a84cc..20df9e3c 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 d9861396..dfa027d3 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 f1838243..87c3fb93 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 157681b4..13a29de6 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 e0910730..585071bc 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 57263cbd..75c83600 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 4b04c268..05b8f8e7 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 6efb54bd..5ab01584 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 c1477d82..17332305 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 0728a43d..a32a02b6 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 17c2cb83..0dca7a61 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 889684b9..57482163 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 3626c0c3..c028a817 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 94317775..dffa58aa 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 2d9497c2..cf45f46c 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 dcfff814..e425eeee 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 f328a1ce..7f572fbf 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 bbd031d3..523ab6da 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 f6c540d0..28ddc6c4 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 2a52bd50..3eeea5d0 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 d72cf934..6b89dff7 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 8d0d65fe..4705d1a4 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 9ce1f6d5..79186d45 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 7a666b7f..818fdad4 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 d13f3d0d..2995f220 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 2b8b8ca1..6e66b012 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 f29fb943..bfa6c18f 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 540c4672..1543e5d5 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 9875d28d..7f33c875 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 4e029e27..ba5037eb 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 d48726db..98f98d2b 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 39776be4..2498c4d4 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 6d985dcd..220c45ed 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 11db75f8..ed1a8d34 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 5afbce88..60a7bbfc 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 00000000..68aa420c --- /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 05497572..5e21e56c 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 62e4f6b6..a248c89f 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 6a0a45b1..1e020fb1 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 833efae9..874328d9 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 9f33eb61..5fbdda21 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 77732027..db9c9de9 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 784fa93b..1c885749 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 91cd1162..02d35e7c 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 dfb2d98d..bc905311 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 6ad25984..9dc85d98 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 4a32b35e..9c4e30c1 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 d5a4104f..5cb5dc0c 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 e705db67..f11afa47 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 59e624a5..304d4ccc 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 18f47c52..1afaf5d7 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 816e3f58..f2592ea0 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 5a5d4d03..6d6eab1c 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 ee108bab..eab78d1e 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 9ac8ac6d..afe3448e 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 fbed5101..08ae8abd 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 932b8ca2..1744cb5b 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 8886305b..95216efc 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 26bfd897..b45acc31 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 8ea79864..0cd1f418 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 2391852b..bb7d615a 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 e811a73a..c0c71e13 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 4d9b69d9..7bb229b4 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 347d0d32..27733698 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 578240f6..8187acb7 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 7fe27ba8..8a439a53 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 52602c7b..c60325c7 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 ecdaaa44..5c134543 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 98da1ef4..687843ca 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 f49216ec..5322d5c7 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 4424d9fc..ee91f1e3 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 35b9af60..b7edd24d 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 1fbf8a63..bed90649 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 c5ae873a..3021b1f2 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 fb846469..83356675 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 4ff0c1e0..ebeb6d4c 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 b4efdc22..fcac56de 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 8ba6637b..331a1e1b 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 d54bee6f..576618ab 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 75c4bb76..6078c496 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 52cb4452..4732e48d 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 01e01c46..85d178b3 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 199d6714..5ff01d76 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 8e1c1767..fd5e9db9 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 af5b16e6..ac6c08de 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 13a157c4..0e2c72ee 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 404b21eb..e1884c1a 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 4813d721..39dad329 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 ebbc1eae..790742cb 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 03198505..cde2bbc8 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 55c3ce0a..ad322f8c 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 af0f1238..e1979078 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 7d0630a0..399f22df 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 eacc82a3..68bf48a8 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 8a68ab72..0ee8eda5 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 96d3bbf2..fe360f80 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 87e6b2a7..1b1beba3 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 69bea143..08fc6a3c 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 8312fbb3..6374a5d6 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 c845c0f2..76fe54b6 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 c78a7f98..8892b382 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 56eeadc5..70b8a666 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 95a805f8..05090e0f 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 9ad0e62e..bc8e3174 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 00000000..26ab90b1 --- /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 00000000..3033ebf9 --- /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 00000000..62a63c49 --- /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 060457f0..96203d97 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 cbd102a1..9b9f1e5e 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 4c19ca9f..dea7bc4a 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 5dd8b3c4..7d210a11 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 406723c3..3ad36e05 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 7487a1f5..9483f94b 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 c0f5df2f..1f392846 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 e016b25e..fdf08bc4 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 61118187..00000000 --- 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 61118187..00000000 --- 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 9a4ed48e..00000000 --- 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 d396a1df..00000000 --- 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 d396a1df..00000000 --- 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 efb0e0ab..00000000 --- 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 f504efd6..9c758af4 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 0c7e6026..b705d3cf 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 ce60208e..f85848f9 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 edaccfd6..65f5a014 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: