epg-grabber 0.37.1 → 0.37.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -5
- package/src/xmltv.js +2 -2
- package/tests/__data__/output/guide.xml +6 -0
- package/tests/xmltv.test.js +3 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "epg-grabber",
|
|
3
|
-
"version": "0.37.
|
|
3
|
+
"version": "0.37.3",
|
|
4
4
|
"description": "Node.js CLI tool for grabbing EPG from different sites",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"preferGlobal": true,
|
|
@@ -38,18 +38,18 @@
|
|
|
38
38
|
"epg-parser": "^0.1.6",
|
|
39
39
|
"fs-extra": "^11.1.1",
|
|
40
40
|
"glob": "^7.1.6",
|
|
41
|
-
"http-cookie-agent": "^
|
|
41
|
+
"http-cookie-agent": "^6.0.8",
|
|
42
42
|
"lodash": "^4.17.21",
|
|
43
43
|
"node-gzip": "^1.1.2",
|
|
44
|
-
"tough-cookie": "^
|
|
44
|
+
"tough-cookie": "^5.0.0",
|
|
45
45
|
"winston": "^3.3.3",
|
|
46
46
|
"xml-js": "^1.6.11"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@babel/core": "^7.13.14",
|
|
50
50
|
"@babel/preset-env": "^7.13.12",
|
|
51
|
-
"babel-jest": "^
|
|
52
|
-
"eslint": "^
|
|
51
|
+
"babel-jest": "^29.7.0",
|
|
52
|
+
"eslint": "^9.17.0",
|
|
53
53
|
"jest": "^29.7.0",
|
|
54
54
|
"jest-mock-axios": "^4.4.1"
|
|
55
55
|
},
|
package/src/xmltv.js
CHANGED
|
@@ -175,12 +175,12 @@ function createImageElement(image) {
|
|
|
175
175
|
orient: image.orient,
|
|
176
176
|
system: image.system
|
|
177
177
|
},
|
|
178
|
-
[image.value]
|
|
178
|
+
[escapeString(image.value)]
|
|
179
179
|
)
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
function createURLElement(url) {
|
|
183
|
-
return el('url', { system: url.system }, [url.value])
|
|
183
|
+
return el('url', { system: url.system }, [escapeString(url.value)])
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
function createElement(name, attrs, children) {
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" ?><tv date="20241215">
|
|
2
|
+
<channel id="1TV.com"><display-name>1 TV</display-name><icon src="https://example.com/logos/1TV.png"/><url>https://example.com</url></channel>
|
|
3
|
+
<channel id="2TV.com"><display-name>2 TV</display-name><url>https://example.com</url></channel>
|
|
4
|
+
<channel id="3TV.com"><display-name>3 TV</display-name><url>https://example2.com</url></channel>
|
|
5
|
+
<channel id="4TV.com"><display-name>4 TV</display-name><url>https://example2.com</url></channel>
|
|
6
|
+
</tv>
|
package/tests/xmltv.test.js
CHANGED
|
@@ -10,7 +10,7 @@ const channels = [
|
|
|
10
10
|
name: '1 TV',
|
|
11
11
|
site: 'example.com',
|
|
12
12
|
icon: 'https://example.com/channel_one_icon.jpg',
|
|
13
|
-
url: 'https://example.com/channel_one',
|
|
13
|
+
url: 'https://example.com/channel_one?foo=foo&bar=bar',
|
|
14
14
|
lcn: 36
|
|
15
15
|
}),
|
|
16
16
|
new Channel({
|
|
@@ -126,7 +126,7 @@ it('can generate xmltv', () => {
|
|
|
126
126
|
size: '1',
|
|
127
127
|
orient: 'P',
|
|
128
128
|
system: 'tvdb',
|
|
129
|
-
value: 'https://tvdb.com/programme_one_poster_1.jpg'
|
|
129
|
+
value: 'https://tvdb.com/programme_one_poster_1.jpg?foo=foo&bar=bar'
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
type: 'poster',
|
|
@@ -167,6 +167,6 @@ it('can generate xmltv', () => {
|
|
|
167
167
|
const output = xmltv.generate({ channels, programs })
|
|
168
168
|
|
|
169
169
|
expect(output).toBe(
|
|
170
|
-
'<?xml version="1.0" encoding="UTF-8" ?><tv date="20220505">\r\n<channel id="1TV.co"><display-name>1 TV</display-name><icon src="https://example.com/channel_one_icon.jpg"/><url>https://example.com/channel_one</url><lcn>36</lcn></channel>\r\n<channel id="2TV.co"><display-name>2 TV</display-name><icon src="https://example.com/logos/2TV.png"/><url>https://example.com</url></channel>\r\n<programme start="20210319060000 +0000" stop="20210319063000 +0000" channel="1TV.co"><title>Program 1</title><sub-title>Sub-title & 1</sub-title><desc>Description for Program 1</desc><credits><director>Director 1<url system="TestSystem">http://example.com/director1.html</url><image>https://example.com/image1.jpg</image><image type="person" size="2" orient="P" system="TestSystem">https://example.com/image2.jpg</image></director><director>Director 2</director><actor>Actor 1</actor><actor>Actor 2</actor><writer>Writer 1</writer></credits><date>20220506</date><category>Test</category><keyword lang="en">physical-comedy</keyword><keyword lang="en">romantic</keyword><language>English</language><orig-language lang="en">French</orig-language><length units="minutes">60</length><country>US</country><url>http://example.com/title.html</url><episode-num system="xmltv_ns">8.238.0/1</episode-num><episode-num system="onscreen">S09E239</episode-num><video><present>yes</present><colour>no</colour><aspect>16:9</aspect><quality>HDTV</quality></video><audio><present>yes</present><stereo>Dolby Digital</stereo></audio><previously-shown start="20080711000000" channel="channel-two.tv"/><premiere>First time on British TV</premiere><last-chance lang="en">Last time on this channel</last-chance><new/><subtitles type="teletext"><language>English</language></subtitles><subtitles type="onscreen"><language lang="en">Spanish</language></subtitles><rating system="MPAA"><value>P&G</value><icon src="http://example.com/pg_symbol.png"/></rating><star-rating system="TV Guide"><value>4/5</value><icon src="stars.png"/></star-rating><star-rating system="IMDB"><value>8/10</value></star-rating><review type="text" source="Rotten Tomatoes" reviewer="Joe Bloggs" lang="en">This is a fantastic show!</review><review type="text" source="IDMB" reviewer="Jane Doe" lang="en">I love this show!</review><review type="url" source="Rotten Tomatoes" reviewer="Joe Bloggs" lang="en">https://example.com/programme_one_review</review><image type="poster" size="1" orient="P" system="tvdb">https://tvdb.com/programme_one_poster_1.jpg</image><image type="poster" size="2" orient="P" system="tmdb">https://tmdb.com/programme_one_poster_2.jpg</image><image type="backdrop" size="3" orient="L" system="tvdb">https://tvdb.com/programme_one_backdrop_3.jpg</image><image type="backdrop" size="3" orient="L" system="tmdb">https://tmdb.com/programme_one_backdrop_3.jpg</image><icon src="https://example.com/images/Program1.png?x=шеллы&sid=777"/></programme>\r\n<programme start="20210319060000 +0000" stop="20210319063000 +0000" channel="2TV.co"><title lang="es">Program 2</title></programme>\r\n</tv>'
|
|
170
|
+
'<?xml version="1.0" encoding="UTF-8" ?><tv date="20220505">\r\n<channel id="1TV.co"><display-name>1 TV</display-name><icon src="https://example.com/channel_one_icon.jpg"/><url>https://example.com/channel_one?foo=foo&bar=bar</url><lcn>36</lcn></channel>\r\n<channel id="2TV.co"><display-name>2 TV</display-name><icon src="https://example.com/logos/2TV.png"/><url>https://example.com</url></channel>\r\n<programme start="20210319060000 +0000" stop="20210319063000 +0000" channel="1TV.co"><title>Program 1</title><sub-title>Sub-title & 1</sub-title><desc>Description for Program 1</desc><credits><director>Director 1<url system="TestSystem">http://example.com/director1.html</url><image>https://example.com/image1.jpg</image><image type="person" size="2" orient="P" system="TestSystem">https://example.com/image2.jpg</image></director><director>Director 2</director><actor>Actor 1</actor><actor>Actor 2</actor><writer>Writer 1</writer></credits><date>20220506</date><category>Test</category><keyword lang="en">physical-comedy</keyword><keyword lang="en">romantic</keyword><language>English</language><orig-language lang="en">French</orig-language><length units="minutes">60</length><country>US</country><url>http://example.com/title.html</url><episode-num system="xmltv_ns">8.238.0/1</episode-num><episode-num system="onscreen">S09E239</episode-num><video><present>yes</present><colour>no</colour><aspect>16:9</aspect><quality>HDTV</quality></video><audio><present>yes</present><stereo>Dolby Digital</stereo></audio><previously-shown start="20080711000000" channel="channel-two.tv"/><premiere>First time on British TV</premiere><last-chance lang="en">Last time on this channel</last-chance><new/><subtitles type="teletext"><language>English</language></subtitles><subtitles type="onscreen"><language lang="en">Spanish</language></subtitles><rating system="MPAA"><value>P&G</value><icon src="http://example.com/pg_symbol.png"/></rating><star-rating system="TV Guide"><value>4/5</value><icon src="stars.png"/></star-rating><star-rating system="IMDB"><value>8/10</value></star-rating><review type="text" source="Rotten Tomatoes" reviewer="Joe Bloggs" lang="en">This is a fantastic show!</review><review type="text" source="IDMB" reviewer="Jane Doe" lang="en">I love this show!</review><review type="url" source="Rotten Tomatoes" reviewer="Joe Bloggs" lang="en">https://example.com/programme_one_review</review><image type="poster" size="1" orient="P" system="tvdb">https://tvdb.com/programme_one_poster_1.jpg?foo=foo&bar=bar</image><image type="poster" size="2" orient="P" system="tmdb">https://tmdb.com/programme_one_poster_2.jpg</image><image type="backdrop" size="3" orient="L" system="tvdb">https://tvdb.com/programme_one_backdrop_3.jpg</image><image type="backdrop" size="3" orient="L" system="tmdb">https://tmdb.com/programme_one_backdrop_3.jpg</image><icon src="https://example.com/images/Program1.png?x=шеллы&sid=777"/></programme>\r\n<programme start="20210319060000 +0000" stop="20210319063000 +0000" channel="2TV.co"><title lang="es">Program 2</title></programme>\r\n</tv>'
|
|
171
171
|
)
|
|
172
172
|
})
|