Merge branch 'master' into add-arianaafgtv-com

This commit is contained in:
Aleksandr Statciuk 2021-09-23 18:11:09 +03:00
commit cadbee3dd6
12 changed files with 6494 additions and 6206 deletions

View file

@ -14,6 +14,7 @@ jobs:
[ [
andorradifusio.ad, andorradifusio.ad,
arianaafgtv.com, arianaafgtv.com,
arianatelevision.com,
astro.com.my, astro.com.my,
comteco.com.bo, comteco.com.bo,
cosmote.gr, cosmote.gr,
@ -33,12 +34,12 @@ jobs:
programme-tv.net, programme-tv.net,
programtv.onet.pl, programtv.onet.pl,
telkussa.fi, telkussa.fi,
tv.cctv.com,
tv.lv, tv.lv,
tv.yandex.ru, tv.yandex.ru,
tvgid.ua, tvgid.ua,
tvguide.com, tvguide.com,
tvprofil.com, tvprofil.com,
tvtv.ca,
tvtv.us, tvtv.us,
vidio.com, vidio.com,
znbc.co.zm znbc.co.zm

View file

@ -18,6 +18,7 @@ To load a program guide, all you need to do is copy the link to one of the guide
<tr><th align="left">Country</th><th align="left">EPG</th></tr> <tr><th align="left">Country</th><th align="left">EPG</th></tr>
</thead> </thead>
<tbody> <tbody>
<tr><td align="left" nowrap>🇦🇫 Afghanistan</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/arianatelevision.com.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇩🇿 Algeria</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/elcinema.com.guide.xml</code></td></tr> <tr><td align="left" nowrap>🇩🇿 Algeria</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/elcinema.com.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇦🇱 Albania</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml</code></td></tr> <tr><td align="left" nowrap>🇦🇱 Albania</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇦🇩 Andorra</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/andorradifusio.ad.guide.xml</code></td></tr> <tr><td align="left" nowrap>🇦🇩 Andorra</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/andorradifusio.ad.guide.xml</code></td></tr>
@ -28,8 +29,9 @@ To load a program guide, all you need to do is copy the link to one of the guide
<tr><td align="left" nowrap>🇧🇦 Bosnia</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml</code></td></tr> <tr><td align="left" nowrap>🇧🇦 Bosnia</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇧🇷 Brasil</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/mi.tv.guide.xml</code></td></tr> <tr><td align="left" nowrap>🇧🇷 Brasil</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/mi.tv.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇧🇬 Bulgaria</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml</code></td></tr> <tr><td align="left" nowrap>🇧🇬 Bulgaria</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tvprofil.com.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇨🇦 Canada</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tvtv.ca.guide.xml</code></td></tr> <tr><td align="left" nowrap>🇨🇦 Canada</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tvtv.us.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇨🇱 Chile</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/mi.tv.guide.xml</code></td></tr> <tr><td align="left" nowrap>🇨🇱 Chile</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/mi.tv.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇨🇳 China</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/tv.cctv.com.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇨🇴 Colombia</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/mi.tv.guide.xml</code></td></tr> <tr><td align="left" nowrap>🇨🇴 Colombia</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/mi.tv.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇭🇷 Croatia</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/maxtv.hrvatskitelekom.hr.guide.xml</code></td></tr> <tr><td align="left" nowrap>🇭🇷 Croatia</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/maxtv.hrvatskitelekom.hr.guide.xml</code></td></tr>
<tr><td align="left" nowrap>🇨🇿 Czechia</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/m.tv.sms.cz.guide.xml</code></td></tr> <tr><td align="left" nowrap>🇨🇿 Czechia</td><td align="left" nowrap><code>https://iptv-org.github.io/epg/guides/m.tv.sms.cz.guide.xml</code></td></tr>

522
package-lock.json generated
View file

@ -10,16 +10,76 @@
"axios": "^0.21.1", "axios": "^0.21.1",
"cheerio": "^1.0.0-rc.10", "cheerio": "^1.0.0-rc.10",
"dayjs": "^1.10.4", "dayjs": "^1.10.4",
"epg-grabber": "^0.6.6", "epg-grabber": "^0.9.1",
"epg-parser": "^0.1.3", "epg-parser": "^0.1.3",
"form-data": "^4.0.0", "form-data": "^4.0.0",
"html-to-text": "^7.0.0", "html-to-text": "^7.0.0",
"iconv-lite": "^0.4.24", "iconv-lite": "^0.4.24",
"jsdom": "^16.5.0", "jsdom": "^16.5.0",
"parse-duration": "^1.0.0", "parse-duration": "^1.0.0",
"tabletojson": "^2.0.7",
"xml-js": "^1.6.11" "xml-js": "^1.6.11"
} }
}, },
"node_modules/@sindresorhus/is": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz",
"integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sindresorhus/is?sponsor=1"
}
},
"node_modules/@szmarczak/http-timer": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
"integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
"dependencies": {
"defer-to-connect": "^2.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/@types/cacheable-request": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz",
"integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==",
"dependencies": {
"@types/http-cache-semantics": "*",
"@types/keyv": "*",
"@types/node": "*",
"@types/responselike": "*"
}
},
"node_modules/@types/http-cache-semantics": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
"integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ=="
},
"node_modules/@types/keyv": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz",
"integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/node": {
"version": "16.9.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.6.tgz",
"integrity": "sha512-YHUZhBOMTM3mjFkXVcK+WwAcYmyhe1wL4lfqNtzI0b3qAy7yuSetnM7QJazgE5PFmgVTNGiLOgRFfJMqW7XpSQ=="
},
"node_modules/@types/responselike": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
"integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/abab": { "node_modules/abab": {
"version": "2.0.5", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",
@ -161,6 +221,31 @@
"resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
"integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
}, },
"node_modules/cacheable-lookup": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
"integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==",
"engines": {
"node": ">=10.6.0"
}
},
"node_modules/cacheable-request": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz",
"integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==",
"dependencies": {
"clone-response": "^1.0.2",
"get-stream": "^5.1.0",
"http-cache-semantics": "^4.0.0",
"keyv": "^4.0.0",
"lowercase-keys": "^2.0.0",
"normalize-url": "^6.0.1",
"responselike": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/caseless": { "node_modules/caseless": {
"version": "0.12.0", "version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
@ -201,6 +286,14 @@
"url": "https://github.com/sponsors/fb55" "url": "https://github.com/sponsors/fb55"
} }
}, },
"node_modules/clone-response": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
"integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
"dependencies": {
"mimic-response": "^1.0.0"
}
},
"node_modules/combined-stream": { "node_modules/combined-stream": {
"version": "1.0.8", "version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@ -311,6 +404,31 @@
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz",
"integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==" "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw=="
}, },
"node_modules/decompress-response": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
"dependencies": {
"mimic-response": "^3.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/decompress-response/node_modules/mimic-response": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/deep-is": { "node_modules/deep-is": {
"version": "0.1.3", "version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
@ -324,6 +442,14 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/defer-to-connect": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
"integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
"engines": {
"node": ">=10"
}
},
"node_modules/delayed-stream": { "node_modules/delayed-stream": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@ -411,15 +537,23 @@
"safer-buffer": "^2.1.0" "safer-buffer": "^2.1.0"
} }
}, },
"node_modules/end-of-stream": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"dependencies": {
"once": "^1.4.0"
}
},
"node_modules/entities": { "node_modules/entities": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
"integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w=="
}, },
"node_modules/epg-grabber": { "node_modules/epg-grabber": {
"version": "0.6.6", "version": "0.9.1",
"resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.6.6.tgz", "resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.9.1.tgz",
"integrity": "sha512-EWTEIczzDPWywtDSLePtmBHpSphNHq2DJbe3OhQM8smaKBprAFtlZzpV+OrQY8aWk2UZsYAMNegtvrrD02IsNw==", "integrity": "sha512-SogskTCvepDqe+NwfF5+88Rig5irs32pSxTnkovRrOwCY9ItoFynQNwV1UvxwMe94yGwF4l9+205d00ZwACojg==",
"dependencies": { "dependencies": {
"axios": "^0.21.1", "axios": "^0.21.1",
"axios-cookiejar-support": "^1.0.1", "axios-cookiejar-support": "^1.0.1",
@ -503,9 +637,7 @@
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
"engines": [ "engines": ["node >=0.6.0"]
"node >=0.6.0"
]
}, },
"node_modules/fast-deep-equal": { "node_modules/fast-deep-equal": {
"version": "3.1.3", "version": "3.1.3",
@ -556,6 +688,20 @@
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
}, },
"node_modules/get-stream": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
"dependencies": {
"pump": "^3.0.0"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/getpass": { "node_modules/getpass": {
"version": "0.1.7", "version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
@ -580,6 +726,30 @@
"node": "*" "node": "*"
} }
}, },
"node_modules/got": {
"version": "11.8.2",
"resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz",
"integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==",
"dependencies": {
"@sindresorhus/is": "^4.0.0",
"@szmarczak/http-timer": "^4.0.5",
"@types/cacheable-request": "^6.0.1",
"@types/responselike": "^1.0.0",
"cacheable-lookup": "^5.0.3",
"cacheable-request": "^7.0.1",
"decompress-response": "^6.0.0",
"http2-wrapper": "^1.0.0-beta.5.2",
"lowercase-keys": "^2.0.0",
"p-cancelable": "^2.0.0",
"responselike": "^2.0.0"
},
"engines": {
"node": ">=10.19.0"
},
"funding": {
"url": "https://github.com/sindresorhus/got?sponsor=1"
}
},
"node_modules/har-schema": { "node_modules/har-schema": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
@ -654,6 +824,11 @@
"entities": "^2.0.0" "entities": "^2.0.0"
} }
}, },
"node_modules/http-cache-semantics": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
},
"node_modules/http-signature": { "node_modules/http-signature": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@ -668,6 +843,18 @@
"npm": ">=1.3.7" "npm": ">=1.3.7"
} }
}, },
"node_modules/http2-wrapper": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
"integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==",
"dependencies": {
"quick-lru": "^5.1.1",
"resolve-alpn": "^1.0.0"
},
"engines": {
"node": ">=10.19.0"
}
},
"node_modules/iconv-lite": { "node_modules/iconv-lite": {
"version": "0.4.24", "version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@ -757,6 +944,11 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/json-buffer": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
},
"node_modules/json-schema": { "node_modules/json-schema": {
"version": "0.2.3", "version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
@ -776,9 +968,7 @@
"version": "1.4.1", "version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
"engines": [ "engines": ["node >=0.6.0"],
"node >=0.6.0"
],
"dependencies": { "dependencies": {
"assert-plus": "1.0.0", "assert-plus": "1.0.0",
"extsprintf": "1.3.0", "extsprintf": "1.3.0",
@ -786,6 +976,14 @@
"verror": "1.10.0" "verror": "1.10.0"
} }
}, },
"node_modules/keyv": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz",
"integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==",
"dependencies": {
"json-buffer": "3.0.1"
}
},
"node_modules/levn": { "node_modules/levn": {
"version": "0.3.0", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
@ -813,6 +1011,14 @@
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
"integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
}, },
"node_modules/lowercase-keys": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
"integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
"engines": {
"node": ">=8"
}
},
"node_modules/mime-db": { "node_modules/mime-db": {
"version": "1.46.0", "version": "1.46.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz",
@ -832,6 +1038,14 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/mimic-response": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
"engines": {
"node": ">=4"
}
},
"node_modules/minimatch": { "node_modules/minimatch": {
"version": "3.0.4", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@ -848,6 +1062,17 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
}, },
"node_modules/normalize-url": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
"integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/nth-check": { "node_modules/nth-check": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz",
@ -896,6 +1121,14 @@
"node": ">= 0.8.0" "node": ">= 0.8.0"
} }
}, },
"node_modules/p-cancelable": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
"integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
"engines": {
"node": ">=8"
}
},
"node_modules/parse-duration": { "node_modules/parse-duration": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.0.tgz", "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.0.tgz",
@ -948,6 +1181,15 @@
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
"integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
}, },
"node_modules/pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"dependencies": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
}
},
"node_modules/punycode": { "node_modules/punycode": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
@ -964,6 +1206,17 @@
"node": ">=0.6" "node": ">=0.6"
} }
}, },
"node_modules/quick-lru": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
"integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/request": { "node_modules/request": {
"version": "2.88.2", "version": "2.88.2",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
@ -1055,6 +1308,19 @@
"node": ">=0.8" "node": ">=0.8"
} }
}, },
"node_modules/resolve-alpn": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
"integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="
},
"node_modules/responselike": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz",
"integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==",
"dependencies": {
"lowercase-keys": "^2.0.0"
}
},
"node_modules/safe-buffer": { "node_modules/safe-buffer": {
"version": "5.2.1", "version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@ -1122,6 +1388,18 @@
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
}, },
"node_modules/tabletojson": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/tabletojson/-/tabletojson-2.0.7.tgz",
"integrity": "sha512-rnt4Wz5IdnjzIUk4WIeFGdH3G3zRUlhQ9rc+d7e+iGbcVeJeay+8mRScazptoZG+ls1bX82kSuns9yVsMx5DGg==",
"dependencies": {
"cheerio": "^1.0.0-rc.10",
"got": "^11.8.2"
},
"engines": {
"node": "*"
}
},
"node_modules/tough-cookie": { "node_modules/tough-cookie": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
@ -1206,9 +1484,7 @@
"version": "1.10.0", "version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"engines": [ "engines": ["node >=0.6.0"],
"node >=0.6.0"
],
"dependencies": { "dependencies": {
"assert-plus": "^1.0.0", "assert-plus": "^1.0.0",
"core-util-is": "1.0.2", "core-util-is": "1.0.2",
@ -1312,6 +1588,56 @@
} }
}, },
"dependencies": { "dependencies": {
"@sindresorhus/is": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz",
"integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw=="
},
"@szmarczak/http-timer": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
"integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
"requires": {
"defer-to-connect": "^2.0.0"
}
},
"@types/cacheable-request": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz",
"integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==",
"requires": {
"@types/http-cache-semantics": "*",
"@types/keyv": "*",
"@types/node": "*",
"@types/responselike": "*"
}
},
"@types/http-cache-semantics": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
"integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ=="
},
"@types/keyv": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz",
"integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==",
"requires": {
"@types/node": "*"
}
},
"@types/node": {
"version": "16.9.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.6.tgz",
"integrity": "sha512-YHUZhBOMTM3mjFkXVcK+WwAcYmyhe1wL4lfqNtzI0b3qAy7yuSetnM7QJazgE5PFmgVTNGiLOgRFfJMqW7XpSQ=="
},
"@types/responselike": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
"integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==",
"requires": {
"@types/node": "*"
}
},
"abab": { "abab": {
"version": "2.0.5", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",
@ -1431,6 +1757,25 @@
"resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
"integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
}, },
"cacheable-lookup": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
"integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA=="
},
"cacheable-request": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz",
"integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==",
"requires": {
"clone-response": "^1.0.2",
"get-stream": "^5.1.0",
"http-cache-semantics": "^4.0.0",
"keyv": "^4.0.0",
"lowercase-keys": "^2.0.0",
"normalize-url": "^6.0.1",
"responselike": "^2.0.0"
}
},
"caseless": { "caseless": {
"version": "0.12.0", "version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
@ -1462,6 +1807,14 @@
"domutils": "^2.7.0" "domutils": "^2.7.0"
} }
}, },
"clone-response": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
"integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
"requires": {
"mimic-response": "^1.0.0"
}
},
"combined-stream": { "combined-stream": {
"version": "1.0.8", "version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@ -1550,6 +1903,21 @@
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz",
"integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==" "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw=="
}, },
"decompress-response": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
"requires": {
"mimic-response": "^3.1.0"
},
"dependencies": {
"mimic-response": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
}
}
},
"deep-is": { "deep-is": {
"version": "0.1.3", "version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
@ -1560,6 +1928,11 @@
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
"integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg=="
}, },
"defer-to-connect": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
"integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg=="
},
"delayed-stream": { "delayed-stream": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@ -1622,15 +1995,23 @@
"safer-buffer": "^2.1.0" "safer-buffer": "^2.1.0"
} }
}, },
"end-of-stream": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"requires": {
"once": "^1.4.0"
}
},
"entities": { "entities": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
"integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w=="
}, },
"epg-grabber": { "epg-grabber": {
"version": "0.6.6", "version": "0.9.1",
"resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.6.6.tgz", "resolved": "https://registry.npmjs.org/epg-grabber/-/epg-grabber-0.9.1.tgz",
"integrity": "sha512-EWTEIczzDPWywtDSLePtmBHpSphNHq2DJbe3OhQM8smaKBprAFtlZzpV+OrQY8aWk2UZsYAMNegtvrrD02IsNw==", "integrity": "sha512-SogskTCvepDqe+NwfF5+88Rig5irs32pSxTnkovRrOwCY9ItoFynQNwV1UvxwMe94yGwF4l9+205d00ZwACojg==",
"requires": { "requires": {
"axios": "^0.21.1", "axios": "^0.21.1",
"axios-cookiejar-support": "^1.0.1", "axios-cookiejar-support": "^1.0.1",
@ -1727,6 +2108,14 @@
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
}, },
"get-stream": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
"requires": {
"pump": "^3.0.0"
}
},
"getpass": { "getpass": {
"version": "0.1.7", "version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
@ -1748,6 +2137,24 @@
"path-is-absolute": "^1.0.0" "path-is-absolute": "^1.0.0"
} }
}, },
"got": {
"version": "11.8.2",
"resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz",
"integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==",
"requires": {
"@sindresorhus/is": "^4.0.0",
"@szmarczak/http-timer": "^4.0.5",
"@types/cacheable-request": "^6.0.1",
"@types/responselike": "^1.0.0",
"cacheable-lookup": "^5.0.3",
"cacheable-request": "^7.0.1",
"decompress-response": "^6.0.0",
"http2-wrapper": "^1.0.0-beta.5.2",
"lowercase-keys": "^2.0.0",
"p-cancelable": "^2.0.0",
"responselike": "^2.0.0"
}
},
"har-schema": { "har-schema": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
@ -1797,6 +2204,11 @@
"entities": "^2.0.0" "entities": "^2.0.0"
} }
}, },
"http-cache-semantics": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
},
"http-signature": { "http-signature": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@ -1807,6 +2219,15 @@
"sshpk": "^1.7.0" "sshpk": "^1.7.0"
} }
}, },
"http2-wrapper": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
"integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==",
"requires": {
"quick-lru": "^5.1.1",
"resolve-alpn": "^1.0.0"
}
},
"iconv-lite": { "iconv-lite": {
"version": "0.4.24", "version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@ -1887,6 +2308,11 @@
"xml-name-validator": "^3.0.0" "xml-name-validator": "^3.0.0"
} }
}, },
"json-buffer": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
},
"json-schema": { "json-schema": {
"version": "0.2.3", "version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
@ -1913,6 +2339,14 @@
"verror": "1.10.0" "verror": "1.10.0"
} }
}, },
"keyv": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz",
"integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==",
"requires": {
"json-buffer": "3.0.1"
}
},
"levn": { "levn": {
"version": "0.3.0", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
@ -1937,6 +2371,11 @@
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
"integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
}, },
"lowercase-keys": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
"integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="
},
"mime-db": { "mime-db": {
"version": "1.46.0", "version": "1.46.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz",
@ -1950,6 +2389,11 @@
"mime-db": "1.46.0" "mime-db": "1.46.0"
} }
}, },
"mimic-response": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
},
"minimatch": { "minimatch": {
"version": "3.0.4", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@ -1963,6 +2407,11 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
}, },
"normalize-url": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
"integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="
},
"nth-check": { "nth-check": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz",
@ -2002,6 +2451,11 @@
"word-wrap": "~1.2.3" "word-wrap": "~1.2.3"
} }
}, },
"p-cancelable": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
"integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg=="
},
"parse-duration": { "parse-duration": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.0.tgz", "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.0.tgz",
@ -2045,6 +2499,15 @@
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
"integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
}, },
"pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"requires": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
}
},
"punycode": { "punycode": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
@ -2055,6 +2518,11 @@
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
}, },
"quick-lru": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
"integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="
},
"request": { "request": {
"version": "2.88.2", "version": "2.88.2",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
@ -2132,6 +2600,19 @@
} }
} }
}, },
"resolve-alpn": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
"integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="
},
"responselike": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz",
"integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==",
"requires": {
"lowercase-keys": "^2.0.0"
}
},
"safe-buffer": { "safe-buffer": {
"version": "5.2.1", "version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@ -2187,6 +2668,15 @@
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
}, },
"tabletojson": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/tabletojson/-/tabletojson-2.0.7.tgz",
"integrity": "sha512-rnt4Wz5IdnjzIUk4WIeFGdH3G3zRUlhQ9rc+d7e+iGbcVeJeay+8mRScazptoZG+ls1bX82kSuns9yVsMx5DGg==",
"requires": {
"cheerio": "^1.0.0-rc.10",
"got": "^11.8.2"
}
},
"tough-cookie": { "tough-cookie": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",

View file

@ -10,13 +10,14 @@
"axios": "^0.21.1", "axios": "^0.21.1",
"cheerio": "^1.0.0-rc.10", "cheerio": "^1.0.0-rc.10",
"dayjs": "^1.10.4", "dayjs": "^1.10.4",
"epg-grabber": "^0.6.6", "epg-grabber": "^0.9.1",
"epg-parser": "^0.1.3", "epg-parser": "^0.1.3",
"form-data": "^4.0.0", "form-data": "^4.0.0",
"html-to-text": "^7.0.0", "html-to-text": "^7.0.0",
"iconv-lite": "^0.4.24", "iconv-lite": "^0.4.24",
"jsdom": "^16.5.0", "jsdom": "^16.5.0",
"parse-duration": "^1.0.0", "parse-duration": "^1.0.0",
"tabletojson": "^2.0.7",
"xml-js": "^1.6.11" "xml-js": "^1.6.11"
} }
} }

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<site site="arianatelevision.com">
<channels>
<channel site_id="#" xmltv_id="ArianaTVNational.af">Ariana TV National</channel>
</channels>
</site>

View file

@ -0,0 +1,67 @@
const jsdom = require('jsdom')
const { JSDOM } = jsdom
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const timezone = require('dayjs/plugin/timezone')
const customParseFormat = require('dayjs/plugin/customParseFormat')
const tabletojson = require('tabletojson').Tabletojson
dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(customParseFormat)
let PM = false
module.exports = {
lang: 'en',
days: 7,
site: 'arianatelevision.com',
channels: 'arianatelevision.com.channels.xml',
output: '.gh-pages/guides/arianatelevision.com.guide.xml',
url() {
return `https://www.arianatelevision.com/program-schedule/`
},
parser({ content, date }) {
const programs = []
const items = parseItems(content, date)
items.forEach(item => {
const title = item.title
let start = parseStart(item, date)
if (start.hour() > 11) PM = true
if (start.hour() < 12 && PM) start = start.add(1, 'd')
const stop = parseStop(item, date)
if (programs.length) {
programs[programs.length - 1].stop = start
}
programs.push({
title,
start,
stop
})
})
return programs
}
}
function parseStop(item, date) {
return date.tz('Asia/Kabul').endOf('d').add(6, 'h')
}
function parseStart(item, date) {
const time = `${date.format('MM/DD/YYYY')} ${item.start}`
return dayjs.tz(time, 'MM/DD/YYYY h:mmA', 'Asia/Kabul')
}
function parseItems(content, date) {
const items = []
const dom = new JSDOM(content)
const dayOfWeek = date.format('dddd')
const el = dom.window.document.getElementById('jtrt_table_508')
const data = tabletojson.convert(el.outerHTML)
if (!data) return items
const rows = data[0]
return rows.map(r => ({ start: r.Start, title: r[dayOfWeek] })).filter(i => i.start)
}

118
sites/tv.cctv.com.channels.xml Executable file
View file

@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8"?>
<site site="tv.cctv.com">
<channels>
<channel site_id="btv6" xmltv_id="BTVTiYu.cn">BTV体育</channel>
<channel site_id="btvchild" xmltv_id="BTVQiaKuShaoEr.cn">BTV卡酷少儿</channel>
<channel site_id="btvInternational" xmltv_id="BTVGuoJi.cn">BTV国际</channel>
<channel site_id="btv4" xmltv_id="BTVYingShi.cn">BTV影视</channel>
<channel site_id="btv2" xmltv_id="BTVWenYi.cn">BTV文艺</channel>
<channel site_id="btv9" xmltv_id="BTVXinWen.cn">BTV新闻</channel>
<channel site_id="btv7" xmltv_id="BTVShengHuo.cn">BTV生活</channel>
<channel site_id="btv3" xmltv_id="BTVKeJiao.cn">BTV科教</channel>
<channel site_id="btvjishi" xmltv_id="BTVJiShi.cn">BTV纪实</channel>
<channel site_id="btv5" xmltv_id="BTVCaiJing.cn">BTV财经</channel>
<channel site_id="btv8" xmltv_id="BTVQingShao.cn">BTV青少</channel>
<channel site_id="cctv10" xmltv_id="CCTV10.cn">CCTV-10科教</channel>
<channel site_id="cctv11" xmltv_id="CCTV11.cn">CCTV-11戏曲</channel>
<channel site_id="cctv12" xmltv_id="CCTV12.cn">CCTV-12社会与法</channel>
<channel site_id="cctv13" xmltv_id="CCTV13.cn">CCTV-13新闻</channel>
<channel site_id="cctvchild" xmltv_id="CCTV14.cn">CCTV-14少儿</channel>
<channel site_id="cctv15" xmltv_id="CCTV15.cn">CCTV-15音乐</channel>
<channel site_id="cctv1" xmltv_id="CCTV1.cn">CCTV-1综合</channel>
<channel site_id="cctv2" xmltv_id="CCTV2.cn">CCTV-2财经</channel>
<channel site_id="cctv3" xmltv_id="CCTV3.cn">CCTV-3文艺</channel>
<channel site_id="cctv4" xmltv_id="CCTV4.cn">CCTV-4亚洲</channel>
<channel site_id="cctveurope" xmltv_id="CCTV4Europe.cn">CCTV-4欧洲</channel>
<channel site_id="cctvamerica" xmltv_id="CCTV4America.cn">CCTV-4美洲</channel>
<channel site_id="cctv5" xmltv_id="CCTV5.cn">CCTV-5体育</channel>
<channel site_id="cctv6" xmltv_id="CCTV6.cn">CCTV-6电影</channel>
<channel site_id="cctv7" xmltv_id="CCTV7.cn">CCTV-7军事农业</channel>
<channel site_id="cctv8" xmltv_id="CCTV8.cn">CCTV-8电视剧</channel>
<channel site_id="cctvjilu" xmltv_id="CCTV9.cn">CCTV-9纪录</channel>
<channel site_id="shijiedili" xmltv_id="CCTVShiJieDiLi.cn">CCTV世界地理</channel>
<channel site_id="dianshigouwu" xmltv_id="CCTVZhongShiGouWu.cn">CCTV中视购物</channel>
<channel site_id="cctv5plus" xmltv_id="CCTV5Plus.cn">CCTV体育赛事</channel>
<channel site_id="guofang" xmltv_id="CCTVGuoFangJunShi.cn">CCTV国防军事</channel>
<channel site_id="taiqiu" xmltv_id="CCTVYangShiTaiQiu.cn">CCTV央视台球</channel>
<channel site_id="jingpin" xmltv_id="CCTVYangShiWenHuaJingPin.cn">CCTV央视文化精品</channel>
<channel site_id="shishang" xmltv_id="CCTVNuXingShiShang.cn">CCTV女性时尚</channel>
<channel site_id="cctvyule" xmltv_id="CCTVYuLe.cn">CCTV娱乐</channel>
<channel site_id="hjjc" xmltv_id="CCTVHuaiJiuJuChang.cn">CCTV怀旧剧场</channel>
<channel site_id="cctvxiqu" xmltv_id="CCTVXiQu.cn">CCTV戏曲</channel>
<channel site_id="xinkedongman" xmltv_id="CCTVXinKeDongMan.cn">CCTV新科动漫</channel>
<channel site_id="cctvqixiang" xmltv_id="CCTVQiXiang.cn">CCTV气象</channel>
<channel site_id="zhinan" xmltv_id="CCTVDianShiZhiNan.cn">CCTV电视指南</channel>
<channel site_id="diyijuchang" xmltv_id="CCTVDiYiJuChang.cn">CCTV第一剧场</channel>
<channel site_id="cctvlaogushi" xmltv_id="CCTVLaoGuShi.cn">CCTV老故事</channel>
<channel site_id="fyjc" xmltv_id="CCTVFengYunJuChang.cn">CCTV风云剧场</channel>
<channel site_id="cctvfyzq" xmltv_id="CCTVFengYunZuQiu.cn">CCTV风云足球</channel>
<channel site_id="fyyy" xmltv_id="CCTVFengYunYinLe.cn">CCTV风云音乐</channel>
<channel site_id="cctvgaowang" xmltv_id="CCTVGaoErFuWangQiu.cn">CCTV高尔夫网球</channel>
<channel site_id="cetv1" xmltv_id="CETV1.cn">CETV-1</channel>
<channel site_id="cetv2" xmltv_id="CETV2.cn">CETV-2</channel>
<channel site_id="cetv3" xmltv_id="CETV3.cn">CETV-3</channel>
<channel site_id="dongnan" xmltv_id="DongNanWeiShi.cn">东南卫视</channel>
<channel site_id="dongfang" xmltv_id="DongFangWeiShi.cn">东方卫视</channel>
<channel site_id="shuhua" xmltv_id="ShuHua.cn">书画</channel>
<channel site_id="yunnan" xmltv_id="YunNanWeiShi.cn">云南卫视</channel>
<channel site_id="bingtuan" xmltv_id="BingTuanWeiShi.cn">兵团卫视</channel>
<channel site_id="neimenggu" xmltv_id="NeiMengGuWeiShi.cn">内蒙古卫视</channel>
<channel site_id="btv1" xmltv_id="BeiJingWeiShi.cn">北京卫视</channel>
<channel site_id="wsjk" xmltv_id="WeiShengJianKang.cn">卫生健康</channel>
<channel site_id="xiamen" xmltv_id="ShaMenWeiShi.cn">厦门卫视</channel>
<channel site_id="jilin" xmltv_id="JiLinWeiShi.cn">吉林卫视</channel>
<channel site_id="sichuan" xmltv_id="SiChuanWeiShi.cn">四川卫视</channel>
<channel site_id="shuowenjiezi" xmltv_id="GuoXueShuoWenJieZi.cn">国学(说文解字)</channel>
<channel site_id="tianyuanweiqi" xmltv_id="TianYuanWeiQi.cn">天元围棋</channel>
<channel site_id="tianjin1" xmltv_id="TianJin1Tao.cn">天津1套</channel>
<channel site_id="tianjin2" xmltv_id="TianJin2Tao.cn">天津2套</channel>
<channel site_id="tianjin" xmltv_id="TianJinWeiShi.cn">天津卫视</channel>
<channel site_id="ningxia" xmltv_id="NingXiaWeiShi.cn">宁夏卫视</channel>
<channel site_id="nbtv1" xmltv_id="NingBoYiTao.cn">宁波一套</channel>
<channel site_id="nbtv3" xmltv_id="NingBoSanTao.cn">宁波三套</channel>
<channel site_id="nbtv2" xmltv_id="NingBoErTao.cn">宁波二套</channel>
<channel site_id="nbtv5" xmltv_id="NingBoWuTao.cn">宁波五套</channel>
<channel site_id="nbtv4" xmltv_id="NingBoSiTao.cn">宁波四套</channel>
<channel site_id="anhui" xmltv_id="AnHuiWeiShi.cn">安徽卫视</channel>
<channel site_id="shandong" xmltv_id="ShanDongWeiShi.cn">山东卫视</channel>
<channel site_id="sdetv" xmltv_id="ShanDongJiaoYuTai.cn">山东教育台</channel>
<channel site_id="shan1xi" xmltv_id="ShanXiWeiShi.cn">山西卫视</channel>
<channel site_id="guangdong" xmltv_id="GuangDongWeiShi.cn">广东卫视</channel>
<channel site_id="guangxi" xmltv_id="GuangXiWeiShi.cn">广西卫视</channel>
<channel site_id="yanbian" xmltv_id="YanBianWeiShi.cn">延边卫视</channel>
<channel site_id="cdtv1" xmltv_id="ChengDuXinWenZongHe.cn">成都新闻综合</channel>
<channel site_id="cdtv2new" xmltv_id="ChengDuJingJiZiXunFuWu.cn">成都经济资讯服务</channel>
<channel site_id="sheyingpindao" xmltv_id="SheYing.cn">摄影</channel>
<channel site_id="wenwubaoku" xmltv_id="WenWuBaoKu.cn">文物宝库</channel>
<channel site_id="xinjiang" xmltv_id="XinJiangWeiShi.cn">新疆卫视</channel>
<channel site_id="travel" xmltv_id="LuYouWeiShi.cn">旅游卫视</channel>
<channel site_id="zaoqijiaoyu" xmltv_id="ZaoQiJiaoYu.cn">早期教育</channel>
<channel site_id="cctvliyuan" xmltv_id="LiYuan.cn">梨园</channel>
<channel site_id="wushushijie" xmltv_id="WuShuShiJie.cn">武术世界</channel>
<channel site_id="jiangsu" xmltv_id="JiangSuWeiShi.cn">江苏卫视</channel>
<channel site_id="jiangxi" xmltv_id="JiangXiWeiShi.cn">江西卫视</channel>
<channel site_id="cctvqimo" xmltv_id="QiMo.cn">汽摩</channel>
<channel site_id="hebei" xmltv_id="HeBeiWeiShi.cn">河北卫视</channel>
<channel site_id="henan" xmltv_id="HeNanWeiShi.cn">河南卫视</channel>
<channel site_id="zhejiang" xmltv_id="ZheJiangWeiShi.cn">浙江卫视</channel>
<channel site_id="shenzhen" xmltv_id="ShenZhenWeiShi.cn">深圳卫视</channel>
<channel site_id="youxijingji" xmltv_id="YouXiJingJi.cn">游戏竞技</channel>
<channel site_id="hubei" xmltv_id="HuBeiWeiShi.cn">湖北卫视</channel>
<channel site_id="hunan" xmltv_id="HuNanWeiShi.cn">湖南卫视</channel>
<channel site_id="tianjinbh" xmltv_id="BinHaiXinWenZongHe.cn">滨海新闻综合</channel>
<channel site_id="tianjinbh2" xmltv_id="BinHaiZongYiPinDao.cn">滨海综艺频道</channel>
<channel site_id="huanqiuqiguan" xmltv_id="HuanQiuQiGuan.cn">环球奇观</channel>
<channel site_id="xiandainvxing" xmltv_id="XianDaiNuXing.cn">现代女性</channel>
<channel site_id="zhuhaiyitao" xmltv_id="ZhuHaiYiTao.cn">珠海一套</channel>
<channel site_id="zhuhaiertao" xmltv_id="ZhuHaiErTao.cn">珠海二套</channel>
<channel site_id="gansu" xmltv_id="GanSuWeiShi.cn">甘肃卫视</channel>
<channel site_id="xizang" xmltv_id="XiCangWeiShi.cn">西藏卫视</channel>
<channel site_id="cctvzhengquanzixun" xmltv_id="ZhengQuanZiXun.cn">证券资讯</channel>
<channel site_id="guizhou" xmltv_id="GuiZhouWeiShi.cn">贵州卫视</channel>
<channel site_id="liaoning" xmltv_id="LiaoNingWeiShi.cn">辽宁卫视</channel>
<channel site_id="chongqing" xmltv_id="ChongQingWeiShi.cn">重庆卫视</channel>
<channel site_id="qinghai" xmltv_id="QingHaiWeiShi.cn">青海卫视</channel>
<channel site_id="cctvliangzhuang" xmltv_id="JingZhuang.cn">靓妆</channel>
<channel site_id="heilongjiang" xmltv_id="HeiLongJiangWeiShi.cn">黑龙江卫视</channel>
</channels>
</site>

View file

@ -0,0 +1,47 @@
const dayjs = require('dayjs')
module.exports = {
lang: 'cn',
days: 3,
request: {
timeout: 10000
},
site: 'tv.cctv.com',
channels: 'tv.cctv.com.channels.xml',
output: '.gh-pages/guides/tv.cctv.com.guide.xml',
url({ channel, date }) {
return `https://api.cntv.cn/epg/getEpgInfoByChannelNew?serviceId=tvcctv&c=${
channel.site_id
}&d=${date.format('YYYYMMDD')}`
},
parser({ content, channel }) {
const programs = []
const items = parseItems(content, channel)
items.forEach(item => {
const title = item.title
const start = parseStart(item)
const stop = parseStop(item)
programs.push({
title,
start,
stop
})
})
return programs
}
}
function parseStop(item) {
return dayjs.unix(item.endTime)
}
function parseStart(item) {
return dayjs.unix(item.startTime)
}
function parseItems(content, channel) {
const data = JSON.parse(content)
return data.data[channel.site_id].list || []
}

File diff suppressed because it is too large Load diff

View file

@ -1,38 +0,0 @@
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
dayjs.extend(utc)
module.exports = {
lang: 'en',
site: 'tvtv.ca',
channels: 'tvtv.ca.channels.xml',
output: '.gh-pages/guides/tvtv.ca.guide.xml',
url: function ({ date, channel }) {
return `https://www.tvtv.ca/tvm/t/tv/v4/stations/${
channel.site_id
}/listings?start=${date.format()}&end=${date.add(1, 'd').format()}`
},
parser: function ({ content }) {
let programs = []
const items = JSON.parse(content)
if (!items.length) return programs
items.forEach(item => {
const start = dayjs.utc(item.listDateTime)
const stop = start.add(item.duration, 'm')
const icon = item.showPicture
? `https://cdn.tvpassport.com/image/show/480x720/${item.showPicture}`
: null
programs.push({
title: item.showName,
description: item.description,
category: item.showType,
start: start.toString(),
stop: stop.toString(),
icon
})
})
return programs
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,4 @@
const axios = require('axios')
const dayjs = require('dayjs') const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc') const utc = require('dayjs/plugin/utc')
@ -9,10 +10,20 @@ module.exports = {
channels: 'tvtv.us.channels.xml', channels: 'tvtv.us.channels.xml',
output: '.gh-pages/guides/tvtv.us.guide.xml', output: '.gh-pages/guides/tvtv.us.guide.xml',
url: function ({ date, channel }) { url: function ({ date, channel }) {
return `https://www.tvtv.us/tvm/t/tv/v4/stations/${ return `https://tvtv.us/tvm/t/tv/v4/stations/${
channel.site_id channel.site_id
}/listings?start=${date.format()}&end=${date.add(1, 'd').format()}` }/listings?start=${date.format()}&end=${date.add(1, 'd').format()}`
}, },
logo: async function ({ channel }) {
return await axios
.get(`https://tvtv.us/tvm/t/tv/v4/stations/${channel.site_id}`)
.then(r =>
r.data && r.data.logoFilename
? `https://cdn.tvpassport.com/image/station/100x100/${r.data.logoFilename}`
: null
)
.catch(e => console.log)
},
parser: function ({ content }) { parser: function ({ content }) {
let programs = [] let programs = []
const items = JSON.parse(content) const items = JSON.parse(content)
@ -24,7 +35,7 @@ module.exports = {
? `https://cdn.tvpassport.com/image/show/480x720/${item.showPicture}` ? `https://cdn.tvpassport.com/image/show/480x720/${item.showPicture}`
: null : null
let title = item.showName let title = item.showName
if (title === "Movie") { if (title === 'Movie') {
title = item.episodeTitle title = item.episodeTitle
} }
programs.push({ programs.push({