diff --git a/README.md b/README.md
index b979e2ea..6d5cf1c4 100644
--- a/README.md
+++ b/README.md
@@ -16,10 +16,10 @@ To load a program guide, all you need to do is copy the link to one or more of t
๐ฆ๐ซ Afghanistan | 72 | https://iptv-org.github.io/epg/guides/af.xml |
๐ฆ๐ฑ Albania | 101 | https://iptv-org.github.io/epg/guides/al.xml |
- ๐ฉ๐ฟ Algeria | 123 | https://iptv-org.github.io/epg/guides/dz.xml |
+ ๐ฉ๐ฟ Algeria | 122 | https://iptv-org.github.io/epg/guides/dz.xml |
๐ฆ๐ธ American Samoa | 67 | https://iptv-org.github.io/epg/guides/as.xml |
๐ฆ๐ฉ Andorra | 91 | https://iptv-org.github.io/epg/guides/ad.xml |
- ๐ฆ๐ด Angola | 120 | https://iptv-org.github.io/epg/guides/ao.xml |
+ ๐ฆ๐ด Angola | 119 | https://iptv-org.github.io/epg/guides/ao.xml |
๐ฆ๐ฎ Anguilla | 68 | https://iptv-org.github.io/epg/guides/ai.xml |
๐ฆ๐ถ Antarctica | 56 | https://iptv-org.github.io/epg/guides/aq.xml |
๐ฆ๐ฌ Antigua and Barbuda | 68 | https://iptv-org.github.io/epg/guides/ag.xml |
@@ -30,73 +30,73 @@ To load a program guide, all you need to do is copy the link to one or more of t
๐ฆ๐น Austria | 155 | https://iptv-org.github.io/epg/guides/at.xml |
๐ฆ๐ฟ Azerbaijan | 103 | https://iptv-org.github.io/epg/guides/az.xml |
๐ง๐ธ Bahamas | 76 | https://iptv-org.github.io/epg/guides/bs.xml |
- ๐ง๐ญ Bahrain | 91 | https://iptv-org.github.io/epg/guides/bh.xml |
+ ๐ง๐ญ Bahrain | 89 | https://iptv-org.github.io/epg/guides/bh.xml |
๐ง๐ฉ Bangladesh | 76 | https://iptv-org.github.io/epg/guides/bd.xml |
๐ง๐ง Barbados | 74 | https://iptv-org.github.io/epg/guides/bb.xml |
๐ง๐พ Belarus | 117 | https://iptv-org.github.io/epg/guides/by.xml |
๐ง๐ช Belgium | 198 | https://iptv-org.github.io/epg/guides/be.xml |
๐ง๐ฟ Belize | 92 | https://iptv-org.github.io/epg/guides/bz.xml |
- ๐ง๐ฏ Benin | 118 | https://iptv-org.github.io/epg/guides/bj.xml |
+ ๐ง๐ฏ Benin | 117 | https://iptv-org.github.io/epg/guides/bj.xml |
๐ง๐ฒ Bermuda | 62 | https://iptv-org.github.io/epg/guides/bm.xml |
๐ง๐น Bhutan | 73 | https://iptv-org.github.io/epg/guides/bt.xml |
๐ง๐ด Bolivia | 211 | https://iptv-org.github.io/epg/guides/bo.xml |
๐ง๐ถ Bonaire | 60 | https://iptv-org.github.io/epg/guides/bq.xml |
๐ง๐ฆ Bosnia and Herzegovina | 124 | https://iptv-org.github.io/epg/guides/ba.xml |
- ๐ง๐ผ Botswana | 106 | https://iptv-org.github.io/epg/guides/bw.xml |
+ ๐ง๐ผ Botswana | 105 | https://iptv-org.github.io/epg/guides/bw.xml |
๐ง๐ป Bouvet Island | 58 | https://iptv-org.github.io/epg/guides/bv.xml |
- ๐ง๐ท Brazil | 308 | https://iptv-org.github.io/epg/guides/br.xml |
+ ๐ง๐ท Brazil | 309 | https://iptv-org.github.io/epg/guides/br.xml |
๐ฎ๐ด British Indian Ocean Territory | 56 | https://iptv-org.github.io/epg/guides/io.xml |
๐ป๐ฌ British Virgin Islands | 68 | https://iptv-org.github.io/epg/guides/vg.xml |
- ๐ง๐ณ Brunei | 112 | https://iptv-org.github.io/epg/guides/bn.xml |
+ ๐ง๐ณ Brunei | 114 | https://iptv-org.github.io/epg/guides/bn.xml |
๐ง๐ฌ Bulgaria | 159 | https://iptv-org.github.io/epg/guides/bg.xml |
- ๐ง๐ซ Burkina Faso | 123 | https://iptv-org.github.io/epg/guides/bf.xml |
- ๐ง๐ฎ Burundi | 114 | https://iptv-org.github.io/epg/guides/bi.xml |
- ๐ฐ๐ญ Cambodia | 109 | https://iptv-org.github.io/epg/guides/kh.xml |
- ๐จ๐ฒ Cameroon | 124 | https://iptv-org.github.io/epg/guides/cm.xml |
- ๐จ๐ฆ Canada | 284 | https://iptv-org.github.io/epg/guides/ca.xml |
- ๐จ๐ป Cape Verde | 117 | https://iptv-org.github.io/epg/guides/cv.xml |
+ ๐ง๐ซ Burkina Faso | 122 | https://iptv-org.github.io/epg/guides/bf.xml |
+ ๐ง๐ฎ Burundi | 113 | https://iptv-org.github.io/epg/guides/bi.xml |
+ ๐ฐ๐ญ Cambodia | 111 | https://iptv-org.github.io/epg/guides/kh.xml |
+ ๐จ๐ฒ Cameroon | 123 | https://iptv-org.github.io/epg/guides/cm.xml |
+ ๐จ๐ฆ Canada | 285 | https://iptv-org.github.io/epg/guides/ca.xml |
+ ๐จ๐ป Cape Verde | 116 | https://iptv-org.github.io/epg/guides/cv.xml |
๐ฐ๐พ Cayman Islands | 68 | https://iptv-org.github.io/epg/guides/ky.xml |
- ๐จ๐ซ Central African Republic | 113 | https://iptv-org.github.io/epg/guides/cf.xml |
- ๐น๐ฉ Chad | 116 | https://iptv-org.github.io/epg/guides/td.xml |
+ ๐จ๐ซ Central African Republic | 112 | https://iptv-org.github.io/epg/guides/cf.xml |
+ ๐น๐ฉ Chad | 115 | https://iptv-org.github.io/epg/guides/td.xml |
๐จ๐ฑ Chile | 240 | https://iptv-org.github.io/epg/guides/cl.xml |
- ๐จ๐ณ China | 188 | https://iptv-org.github.io/epg/guides/cn.xml |
+ ๐จ๐ณ China | 187 | https://iptv-org.github.io/epg/guides/cn.xml |
๐จ๐ฝ Christmas Island | 56 | https://iptv-org.github.io/epg/guides/cx.xml |
๐จ๐จ Cocos (Keeling) Islands | 56 | https://iptv-org.github.io/epg/guides/cc.xml |
๐จ๐ด Colombia | 231 | https://iptv-org.github.io/epg/guides/co.xml |
- ๐ฐ๐ฒ Comoros | 130 | https://iptv-org.github.io/epg/guides/km.xml |
+ ๐ฐ๐ฒ Comoros | 129 | https://iptv-org.github.io/epg/guides/km.xml |
๐จ๐ฐ Cook Islands | 67 | https://iptv-org.github.io/epg/guides/ck.xml |
๐จ๐ท Costa Rica | 204 | https://iptv-org.github.io/epg/guides/cr.xml |
- ๐ญ๐ท Croatia | 146 | https://iptv-org.github.io/epg/guides/hr.xml |
+ ๐ญ๐ท Croatia | 147 | https://iptv-org.github.io/epg/guides/hr.xml |
๐จ๐บ Cuba | 203 | https://iptv-org.github.io/epg/guides/cu.xml |
๐จ๐ผ Curacao | 72 | https://iptv-org.github.io/epg/guides/cw.xml |
- ๐จ๐พ Cyprus | 122 | https://iptv-org.github.io/epg/guides/cy.xml |
+ ๐จ๐พ Cyprus | 120 | https://iptv-org.github.io/epg/guides/cy.xml |
๐จ๐ฟ Czech Republic | 207 | https://iptv-org.github.io/epg/guides/cz.xml |
- ๐จ๐ฉ Democratic Republic of the Congo | 125 | https://iptv-org.github.io/epg/guides/cd.xml |
+ ๐จ๐ฉ Democratic Republic of the Congo | 124 | https://iptv-org.github.io/epg/guides/cd.xml |
๐ฉ๐ฐ Denmark | 120 | https://iptv-org.github.io/epg/guides/dk.xml |
- ๐ฉ๐ฏ Djibouti | 134 | https://iptv-org.github.io/epg/guides/dj.xml |
+ ๐ฉ๐ฏ Djibouti | 133 | https://iptv-org.github.io/epg/guides/dj.xml |
๐ฉ๐ฒ Dominica | 68 | https://iptv-org.github.io/epg/guides/dm.xml |
๐ฉ๐ด Dominican Republic | 208 | https://iptv-org.github.io/epg/guides/do.xml |
- ๐น๐ฑ East Timor | 114 | https://iptv-org.github.io/epg/guides/tl.xml |
+ ๐น๐ฑ East Timor | 116 | https://iptv-org.github.io/epg/guides/tl.xml |
๐ช๐จ Ecuador | 206 | https://iptv-org.github.io/epg/guides/ec.xml |
- ๐ช๐ฌ Egypt | 158 | https://iptv-org.github.io/epg/guides/eg.xml |
+ ๐ช๐ฌ Egypt | 155 | https://iptv-org.github.io/epg/guides/eg.xml |
๐ธ๐ป El Salvador | 207 | https://iptv-org.github.io/epg/guides/sv.xml |
- ๐ฌ๐ถ Equatorial Guinea | 128 | https://iptv-org.github.io/epg/guides/gq.xml |
- ๐ช๐ท Eritrea | 106 | https://iptv-org.github.io/epg/guides/er.xml |
+ ๐ฌ๐ถ Equatorial Guinea | 127 | https://iptv-org.github.io/epg/guides/gq.xml |
+ ๐ช๐ท Eritrea | 105 | https://iptv-org.github.io/epg/guides/er.xml |
๐ช๐ช Estonia | 120 | https://iptv-org.github.io/epg/guides/ee.xml |
- ๐ช๐น Ethiopia | 106 | https://iptv-org.github.io/epg/guides/et.xml |
+ ๐ช๐น Ethiopia | 105 | https://iptv-org.github.io/epg/guides/et.xml |
๐ซ๐ฐ Falkland Islands | 58 | https://iptv-org.github.io/epg/guides/fk.xml |
๐ซ๐ด Faroe Islands | 61 | https://iptv-org.github.io/epg/guides/fo.xml |
๐ซ๐ฏ Fiji | 67 | https://iptv-org.github.io/epg/guides/fj.xml |
- ๐ซ๐ฎ Finland | 131 | https://iptv-org.github.io/epg/guides/fi.xml |
- ๐ซ๐ท France | 384 | https://iptv-org.github.io/epg/guides/fr.xml |
+ ๐ซ๐ฎ Finland | 130 | https://iptv-org.github.io/epg/guides/fi.xml |
+ ๐ซ๐ท France | 374 | https://iptv-org.github.io/epg/guides/fr.xml |
๐ฌ๐ซ French Guiana | 75 | https://iptv-org.github.io/epg/guides/gf.xml |
๐ต๐ซ French Polynesia | 71 | https://iptv-org.github.io/epg/guides/pf.xml |
- ๐น๐ซ French Southern Territories | 105 | https://iptv-org.github.io/epg/guides/tf.xml |
- ๐ฌ๐ฆ Gabon | 117 | https://iptv-org.github.io/epg/guides/ga.xml |
- ๐ฌ๐ฒ Gambia | 106 | https://iptv-org.github.io/epg/guides/gm.xml |
+ ๐น๐ซ French Southern Territories | 104 | https://iptv-org.github.io/epg/guides/tf.xml |
+ ๐ฌ๐ฆ Gabon | 116 | https://iptv-org.github.io/epg/guides/ga.xml |
+ ๐ฌ๐ฒ Gambia | 105 | https://iptv-org.github.io/epg/guides/gm.xml |
๐ฌ๐ช Georgia | 125 | https://iptv-org.github.io/epg/guides/ge.xml |
๐ฉ๐ช Germany | 280 | https://iptv-org.github.io/epg/guides/de.xml |
- ๐ฌ๐ญ Ghana | 109 | https://iptv-org.github.io/epg/guides/gh.xml |
+ ๐ฌ๐ญ Ghana | 108 | https://iptv-org.github.io/epg/guides/gh.xml |
๐ฌ๐ฎ Gibraltar | 56 | https://iptv-org.github.io/epg/guides/gi.xml |
๐ฌ๐ท Greece | 166 | https://iptv-org.github.io/epg/guides/gr.xml |
๐ฌ๐ฑ Greenland | 65 | https://iptv-org.github.io/epg/guides/gl.xml |
@@ -105,55 +105,55 @@ To load a program guide, all you need to do is copy the link to one or more of t
๐ฌ๐บ Guam | 73 | https://iptv-org.github.io/epg/guides/gu.xml |
๐ฌ๐น Guatemala | 206 | https://iptv-org.github.io/epg/guides/gt.xml |
๐ฌ๐ฌ Guernsey | 59 | https://iptv-org.github.io/epg/guides/gg.xml |
- ๐ฌ๐ณ Guinea | 119 | https://iptv-org.github.io/epg/guides/gn.xml |
- ๐ฌ๐ผ Guinea-Bissau | 113 | https://iptv-org.github.io/epg/guides/gw.xml |
+ ๐ฌ๐ณ Guinea | 118 | https://iptv-org.github.io/epg/guides/gn.xml |
+ ๐ฌ๐ผ Guinea-Bissau | 112 | https://iptv-org.github.io/epg/guides/gw.xml |
๐ฌ๐พ Guyana | 58 | https://iptv-org.github.io/epg/guides/gy.xml |
๐ญ๐น Haiti | 96 | https://iptv-org.github.io/epg/guides/ht.xml |
๐ญ๐ฒ Heard Island and McDonald Islands | 56 | https://iptv-org.github.io/epg/guides/hm.xml |
๐ญ๐ณ Honduras | 209 | https://iptv-org.github.io/epg/guides/hn.xml |
๐ญ๐ฐ Hong Kong | 155 | https://iptv-org.github.io/epg/guides/hk.xml |
๐ญ๐บ Hungary | 212 | https://iptv-org.github.io/epg/guides/hu.xml |
- ๐ฎ๐ธ Iceland | 104 | https://iptv-org.github.io/epg/guides/is.xml |
+ ๐ฎ๐ธ Iceland | 103 | https://iptv-org.github.io/epg/guides/is.xml |
๐ฎ๐ณ India | 420 | https://iptv-org.github.io/epg/guides/in.xml |
- ๐ฎ๐ฉ Indonesia | 211 | https://iptv-org.github.io/epg/guides/id.xml |
- ๐ฎ๐ท Iran | 85 | https://iptv-org.github.io/epg/guides/ir.xml |
- ๐ฎ๐ถ Iraq | 94 | https://iptv-org.github.io/epg/guides/iq.xml |
+ ๐ฎ๐ฉ Indonesia | 213 | https://iptv-org.github.io/epg/guides/id.xml |
+ ๐ฎ๐ท Iran | 75 | https://iptv-org.github.io/epg/guides/ir.xml |
+ ๐ฎ๐ถ Iraq | 92 | https://iptv-org.github.io/epg/guides/iq.xml |
๐ฎ๐ช Ireland | 158 | https://iptv-org.github.io/epg/guides/ie.xml |
๐ฎ๐ฒ Isle of Man | 56 | https://iptv-org.github.io/epg/guides/im.xml |
- ๐ฎ๐ฑ Israel | 76 | https://iptv-org.github.io/epg/guides/il.xml |
+ ๐ฎ๐ฑ Israel | 74 | https://iptv-org.github.io/epg/guides/il.xml |
๐ฎ๐น Italy | 251 | https://iptv-org.github.io/epg/guides/it.xml |
- ๐จ๐ฎ Ivory Coast | 125 | https://iptv-org.github.io/epg/guides/ci.xml |
+ ๐จ๐ฎ Ivory Coast | 124 | https://iptv-org.github.io/epg/guides/ci.xml |
๐ฏ๐ฒ Jamaica | 70 | https://iptv-org.github.io/epg/guides/jm.xml |
๐ฏ๐ต Japan | 191 | https://iptv-org.github.io/epg/guides/jp.xml |
๐ฏ๐ช Jersey | 58 | https://iptv-org.github.io/epg/guides/je.xml |
- ๐ฏ๐ด Jordan | 92 | https://iptv-org.github.io/epg/guides/jo.xml |
+ ๐ฏ๐ด Jordan | 90 | https://iptv-org.github.io/epg/guides/jo.xml |
๐ฐ๐ฟ Kazakhstan | 102 | https://iptv-org.github.io/epg/guides/kz.xml |
- ๐ฐ๐ช Kenya | 107 | https://iptv-org.github.io/epg/guides/ke.xml |
+ ๐ฐ๐ช Kenya | 106 | https://iptv-org.github.io/epg/guides/ke.xml |
๐ฐ๐ฎ Kiribati | 67 | https://iptv-org.github.io/epg/guides/ki.xml |
๐ฝ๐ฐ Kosovo | 81 | https://iptv-org.github.io/epg/guides/xk.xml |
- ๐ฐ๐ผ Kuwait | 95 | https://iptv-org.github.io/epg/guides/kw.xml |
+ ๐ฐ๐ผ Kuwait | 93 | https://iptv-org.github.io/epg/guides/kw.xml |
๐ฐ๐ฌ Kyrgyzstan | 65 | https://iptv-org.github.io/epg/guides/kg.xml |
- ๐ฑ๐ฆ Laos | 109 | https://iptv-org.github.io/epg/guides/la.xml |
+ ๐ฑ๐ฆ Laos | 111 | https://iptv-org.github.io/epg/guides/la.xml |
๐ฑ๐ป Latvia | 104 | https://iptv-org.github.io/epg/guides/lv.xml |
- ๐ฑ๐ง Lebanon | 98 | https://iptv-org.github.io/epg/guides/lb.xml |
- ๐ฑ๐ธ Lesotho | 107 | https://iptv-org.github.io/epg/guides/ls.xml |
- ๐ฑ๐ท Liberia | 106 | https://iptv-org.github.io/epg/guides/lr.xml |
- ๐ฑ๐พ Libya | 122 | https://iptv-org.github.io/epg/guides/ly.xml |
+ ๐ฑ๐ง Lebanon | 96 | https://iptv-org.github.io/epg/guides/lb.xml |
+ ๐ฑ๐ธ Lesotho | 106 | https://iptv-org.github.io/epg/guides/ls.xml |
+ ๐ฑ๐ท Liberia | 105 | https://iptv-org.github.io/epg/guides/lr.xml |
+ ๐ฑ๐พ Libya | 121 | https://iptv-org.github.io/epg/guides/ly.xml |
๐ฑ๐ฎ Liechtenstein | 99 | https://iptv-org.github.io/epg/guides/li.xml |
๐ฑ๐น Lithuania | 117 | https://iptv-org.github.io/epg/guides/lt.xml |
๐ฑ๐บ Luxembourg | 116 | https://iptv-org.github.io/epg/guides/lu.xml |
๐ฒ๐ด Macao | 62 | https://iptv-org.github.io/epg/guides/mo.xml |
- ๐ฒ๐ฌ Madagascar | 122 | https://iptv-org.github.io/epg/guides/mg.xml |
- ๐ฒ๐ผ Malawi | 106 | https://iptv-org.github.io/epg/guides/mw.xml |
- ๐ฒ๐พ Malaysia | 175 | https://iptv-org.github.io/epg/guides/my.xml |
+ ๐ฒ๐ฌ Madagascar | 121 | https://iptv-org.github.io/epg/guides/mg.xml |
+ ๐ฒ๐ผ Malawi | 105 | https://iptv-org.github.io/epg/guides/mw.xml |
+ ๐ฒ๐พ Malaysia | 177 | https://iptv-org.github.io/epg/guides/my.xml |
๐ฒ๐ป Maldives | 73 | https://iptv-org.github.io/epg/guides/mv.xml |
- ๐ฒ๐ฑ Mali | 122 | https://iptv-org.github.io/epg/guides/ml.xml |
+ ๐ฒ๐ฑ Mali | 121 | https://iptv-org.github.io/epg/guides/ml.xml |
๐ฒ๐น Malta | 117 | https://iptv-org.github.io/epg/guides/mt.xml |
๐ฒ๐ญ Marshall Islands | 67 | https://iptv-org.github.io/epg/guides/mh.xml |
๐ฒ๐ถ Martinique | 89 | https://iptv-org.github.io/epg/guides/mq.xml |
- ๐ฒ๐ท Mauritania | 122 | https://iptv-org.github.io/epg/guides/mr.xml |
- ๐ฒ๐บ Mauritius | 115 | https://iptv-org.github.io/epg/guides/mu.xml |
- ๐พ๐น Mayotte | 107 | https://iptv-org.github.io/epg/guides/yt.xml |
+ ๐ฒ๐ท Mauritania | 121 | https://iptv-org.github.io/epg/guides/mr.xml |
+ ๐ฒ๐บ Mauritius | 114 | https://iptv-org.github.io/epg/guides/mu.xml |
+ ๐พ๐น Mayotte | 106 | https://iptv-org.github.io/epg/guides/yt.xml |
๐ฒ๐ฝ Mexico | 259 | https://iptv-org.github.io/epg/guides/mx.xml |
๐ซ๐ฒ Micronesia | 67 | https://iptv-org.github.io/epg/guides/fm.xml |
๐ฒ๐ฉ Moldova | 99 | https://iptv-org.github.io/epg/guides/md.xml |
@@ -161,45 +161,45 @@ To load a program guide, all you need to do is copy the link to one or more of t
๐ฒ๐ณ Mongolia | 65 | https://iptv-org.github.io/epg/guides/mn.xml |
๐ฒ๐ช Montenegro | 102 | https://iptv-org.github.io/epg/guides/me.xml |
๐ฒ๐ธ Montserrat | 68 | https://iptv-org.github.io/epg/guides/ms.xml |
- ๐ฒ๐ฆ Morocco | 124 | https://iptv-org.github.io/epg/guides/ma.xml |
- ๐ฒ๐ฟ Mozambique | 122 | https://iptv-org.github.io/epg/guides/mz.xml |
- ๐ฒ๐ฒ Myanmar (Burma) | 109 | https://iptv-org.github.io/epg/guides/mm.xml |
- ๐ณ๐ฆ Namibia | 107 | https://iptv-org.github.io/epg/guides/na.xml |
+ ๐ฒ๐ฆ Morocco | 123 | https://iptv-org.github.io/epg/guides/ma.xml |
+ ๐ฒ๐ฟ Mozambique | 121 | https://iptv-org.github.io/epg/guides/mz.xml |
+ ๐ฒ๐ฒ Myanmar (Burma) | 111 | https://iptv-org.github.io/epg/guides/mm.xml |
+ ๐ณ๐ฆ Namibia | 106 | https://iptv-org.github.io/epg/guides/na.xml |
๐ณ๐ท Nauru | 67 | https://iptv-org.github.io/epg/guides/nr.xml |
๐ณ๐ต Nepal | 76 | https://iptv-org.github.io/epg/guides/np.xml |
๐ณ๐ฑ Netherlands | 265 | https://iptv-org.github.io/epg/guides/nl.xml |
๐ณ๐จ New Caledonia | 70 | https://iptv-org.github.io/epg/guides/nc.xml |
๐ณ๐ฟ New Zealand | 150 | https://iptv-org.github.io/epg/guides/nz.xml |
๐ณ๐ฎ Nicaragua | 199 | https://iptv-org.github.io/epg/guides/ni.xml |
- ๐ณ๐ช Niger | 116 | https://iptv-org.github.io/epg/guides/ne.xml |
- ๐ณ๐ฌ Nigeria | 142 | https://iptv-org.github.io/epg/guides/ng.xml |
+ ๐ณ๐ช Niger | 115 | https://iptv-org.github.io/epg/guides/ne.xml |
+ ๐ณ๐ฌ Nigeria | 140 | https://iptv-org.github.io/epg/guides/ng.xml |
๐ณ๐บ Niue | 67 | https://iptv-org.github.io/epg/guides/nu.xml |
๐ณ๐ซ Norfolk Island | 67 | https://iptv-org.github.io/epg/guides/nf.xml |
๐ฐ๐ต North Korea | 65 | https://iptv-org.github.io/epg/guides/kp.xml |
๐ฒ๐ฐ North Macedonia | 112 | https://iptv-org.github.io/epg/guides/mk.xml |
๐ฒ๐ต Northern Mariana Islands | 67 | https://iptv-org.github.io/epg/guides/mp.xml |
๐ณ๐ด Norway | 122 | https://iptv-org.github.io/epg/guides/no.xml |
- ๐ด๐ฒ Oman | 91 | https://iptv-org.github.io/epg/guides/om.xml |
+ ๐ด๐ฒ Oman | 89 | https://iptv-org.github.io/epg/guides/om.xml |
๐ต๐ฐ Pakistan | 76 | https://iptv-org.github.io/epg/guides/pk.xml |
๐ต๐ผ Palau | 67 | https://iptv-org.github.io/epg/guides/pw.xml |
- ๐ต๐ธ Palestine | 92 | https://iptv-org.github.io/epg/guides/ps.xml |
+ ๐ต๐ธ Palestine | 90 | https://iptv-org.github.io/epg/guides/ps.xml |
๐ต๐ฆ Panama | 202 | https://iptv-org.github.io/epg/guides/pa.xml |
๐ต๐ฌ Papua New Guinea | 67 | https://iptv-org.github.io/epg/guides/pg.xml |
- ๐ต๐พ Paraguay | 217 | https://iptv-org.github.io/epg/guides/py.xml |
+ ๐ต๐พ Paraguay | 218 | https://iptv-org.github.io/epg/guides/py.xml |
๐ต๐ช Peru | 233 | https://iptv-org.github.io/epg/guides/pe.xml |
- ๐ต๐ญ Philippines | 161 | https://iptv-org.github.io/epg/guides/ph.xml |
+ ๐ต๐ญ Philippines | 147 | https://iptv-org.github.io/epg/guides/ph.xml |
๐ต๐ณ Pitcairn Islands | 67 | https://iptv-org.github.io/epg/guides/pn.xml |
๐ต๐ฑ Poland | 265 | https://iptv-org.github.io/epg/guides/pl.xml |
- ๐ต๐น Portugal | 181 | https://iptv-org.github.io/epg/guides/pt.xml |
+ ๐ต๐น Portugal | 182 | https://iptv-org.github.io/epg/guides/pt.xml |
๐ต๐ท Puerto Rico | 196 | https://iptv-org.github.io/epg/guides/pr.xml |
- ๐ถ๐ฆ Qatar | 136 | https://iptv-org.github.io/epg/guides/qa.xml |
- ๐จ๐ฌ Republic of the Congo | 120 | https://iptv-org.github.io/epg/guides/cg.xml |
+ ๐ถ๐ฆ Qatar | 134 | https://iptv-org.github.io/epg/guides/qa.xml |
+ ๐จ๐ฌ Republic of the Congo | 119 | https://iptv-org.github.io/epg/guides/cg.xml |
๐ท๐ด Romania | 201 | https://iptv-org.github.io/epg/guides/ro.xml |
- ๐ท๐บ Russia | 327 | https://iptv-org.github.io/epg/guides/ru.xml |
- ๐ท๐ผ Rwanda | 123 | https://iptv-org.github.io/epg/guides/rw.xml |
- ๐ท๐ช Rรฉunion | 108 | https://iptv-org.github.io/epg/guides/re.xml |
+ ๐ท๐บ Russia | 325 | https://iptv-org.github.io/epg/guides/ru.xml |
+ ๐ท๐ผ Rwanda | 122 | https://iptv-org.github.io/epg/guides/rw.xml |
+ ๐ท๐ช Rรฉunion | 107 | https://iptv-org.github.io/epg/guides/re.xml |
๐ง๐ฑ Saint Barthรฉlemy | 83 | https://iptv-org.github.io/epg/guides/bl.xml |
- ๐ธ๐ญ Saint Helena | 100 | https://iptv-org.github.io/epg/guides/sh.xml |
+ ๐ธ๐ญ Saint Helena | 99 | https://iptv-org.github.io/epg/guides/sh.xml |
๐ฐ๐ณ Saint Kitts and Nevis | 68 | https://iptv-org.github.io/epg/guides/kn.xml |
๐ฑ๐จ Saint Lucia | 68 | https://iptv-org.github.io/epg/guides/lc.xml |
๐ฒ๐ซ Saint Martin | 83 | https://iptv-org.github.io/epg/guides/mf.xml |
@@ -207,49 +207,49 @@ To load a program guide, all you need to do is copy the link to one or more of t
๐ป๐จ Saint Vincent and the Grenadines | 68 | https://iptv-org.github.io/epg/guides/vc.xml |
๐ผ๐ธ Samoa | 67 | https://iptv-org.github.io/epg/guides/ws.xml |
๐ธ๐ฒ San Marino | 92 | https://iptv-org.github.io/epg/guides/sm.xml |
- ๐ธ๐ฆ Saudi Arabia | 109 | https://iptv-org.github.io/epg/guides/sa.xml |
- ๐ธ๐ณ Senegal | 126 | https://iptv-org.github.io/epg/guides/sn.xml |
+ ๐ธ๐ฆ Saudi Arabia | 107 | https://iptv-org.github.io/epg/guides/sa.xml |
+ ๐ธ๐ณ Senegal | 125 | https://iptv-org.github.io/epg/guides/sn.xml |
๐ท๐ธ Serbia | 310 | https://iptv-org.github.io/epg/guides/rs.xml |
- ๐ธ๐จ Seychelles | 113 | https://iptv-org.github.io/epg/guides/sc.xml |
- ๐ธ๐ฑ Sierra Leone | 106 | https://iptv-org.github.io/epg/guides/sl.xml |
+ ๐ธ๐จ Seychelles | 112 | https://iptv-org.github.io/epg/guides/sc.xml |
+ ๐ธ๐ฑ Sierra Leone | 105 | https://iptv-org.github.io/epg/guides/sl.xml |
๐ธ๐ฌ Singapore | 154 | https://iptv-org.github.io/epg/guides/sg.xml |
๐ธ๐ฝ Sint Maarten | 77 | https://iptv-org.github.io/epg/guides/sx.xml |
๐ธ๐ฐ Slovakia | 180 | https://iptv-org.github.io/epg/guides/sk.xml |
๐ธ๐ฎ Slovenia | 156 | https://iptv-org.github.io/epg/guides/si.xml |
๐ธ๐ง Solomon Islands | 67 | https://iptv-org.github.io/epg/guides/sb.xml |
- ๐ธ๐ด Somalia | 122 | https://iptv-org.github.io/epg/guides/so.xml |
+ ๐ธ๐ด Somalia | 121 | https://iptv-org.github.io/epg/guides/so.xml |
๐ฟ๐ฆ South Africa | 185 | https://iptv-org.github.io/epg/guides/za.xml |
๐ฌ๐ธ South Georgia and the South Sandwich Islands | 58 | https://iptv-org.github.io/epg/guides/gs.xml |
๐ฐ๐ท South Korea | 143 | https://iptv-org.github.io/epg/guides/kr.xml |
- ๐ธ๐ธ South Sudan | 106 | https://iptv-org.github.io/epg/guides/ss.xml |
+ ๐ธ๐ธ South Sudan | 105 | https://iptv-org.github.io/epg/guides/ss.xml |
๐ช๐ธ Spain | 253 | https://iptv-org.github.io/epg/guides/es.xml |
๐ฑ๐ฐ Sri Lanka | 73 | https://iptv-org.github.io/epg/guides/lk.xml |
- ๐ธ๐ฉ Sudan | 127 | https://iptv-org.github.io/epg/guides/sd.xml |
+ ๐ธ๐ฉ Sudan | 126 | https://iptv-org.github.io/epg/guides/sd.xml |
๐ธ๐ท Suriname | 62 | https://iptv-org.github.io/epg/guides/sr.xml |
๐ธ๐ฏ Svalbard and Jan Mayen | 56 | https://iptv-org.github.io/epg/guides/sj.xml |
- ๐ธ๐ฟ Swaziland | 106 | https://iptv-org.github.io/epg/guides/sz.xml |
- ๐ธ๐ช Sweden | 184 | https://iptv-org.github.io/epg/guides/se.xml |
- ๐จ๐ญ Switzerland | 240 | https://iptv-org.github.io/epg/guides/ch.xml |
- ๐ธ๐พ Syria | 93 | https://iptv-org.github.io/epg/guides/sy.xml |
- ๐ธ๐น Sรฃo Tomรฉ and Prรญncipe | 113 | https://iptv-org.github.io/epg/guides/st.xml |
+ ๐ธ๐ฟ Swaziland | 105 | https://iptv-org.github.io/epg/guides/sz.xml |
+ ๐ธ๐ช Sweden | 183 | https://iptv-org.github.io/epg/guides/se.xml |
+ ๐จ๐ญ Switzerland | 234 | https://iptv-org.github.io/epg/guides/ch.xml |
+ ๐ธ๐พ Syria | 91 | https://iptv-org.github.io/epg/guides/sy.xml |
+ ๐ธ๐น Sรฃo Tomรฉ and Prรญncipe | 112 | https://iptv-org.github.io/epg/guides/st.xml |
๐น๐ผ Taiwan | 72 | https://iptv-org.github.io/epg/guides/tw.xml |
๐น๐ฏ Tajikistan | 64 | https://iptv-org.github.io/epg/guides/tj.xml |
- ๐น๐ฟ Tanzania | 110 | https://iptv-org.github.io/epg/guides/tz.xml |
- ๐น๐ญ Thailand | 164 | https://iptv-org.github.io/epg/guides/th.xml |
- ๐น๐ฌ Togo | 117 | https://iptv-org.github.io/epg/guides/tg.xml |
+ ๐น๐ฟ Tanzania | 109 | https://iptv-org.github.io/epg/guides/tz.xml |
+ ๐น๐ญ Thailand | 167 | https://iptv-org.github.io/epg/guides/th.xml |
+ ๐น๐ฌ Togo | 116 | https://iptv-org.github.io/epg/guides/tg.xml |
๐น๐ฐ Tokelau | 67 | https://iptv-org.github.io/epg/guides/tk.xml |
๐น๐ด Tonga | 67 | https://iptv-org.github.io/epg/guides/to.xml |
๐น๐น Trinidad and Tobago | 68 | https://iptv-org.github.io/epg/guides/tt.xml |
- ๐น๐ณ Tunisia | 125 | https://iptv-org.github.io/epg/guides/tn.xml |
- ๐น๐ท Turkey | 250 | https://iptv-org.github.io/epg/guides/tr.xml |
+ ๐น๐ณ Tunisia | 124 | https://iptv-org.github.io/epg/guides/tn.xml |
+ ๐น๐ท Turkey | 247 | https://iptv-org.github.io/epg/guides/tr.xml |
๐น๐ฒ Turkmenistan | 60 | https://iptv-org.github.io/epg/guides/tm.xml |
๐น๐จ Turks and Caicos Islands | 68 | https://iptv-org.github.io/epg/guides/tc.xml |
๐น๐ป Tuvalu | 67 | https://iptv-org.github.io/epg/guides/tv.xml |
๐บ๐ฒ U.S. Minor Outlying Islands | 56 | https://iptv-org.github.io/epg/guides/um.xml |
๐ป๐ฎ U.S. Virgin Islands | 68 | https://iptv-org.github.io/epg/guides/vi.xml |
- ๐บ๐ฌ Uganda | 107 | https://iptv-org.github.io/epg/guides/ug.xml |
+ ๐บ๐ฌ Uganda | 106 | https://iptv-org.github.io/epg/guides/ug.xml |
๐บ๐ฆ Ukraine | 91 | https://iptv-org.github.io/epg/guides/ua.xml |
- ๐ฆ๐ช United Arab Emirates | 110 | https://iptv-org.github.io/epg/guides/ae.xml |
+ ๐ฆ๐ช United Arab Emirates | 105 | https://iptv-org.github.io/epg/guides/ae.xml |
๐ฌ๐ง United Kingdom | 423 | https://iptv-org.github.io/epg/guides/uk.xml |
๐บ๐ธ United States | 1400 | https://iptv-org.github.io/epg/guides/us.xml |
๐บ๐พ Uruguay | 225 | https://iptv-org.github.io/epg/guides/uy.xml |
@@ -257,12 +257,12 @@ To load a program guide, all you need to do is copy the link to one or more of t
๐ป๐บ Vanuatu | 69 | https://iptv-org.github.io/epg/guides/vu.xml |
๐ป๐ฆ Vatican City | 92 | https://iptv-org.github.io/epg/guides/va.xml |
๐ป๐ช Venezuela | 214 | https://iptv-org.github.io/epg/guides/ve.xml |
- ๐ป๐ณ Vietnam | 111 | https://iptv-org.github.io/epg/guides/vn.xml |
+ ๐ป๐ณ Vietnam | 113 | https://iptv-org.github.io/epg/guides/vn.xml |
๐ผ๐ซ Wallis and Futuna | 69 | https://iptv-org.github.io/epg/guides/wf.xml |
- ๐ช๐ญ Western Sahara | 111 | https://iptv-org.github.io/epg/guides/eh.xml |
- ๐พ๐ช Yemen | 91 | https://iptv-org.github.io/epg/guides/ye.xml |
- ๐ฟ๐ฒ Zambia | 110 | https://iptv-org.github.io/epg/guides/zm.xml |
- ๐ฟ๐ผ Zimbabwe | 106 | https://iptv-org.github.io/epg/guides/zw.xml |
+ ๐ช๐ญ Western Sahara | 110 | https://iptv-org.github.io/epg/guides/eh.xml |
+ ๐พ๐ช Yemen | 89 | https://iptv-org.github.io/epg/guides/ye.xml |
+ ๐ฟ๐ฒ Zambia | 109 | https://iptv-org.github.io/epg/guides/zm.xml |
+ ๐ฟ๐ผ Zimbabwe | 105 | https://iptv-org.github.io/epg/guides/zw.xml |
๐ฆ๐ฝ ร
land | 63 | https://iptv-org.github.io/epg/guides/ax.xml |
diff --git a/package.json b/package.json
index e388af72..f54438de 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,6 @@
"programs:load": "node scripts/commands/programs/load.js",
"programs:save": "node scripts/commands/programs/save.js",
"guides:update": "NODE_OPTIONS=--max-old-space-size=5120 node scripts/commands/guides/update.js",
- "guides:update_legacy": "node scripts/commands/guides/update_legacy.js",
"api:load": "./scripts/commands/api/load.sh",
"api:update": "node scripts/commands/api/update.js",
"readme:update": "node scripts/commands/readme/update.js",
diff --git a/scripts/commands/api/load.sh b/scripts/commands/api/load.sh
index 00b0a62a..9a7e6621 100755
--- a/scripts/commands/api/load.sh
+++ b/scripts/commands/api/load.sh
@@ -1,7 +1,7 @@
#!/bin/bash
-mkdir -p scripts/data
-curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json
-curl -L -o scripts/data/countries.json https://iptv-org.github.io/api/countries.json
-curl -L -o scripts/data/regions.json https://iptv-org.github.io/api/regions.json
+mkdir -p scripts/data
+curl -L -o scripts/data/channels.json https://iptv-org.github.io/api/channels.json
+curl -L -o scripts/data/countries.json https://iptv-org.github.io/api/countries.json
+curl -L -o scripts/data/regions.json https://iptv-org.github.io/api/regions.json
curl -L -o scripts/data/subdivisions.json https://iptv-org.github.io/api/subdivisions.json
\ No newline at end of file
diff --git a/scripts/commands/guides/update.js b/scripts/commands/guides/update.js
index fb7e1a98..e4c9d797 100644
--- a/scripts/commands/guides/update.js
+++ b/scripts/commands/guides/update.js
@@ -12,14 +12,18 @@ const logPath = `${LOGS_DIR}/guides/update.log`
let api_channels = []
let channels_dic = {}
let db_programs = []
+let guides = []
async function main() {
logger.info(`starting...`)
- logger.info('loading API data...')
+ logger.info('loading data/countries.json...')
await api.countries.load()
+ logger.info('loading data/channels.json...')
await api.channels.load()
+ logger.info('loading data/regions.json...')
await api.regions.load()
+ logger.info('loading data/subdivisions.json...')
await api.subdivisions.load()
api_channels = await api.channels.all()
@@ -49,6 +53,11 @@ async function main() {
await generateByCountry()
await generateBySource()
+
+ logger.info(`creating ${logPath}...`)
+ await file.create(logPath, guides.map(g => JSON.stringify(g)).join('\r\n'))
+
+ await makeReport()
}
main()
@@ -66,15 +75,13 @@ async function generateBySource() {
let { channels } = await save(filename, programs)
for (let channel of channels) {
- let result = {
+ guides.push({
groupedBy: 'site+lang',
lang: channel.lang,
site: channel.site,
channel: channel.id,
filename
- }
-
- await file.append(logPath, JSON.stringify(result) + '\r\n')
+ })
}
}
}
@@ -132,16 +139,14 @@ async function generateByCountry() {
let { channels } = await save(filename, programs)
for (let channel of channels) {
- let result = {
+ guides.push({
groupedBy: 'country',
country: country.code,
lang: channel.lang,
site: channel.site,
channel: channel.id,
filename
- }
-
- await file.append(logPath, JSON.stringify(result) + '\r\n')
+ })
}
}
}
@@ -222,3 +227,20 @@ function calcScore(program) {
return score
}
+
+async function makeReport() {
+ const errors = []
+
+ let programs = _.uniqBy(db_programs, p => p.site + p.channel)
+ for (let program of programs) {
+ if (!guides.find(g => g.channel === program.channel)) {
+ const channel = await api.channels.find({ id: program.channel })
+ errors.push({ type: 'no_guide', ...program, ...channel })
+ }
+ }
+
+ console.log()
+ logger.info(`report:`)
+ console.table(errors, ['type', 'site', 'lang', 'channel', 'broadcast_area', 'languages'])
+ logger.error(`found ${errors.length} error(s)`)
+}
diff --git a/tests/__data__/expected/logs/guides/update.log b/tests/__data__/expected/logs/guides/update.log
index ffdec449..98c6a2f7 100644
--- a/tests/__data__/expected/logs/guides/update.log
+++ b/tests/__data__/expected/logs/guides/update.log
@@ -2,4 +2,4 @@
{"groupedBy":"country","country":"UK","lang":"en","site":"virginmedia.com","channel":"BBCNews.uk","filename":"uk"}
{"groupedBy":"site+lang","lang":"da","site":"allente.se","channel":"6eren.dk","filename":"allente.se/da"}
{"groupedBy":"site+lang","lang":"en","site":"virginmedia.com","channel":"BBCNews.uk","filename":"virginmedia.com/en"}
-{"groupedBy":"site+lang","lang":"en","site":"sky.com","channel":"BBCNews.uk","filename":"sky.com/en"}
+{"groupedBy":"site+lang","lang":"en","site":"sky.com","channel":"BBCNews.uk","filename":"sky.com/en"}
\ No newline at end of file
diff --git a/tests/__data__/input/data/channels.json b/tests/__data__/input/data/channels.json
index 46da2402..28255c4a 100644
--- a/tests/__data__/input/data/channels.json
+++ b/tests/__data__/input/data/channels.json
@@ -53,5 +53,22 @@
"logo": "https://rndcdn.dstv.com/dstvcms/2020/08/31/M-Net_Movies_2_Logo_4-3_lightbackground_xlrg.png"
},
{"id":"6eren.dk","name":"6'eren","alt_names":[],"network":null,"owners":["Warner Bros. Discovery EMEA"],"country":"DK","subdivision":null,"city":null,"broadcast_area":["c/DK"],"languages":["dan"],"categories":[],"is_nsfw":false,"launched":"2009-01-01","closed":null,"replaced_by":null,"website":"http://www.6-eren.dk/","logo":"https://upload.wikimedia.org/wikipedia/commons/6/64/6%27eren_2015.png"},
- {"id":"BBCNews.uk","name":"BBC News","alt_names":[],"network":null,"owners":[],"country":"UK","subdivision":null,"city":null,"broadcast_area":["c/UK"],"languages":["eng"],"categories":["news"],"is_nsfw":false,"launched":null,"closed":null,"replaced_by":null,"website":"http://news.bbc.co.uk/","logo":"https://i.imgur.com/rPzH88J.png"}
+ {"id":"BBCNews.uk","name":"BBC News","alt_names":[],"network":null,"owners":[],"country":"UK","subdivision":null,"city":null,"broadcast_area":["c/UK"],"languages":["eng"],"categories":["news"],"is_nsfw":false,"launched":null,"closed":null,"replaced_by":null,"website":"http://news.bbc.co.uk/","logo":"https://i.imgur.com/rPzH88J.png"},
+ {
+ "id": "CNN.us",
+ "name": "CNN",
+ "network": null,
+ "country": "US",
+ "subdivision": null,
+ "city": null,
+ "broadcast_area": [
+ "c/US"
+ ],
+ "languages": [
+ "eng"
+ ],
+ "categories": [],
+ "is_nsfw": false,
+ "logo": "https://www.directv.com/images/logos/channels/dark/large/579.png"
+ }
]
\ No newline at end of file
diff --git a/tests/__data__/input/database/update-guides/programs.db b/tests/__data__/input/database/update-guides/programs.db
index 5e78bd6b..e72a3252 100644
--- a/tests/__data__/input/database/update-guides/programs.db
+++ b/tests/__data__/input/database/update-guides/programs.db
@@ -1,4 +1,5 @@
{"site":"allente.se","channel":"6eren.dk","titles":[{"value":"Diners, Drive-Ins and Dives","lang":"da"}],"sub_titles":[],"descriptions":[{"value":"Underholdning","lang":"da"}],"icon":{"src":"https://viasatps.api.comspace.se/PS/channeldate/image/viasat.ps/487/2022-10-24/se.cs.6eren.event.B_0254194276971024040000.jpg?size=2560x1440"},"episodeNumbers":[{"system":"xmltv_ns","value":"23.5.0/1"},{"system":"onscreen","value":"S24E06"}],"date":null,"start":1666584000000,"stop":1666585500000,"urls":[],"ratings":[],"categories":[{"value":"series","lang":"da"}],"directors":[],"actors":[],"writers":[],"adapters":[],"producers":[],"composers":[],"editors":[],"presenters":[],"commentators":[],"guests":[],"_qid":"f6cxSM73LfZ8TdYz","_id":"HxsrTRTFj1z05TAK"}
{"site":"allente.se","channel":"6eren.dk","titles":[{"value":"Diners, Drive-Ins and Dives","lang":"da"}],"sub_titles":[],"descriptions":[{"value":"Underholdning","lang":"da"}],"icon":{"src":"https://viasatps.api.comspace.se/PS/channeldate/image/viasat.ps/487/2022-10-24/se.cs.6eren.event.B_0254194276971024040000.jpg?size=2560x1440"},"episodeNumbers":[{"system":"xmltv_ns","value":"23.5.0/1"},{"system":"onscreen","value":"S24E06"}],"date":null,"start":1666584000000,"stop":1666585500000,"urls":[],"ratings":[],"categories":[{"value":"series","lang":"da"}],"directors":[],"actors":[],"writers":[],"adapters":[],"producers":[],"composers":[],"editors":[],"presenters":[],"commentators":[],"guests":[],"_qid":"f6cxTM73LfZ8TdYz","_id":"HxsrBRTFj1z05TAK"}
{"site":"virginmedia.com","channel":"BBCNews.uk","titles":[{"value":"BBC News at One","lang":"en"}],"sub_titles":[],"descriptions":[{"value":"The latest national and international news, followed by weather.","lang":"en"}],"icon":{"src":""},"episodeNumbers":[{"system":"xmltv_ns","value":"96839999.145799123.0/1"},{"system":"onscreen","value":"S96840000E145799124"}],"date":null,"start":1666872000000,"stop":1666873800000,"urls":[],"ratings":[],"categories":[{"value":"News","lang":"en"}],"directors":[],"actors":[],"writers":[],"adapters":[],"producers":[],"composers":[],"editors":[],"presenters":[],"commentators":[],"guests":[],"_qid":"lNXh3lBnb4n1DBzs","_id":"quKCInjZV98xFUAf"}
-{"site":"sky.com","channel":"BBCNews.uk","titles":[{"value":"BBC News at One","lang":"en"}],"sub_titles":[],"descriptions":[{"value":"The latest national and international news from the BBC. [S,SL]","lang":"en"}],"icon":{"src":"http://epgstatic.sky.com/epgdata/1.0/paimage/46/1/lisa/5.2.2/linear/channel/ca247bc8-6be0-48f9-88d1-865f87f7680e/2011"},"episodeNumbers":[],"date":null,"start":1666872000000,"stop":1666873800000,"urls":[],"ratings":[],"categories":[],"directors":[],"actors":[],"writers":[],"adapters":[],"producers":[],"composers":[],"editors":[],"presenters":[],"commentators":[],"guests":[],"_qid":"36duI92slofEXlSa","_id":"ryzed0Bqda1QtE7i"}
\ No newline at end of file
+{"site":"sky.com","channel":"BBCNews.uk","titles":[{"value":"BBC News at One","lang":"en"}],"sub_titles":[],"descriptions":[{"value":"The latest national and international news from the BBC. [S,SL]","lang":"en"}],"icon":{"src":"http://epgstatic.sky.com/epgdata/1.0/paimage/46/1/lisa/5.2.2/linear/channel/ca247bc8-6be0-48f9-88d1-865f87f7680e/2011"},"episodeNumbers":[],"date":null,"start":1666872000000,"stop":1666873800000,"urls":[],"ratings":[],"categories":[],"directors":[],"actors":[],"writers":[],"adapters":[],"producers":[],"composers":[],"editors":[],"presenters":[],"commentators":[],"guests":[],"_qid":"36duI92slofEXlSa","_id":"ryzed0Bqda1QtE7i"}
+{"site":"sky.com","channel":"CNN.us","titles":[{"value":"French title","lang":"fr"}],"sub_titles":[],"descriptions":[],"icon":{},"episodeNumbers":[],"date":null,"start":1666872000000,"stop":1666873800000,"urls":[],"ratings":[],"categories":[],"directors":[],"actors":[],"writers":[],"adapters":[],"producers":[],"composers":[],"editors":[],"presenters":[],"commentators":[],"guests":[],"_qid":"37duI92slofEXlSa","_id":"rxzed0Bqda1QtE7i"}
\ No newline at end of file
diff --git a/tests/commands/guides/update.test.js b/tests/commands/guides/update.test.js
index fe47a2c9..eac2e69c 100644
--- a/tests/commands/guides/update.test.js
+++ b/tests/commands/guides/update.test.js
@@ -9,14 +9,44 @@ beforeEach(() => {
'tests/__data__/input/database/update-guides/programs.db',
'tests/__data__/output/programs.db'
)
+})
+it('can generate /guides', () => {
const stdout = execSync(
'DB_DIR=tests/__data__/output LOGS_DIR=tests/__data__/output/logs DATA_DIR=tests/__data__/input/data PUBLIC_DIR=tests/__data__/output CURR_DATE=2022-10-20 npm run guides:update',
{ encoding: 'utf8' }
)
-})
-it('can generate /guides', () => {
+ expect(stdout).toBe(
+ `
+> guides:update
+> NODE_OPTIONS=--max-old-space-size=5120 node scripts/commands/guides/update.js
+
+starting...
+loading data/countries.json...
+loading data/channels.json...
+loading data/regions.json...
+loading data/subdivisions.json...
+loading database/programs.db...
+found 5 programs
+creating tests/__data__/output/guides/dk.xml...
+creating tests/__data__/output/guides/dk.xml.gz...
+creating tests/__data__/output/guides/dk.json...
+creating tests/__data__/output/guides/uk.xml...
+creating tests/__data__/output/guides/uk.xml.gz...
+creating tests/__data__/output/guides/uk.json...
+creating tests/__data__/output/logs/guides/update.log...
+
+report:
+โโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโ
+โ (index) โ type โ site โ lang โ channel โ broadcast_area โ languages โ
+โโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโค
+โ 0 โ 'no_guide' โ 'sky.com' โ 'fr' โ 'CNN.us' โ [ 'c/US' ] โ [ 'eng' ] โ
+โโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโ
+found 1 error(s)
+`
+ )
+
const uncompressed = glob
.sync('tests/__data__/expected/guides/*.xml')
.map(f => f.replace('tests/__data__/expected/', ''))