SW0000J

Merge branch 'develop'

1 +.vscode
2 +node_modules
...\ No newline at end of file ...\ No newline at end of file
1 -const axios = require("axios"); 1 +var express = require('express');
2 -const cheerio = require("cheerio"); 2 +var path = require('path');
3 -const log = console.log; 3 +var bodyParser = require('body-parser');
4 +var indexRouter = require('./routes/index');
5 +var ncRouter = require('./routes/nc');
6 +var lgRouter = require('./routes/lg');
7 +var doosanRouter = require('./routes/doosan');
8 +var kiwoomRouter = require('./routes/kiwoom');
9 +var kiaRouter = require('./routes/kia');
10 +var lotteRouter = require('./routes/lotte');
11 +var samsungRouter = require('./routes/samsung');
12 +var ktRouter = require('./routes/kt');
13 +var skRouter = require('./routes/sk');
14 +var hanwhaRouter = require('./routes/hanwha');
4 15
5 -const getHtml = async () => { 16 +//var request = require('request');
6 - try { 17 +//var fs = require('fs');
7 - return await axios.get("https://www.yna.co.kr/sports/baseball"); 18 +//var ejs = require('ejs');
8 - } catch (error) {
9 - console.error(error);
10 - }
11 -};
12 19
13 -getHtml() 20 +var app = express();
14 - .then(html => { 21 +const PORT = 80;
15 - let ulList = [];
16 - const $ = cheerio.load(html.data);
17 - const $bodyList = $("ul.list li").children("div.item-box01");
18 22
19 - $bodyList.each(function(i, elem) { 23 +app.set('views', path.join(__dirname, 'views'));
20 - ulList[i] = { 24 +app.set('view engine', 'ejs');
21 - datetime: $(this).find('span.txt-time').text(),
22 - image_url: $(this).find('figure.img-con a').attr('href'),
23 - url: $(this).find('div.news-con a').attr('href'),
24 - title: $(this).find('div.news-con strong').text(),
25 - summary: $(this).find('div.news-con p').text().slice(0, -29)
26 - };
27 - //console.log(ulList[i]) // list object checking code
28 - });
29 25
30 - const data = ulList.filter(n => n.title);
31 - return data;
32 - //return ulList;
33 - }).then(res => console.log(res));
...\ No newline at end of file ...\ No newline at end of file
26 +app.use(express.static(path.join(__dirname, 'public')));
27 +app.use(bodyParser.json());
28 +app.use(bodyParser.urlencoded({ extended: false }));
29 +
30 +app.use('/', indexRouter);
31 +app.use('/nc', ncRouter);
32 +app.use('/lg', lgRouter);
33 +app.use('/doosan', doosanRouter);
34 +app.use('/kiwoom', kiwoomRouter);
35 +app.use('/kia', kiaRouter);
36 +app.use('/lotte', lotteRouter);
37 +app.use('/samsung', samsungRouter);
38 +app.use('/kt', ktRouter);
39 +app.use('/sk', skRouter);
40 +app.use('/hanwha', hanwhaRouter);
41 +
42 +app.listen(PORT, function(){
43 + console.log('Code run in https://localhost:'+PORT+'\n');
44 +});
......
1 +const axios = require("axios");
2 +const cheerio = require("cheerio");
3 +
4 +const url = "http://news.chosun.com/svc/list_in/list.html?catid=82"
5 +
6 +const getHtml = async () => {
7 + try {
8 + return await axios.get(url);
9 + } catch (error) {
10 + console.error(error);
11 + }
12 +};
13 +
14 +
15 +const getChosun = async () => {
16 +
17 + return new Promise((resolve, reject) => {
18 + getHtml()
19 + .then(html => {
20 + let ulList = [];
21 + //console.log(html.data);
22 + const $ = cheerio.load(html.data);
23 + const $bodyList = $("div.list_body > div.list_content").children("dl.list_item");
24 +
25 + $bodyList.each(function(i, elem) {
26 + ulList[i] = {
27 + url: $(this).find('dd.thumb > a').attr('href'),
28 + image_url: $(this).find('dd.thumb a > img').attr('src'),
29 + title: $(this).find('dt > a').text(),
30 + summary: $(this).find('dd.desc').text(),//.slice(1, -2),
31 + datetime: $(this).find('dd.date_author > span.date').text()
32 + };
33 + //console.log(ulList[i]) // list object checking code
34 + });
35 +
36 + const data = ulList.filter(n => n.title);
37 + return data;
38 + //return ulList;
39 + }).then(data => {
40 + resolve(data);
41 + });
42 +});
43 +};
44 +
45 +module.exports = getChosun;
1 +const axios = require("axios"); // 웹 서버 요청 모듈
2 +const cheerio = require("cheerio"); // Load한 것을 jQuery처럼 사용
3 +
4 +const url = "http://isplus.live.joins.com/news/list/list.asp?page=1"
5 +
6 +const getHtml = async () => {
7 + try {
8 + return await axios.get(url);
9 + } catch (error) {
10 + console.error(error);
11 + }
12 +};
13 +
14 +
15 +const getIsplus1 = async () => {
16 +
17 + return new Promise((resolve, reject) => {
18 + getHtml()
19 + .then(html => {
20 + let ulList = [];
21 + //console.log(html.data);
22 + const $ = cheerio.load(html.data);
23 + const $bodyList = $("div.news_list > div.bd > ul").children("li");
24 +
25 + $bodyList.each(function(i, elem) {
26 + ulList[i] = {
27 + url: $(this).find('dl > dd.photo > a').attr('href'),
28 + image_url: $(this).find('dl > dd.photo > a > img').attr('src'),
29 + title: $(this).find('dl > dt > a').text(),
30 + summary: $(this).find('dl > dd > a').text(),
31 + datetime: $(this).find('dl > dd > span.date').text() + " " + $(this).find('dl > dd > span.time').text()
32 + };
33 + //console.log(ulList[i]) // list object checking code
34 + });
35 +
36 + const data = ulList.filter(n => n.title);
37 + return data;
38 + //return ulList;
39 + }).then(data => {
40 + resolve(data);
41 + });
42 +});
43 +};
44 +
45 +module.exports = getIsplus1;
1 +const axios = require("axios"); // 웹 서버 요청 모듈
2 +const cheerio = require("cheerio"); // Load한 것을 jQuery처럼 사용
3 +
4 +const url = "http://isplus.live.joins.com/news/list/list.asp?page=2"
5 +
6 +const getHtml = async () => {
7 + try {
8 + return await axios.get(url);
9 + } catch (error) {
10 + console.error(error);
11 + }
12 +};
13 +
14 +
15 +const getIsplus2 = async () => {
16 +
17 + return new Promise((resolve, reject) => {
18 + getHtml()
19 + .then(html => {
20 + let ulList = [];
21 + //console.log(html.data);
22 + const $ = cheerio.load(html.data);
23 + const $bodyList = $("div.news_list > div.bd > ul").children("li");
24 +
25 + $bodyList.each(function(i, elem) {
26 + ulList[i] = {
27 + url: $(this).find('dl > dd.photo > a').attr('href'),
28 + image_url: $(this).find('dl > dd.photo > a > img').attr('src'),
29 + title: $(this).find('dl > dt > a').text(),
30 + summary: $(this).find('dl > dd > a').text(),
31 + datetime: $(this).find('dl > dd > span.date').text() + " " + $(this).find('dl > dd > span.time').text()
32 + };
33 + //console.log(ulList[i]) // list object checking code
34 + });
35 +
36 + const data = ulList.filter(n => n.title);
37 + return data;
38 + //return ulList;
39 + }).then(data => {
40 + resolve(data);
41 + });
42 +});
43 +};
44 +
45 +module.exports = getIsplus2;
1 +const axios = require("axios"); // 웹 서버 요청 모듈
2 +const cheerio = require("cheerio"); // Load한 것을 jQuery처럼 사용
3 +
4 +const url = "http://isplus.live.joins.com/news/list/list.asp?page=3"
5 +
6 +const getHtml = async () => {
7 + try {
8 + return await axios.get(url);
9 + } catch (error) {
10 + console.error(error);
11 + }
12 +};
13 +
14 +
15 +const getIsplus3 = async () => {
16 +
17 + return new Promise((resolve, reject) => {
18 + getHtml()
19 + .then(html => {
20 + let ulList = [];
21 + //console.log(html.data);
22 + const $ = cheerio.load(html.data);
23 + const $bodyList = $("div.news_list > div.bd > ul").children("li");
24 +
25 + $bodyList.each(function(i, elem) {
26 + ulList[i] = {
27 + url: $(this).find('dl > dd.photo > a').attr('href'),
28 + image_url: $(this).find('dl > dd.photo > a > img').attr('src'),
29 + title: $(this).find('dl > dt > a').text(),
30 + summary: $(this).find('dl > dd > a').text(),
31 + datetime: $(this).find('dl > dd > span.date').text() + " " + $(this).find('dl > dd > span.time').text()
32 + };
33 + //console.log(ulList[i]) // list object checking code
34 + });
35 +
36 + const data = ulList.filter(n => n.title);
37 + return data;
38 + //return ulList;
39 + }).then(data => {
40 + resolve(data);
41 + });
42 +});
43 +};
44 +
45 +module.exports = getIsplus3;
1 +const axios = require("axios"); // 웹 서버 요청 모듈
2 +const cheerio = require("cheerio"); // Load한 것을 jQuery처럼 사용
3 +
4 +const url = "http://isplus.live.joins.com/news/list/list.asp?page=4"
5 +
6 +const getHtml = async () => {
7 + try {
8 + return await axios.get(url);
9 + } catch (error) {
10 + console.error(error);
11 + }
12 +};
13 +
14 +
15 +const getIsplus4 = async () => {
16 +
17 + return new Promise((resolve, reject) => {
18 + getHtml()
19 + .then(html => {
20 + let ulList = [];
21 + //console.log(html.data);
22 + const $ = cheerio.load(html.data);
23 + const $bodyList = $("div.news_list > div.bd > ul").children("li");
24 +
25 + $bodyList.each(function(i, elem) {
26 + ulList[i] = {
27 + url: $(this).find('dl > dd.photo > a').attr('href'),
28 + image_url: $(this).find('dl > dd.photo > a > img').attr('src'),
29 + title: $(this).find('dl > dt > a').text(),
30 + summary: $(this).find('dl > dd > a').text(),
31 + datetime: $(this).find('dl > dd > span.date').text() + " " + $(this).find('dl > dd > span.time').text()
32 + };
33 + //console.log(ulList[i]) // list object checking code
34 + });
35 +
36 + const data = ulList.filter(n => n.title);
37 + return data;
38 + //return ulList;
39 + }).then(data => {
40 + resolve(data);
41 + });
42 +});
43 +};
44 +
45 +module.exports = getIsplus4;
1 +const axios = require("axios"); // 웹 서버 요청 모듈
2 +const cheerio = require("cheerio"); // Load한 것을 jQuery처럼 사용
3 +
4 +const url = "http://www.xportsnews.com/?ac=article_list&cate_indexno=12"
5 +
6 +const getHtml = async () => {
7 + try {
8 + return await axios.get(url);
9 + } catch (error) {
10 + console.error(error);
11 + }
12 +};
13 +
14 +
15 +const getXports = async () => {
16 +
17 + return new Promise((resolve, reject) => {
18 + getHtml()
19 + .then(html => {
20 + let ulList = [];
21 + //console.log(html.data);
22 + const $ = cheerio.load(html.data);
23 + const $bodyList = $("ul.list_news > li");//.children("");
24 +
25 + $bodyList.each(function(i, elem) {
26 + ulList[i] = {
27 + url: 'http://www.xportsnews.com' + $(this).find('div.thumb > a').attr('href'),
28 + image_url: $(this).find('div.thumb > a > img').attr('src'),
29 + title: $(this).find('dl.dlist > dt > a').text(),
30 + summary: $(this).find('dd').text(),
31 + datetime: $(this).find('dd > span.data').text()
32 + };
33 + //console.log(ulList[i]) // list object checking code
34 + });
35 +
36 + const data = ulList.filter(n => n.title);
37 + return data;
38 + //return ulList;
39 + }).then(data => {
40 + resolve(data);
41 + });
42 +});
43 +};
44 +
45 +module.exports = getXports;
1 +const axios = require("axios");
2 +const cheerio = require("cheerio");
3 +
4 +const url = "https://www.yna.co.kr/sports/baseball"
5 +
6 +const getHtml = async () => {
7 + try {
8 + return await axios.get(url);
9 + } catch (error) {
10 + console.error(error);
11 + }
12 +};
13 +
14 +
15 +const getYna = async () => {
16 +
17 + return new Promise((resolve, reject) => {
18 + getHtml()
19 + .then(html => {
20 + let ulList = [];
21 + //console.log(html.data);
22 + const $ = cheerio.load(html.data);
23 + const $bodyList = $("div.list-type038 ul.list li").children("div.item-box01");
24 +
25 + $bodyList.each(function(i, elem) {
26 + ulList[i] = {
27 + datetime: $(this).find('span.txt-time').text(),
28 + image_url: $(this).find('figure.img-con a img').attr('src'),
29 + url: $(this).find('div.news-con a').attr('href'),
30 + title: $(this).find('div.news-con strong').text(),
31 + summary: $(this).find('div.news-con p').text()
32 + };
33 + //console.log(ulList[i]) // list object checking code
34 + });
35 +
36 + const data = ulList.filter(n => n.title);
37 + return data;
38 + //return ulList;
39 + }).then(data => {
40 + resolve(data);
41 + });
42 +});
43 +};
44 +
45 +module.exports = getYna;
1 +const axios = require("axios");
2 +const cheerio = require("cheerio");
3 +
4 +const url = "https://news.zum.com/issuelist/58654445"
5 +
6 +const getHtml = async () => {
7 + try {
8 + return await axios.get(url);
9 + } catch (error) {
10 + console.error(error);
11 + }
12 +};
13 +
14 +
15 +const getZum = async () => {
16 +
17 + return new Promise((resolve, reject) => {
18 + getHtml()
19 + .then(html => {
20 + let ulList = [];
21 + //console.log(html.data);
22 + const $ = cheerio.load(html.data);
23 + const $bodyList = $("div.major_news > ul").children("ul.no_reply > li.large");
24 +
25 + $bodyList.each(function(i, elem) {
26 + ulList[i] = {
27 + url: '//news.zum.com' + $(this).find('div.img > a').attr('href'),
28 + image_url: $(this).find('div.img > a > img').attr('src'),
29 + title: $(this).find('div.txt > div.title > a').text(),
30 + summary: $(this).find('div.txt > div.content > a').text(),//.slice(0, -29)
31 + datetime: $(this).find('div.txt > div.content > span.etc').text()
32 + };
33 + //console.log(ulList[i]) // list object checking code
34 + });
35 +
36 + const data = ulList.filter(n => n.title);
37 + return data;
38 + //return ulList;
39 + }).then(data => {
40 + resolve(data);
41 + });
42 +});
43 +};
44 +
45 +module.exports = getZum;
1 +{
2 + "requires": true,
3 + "lockfileVersion": 1,
4 + "dependencies": {
5 + "@types/node": {
6 + "version": "14.0.6",
7 + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.6.tgz",
8 + "integrity": "sha512-FbNmu4F67d3oZMWBV6Y4MaPER+0EpE9eIYf2yaHhCWovc1dlXCZkqGX4NLHfVVr6umt20TNBdRzrNJIzIKfdbw=="
9 + },
10 + "accepts": {
11 + "version": "1.3.7",
12 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
13 + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
14 + "requires": {
15 + "mime-types": "~2.1.24",
16 + "negotiator": "0.6.2"
17 + }
18 + },
19 + "ajv": {
20 + "version": "6.12.2",
21 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
22 + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
23 + "requires": {
24 + "fast-deep-equal": "^3.1.1",
25 + "fast-json-stable-stringify": "^2.0.0",
26 + "json-schema-traverse": "^0.4.1",
27 + "uri-js": "^4.2.2"
28 + }
29 + },
30 + "ansi-styles": {
31 + "version": "3.2.1",
32 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
33 + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
34 + "requires": {
35 + "color-convert": "^1.9.0"
36 + }
37 + },
38 + "array-flatten": {
39 + "version": "1.1.1",
40 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
41 + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
42 + },
43 + "asn1": {
44 + "version": "0.2.4",
45 + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
46 + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
47 + "requires": {
48 + "safer-buffer": "~2.1.0"
49 + }
50 + },
51 + "assert-plus": {
52 + "version": "1.0.0",
53 + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
54 + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
55 + },
56 + "async": {
57 + "version": "0.9.2",
58 + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
59 + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
60 + },
61 + "asynckit": {
62 + "version": "0.4.0",
63 + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
64 + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
65 + },
66 + "aws-sign2": {
67 + "version": "0.7.0",
68 + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
69 + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
70 + },
71 + "aws4": {
72 + "version": "1.10.0",
73 + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz",
74 + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA=="
75 + },
76 + "axios": {
77 + "version": "0.19.2",
78 + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz",
79 + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==",
80 + "requires": {
81 + "follow-redirects": "1.5.10"
82 + }
83 + },
84 + "balanced-match": {
85 + "version": "1.0.0",
86 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
87 + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
88 + },
89 + "bcrypt-pbkdf": {
90 + "version": "1.0.2",
91 + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
92 + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
93 + "requires": {
94 + "tweetnacl": "^0.14.3"
95 + }
96 + },
97 + "bluebird": {
98 + "version": "3.7.2",
99 + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
100 + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
101 + },
102 + "body-parser": {
103 + "version": "1.19.0",
104 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
105 + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
106 + "requires": {
107 + "bytes": "3.1.0",
108 + "content-type": "~1.0.4",
109 + "debug": "2.6.9",
110 + "depd": "~1.1.2",
111 + "http-errors": "1.7.2",
112 + "iconv-lite": "0.4.24",
113 + "on-finished": "~2.3.0",
114 + "qs": "6.7.0",
115 + "raw-body": "2.4.0",
116 + "type-is": "~1.6.17"
117 + },
118 + "dependencies": {
119 + "debug": {
120 + "version": "2.6.9",
121 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
122 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
123 + "requires": {
124 + "ms": "2.0.0"
125 + }
126 + },
127 + "iconv-lite": {
128 + "version": "0.4.24",
129 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
130 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
131 + "requires": {
132 + "safer-buffer": ">= 2.1.2 < 3"
133 + }
134 + }
135 + }
136 + },
137 + "boolbase": {
138 + "version": "1.0.0",
139 + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
140 + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
141 + },
142 + "brace-expansion": {
143 + "version": "1.1.11",
144 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
145 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
146 + "requires": {
147 + "balanced-match": "^1.0.0",
148 + "concat-map": "0.0.1"
149 + }
150 + },
151 + "bytes": {
152 + "version": "3.1.0",
153 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
154 + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
155 + },
156 + "caseless": {
157 + "version": "0.12.0",
158 + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
159 + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
160 + },
161 + "chalk": {
162 + "version": "2.4.2",
163 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
164 + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
165 + "requires": {
166 + "ansi-styles": "^3.2.1",
167 + "escape-string-regexp": "^1.0.5",
168 + "supports-color": "^5.3.0"
169 + }
170 + },
171 + "cheerio": {
172 + "version": "1.0.0-rc.3",
173 + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz",
174 + "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==",
175 + "requires": {
176 + "css-select": "~1.2.0",
177 + "dom-serializer": "~0.1.1",
178 + "entities": "~1.1.1",
179 + "htmlparser2": "^3.9.1",
180 + "lodash": "^4.15.0",
181 + "parse5": "^3.0.1"
182 + }
183 + },
184 + "color-convert": {
185 + "version": "1.9.3",
186 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
187 + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
188 + "requires": {
189 + "color-name": "1.1.3"
190 + }
191 + },
192 + "color-name": {
193 + "version": "1.1.3",
194 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
195 + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
196 + },
197 + "combined-stream": {
198 + "version": "1.0.8",
199 + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
200 + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
201 + "requires": {
202 + "delayed-stream": "~1.0.0"
203 + }
204 + },
205 + "concat-map": {
206 + "version": "0.0.1",
207 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
208 + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
209 + },
210 + "consolidate": {
211 + "version": "0.15.1",
212 + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz",
213 + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==",
214 + "requires": {
215 + "bluebird": "^3.1.1"
216 + }
217 + },
218 + "content-disposition": {
219 + "version": "0.5.3",
220 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
221 + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
222 + "requires": {
223 + "safe-buffer": "5.1.2"
224 + },
225 + "dependencies": {
226 + "safe-buffer": {
227 + "version": "5.1.2",
228 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
229 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
230 + }
231 + }
232 + },
233 + "content-type": {
234 + "version": "1.0.4",
235 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
236 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
237 + },
238 + "cookie": {
239 + "version": "0.4.0",
240 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
241 + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
242 + },
243 + "cookie-signature": {
244 + "version": "1.0.6",
245 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
246 + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
247 + },
248 + "core-util-is": {
249 + "version": "1.0.2",
250 + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
251 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
252 + },
253 + "css-select": {
254 + "version": "1.2.0",
255 + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
256 + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
257 + "requires": {
258 + "boolbase": "~1.0.0",
259 + "css-what": "2.1",
260 + "domutils": "1.5.1",
261 + "nth-check": "~1.0.1"
262 + }
263 + },
264 + "css-what": {
265 + "version": "2.1.3",
266 + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
267 + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg=="
268 + },
269 + "dashdash": {
270 + "version": "1.14.1",
271 + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
272 + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
273 + "requires": {
274 + "assert-plus": "^1.0.0"
275 + }
276 + },
277 + "debug": {
278 + "version": "3.1.0",
279 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
280 + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
281 + "requires": {
282 + "ms": "2.0.0"
283 + }
284 + },
285 + "delayed-stream": {
286 + "version": "1.0.0",
287 + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
288 + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
289 + },
290 + "depd": {
291 + "version": "1.1.2",
292 + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
293 + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
294 + },
295 + "destroy": {
296 + "version": "1.0.4",
297 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
298 + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
299 + },
300 + "dom-serializer": {
301 + "version": "0.1.1",
302 + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
303 + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
304 + "requires": {
305 + "domelementtype": "^1.3.0",
306 + "entities": "^1.1.1"
307 + }
308 + },
309 + "domelementtype": {
310 + "version": "1.3.1",
311 + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
312 + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
313 + },
314 + "domhandler": {
315 + "version": "2.4.2",
316 + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
317 + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
318 + "requires": {
319 + "domelementtype": "1"
320 + }
321 + },
322 + "domutils": {
323 + "version": "1.5.1",
324 + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
325 + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
326 + "requires": {
327 + "dom-serializer": "0",
328 + "domelementtype": "1"
329 + }
330 + },
331 + "ecc-jsbn": {
332 + "version": "0.1.2",
333 + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
334 + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
335 + "requires": {
336 + "jsbn": "~0.1.0",
337 + "safer-buffer": "^2.1.0"
338 + }
339 + },
340 + "ee-first": {
341 + "version": "1.1.1",
342 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
343 + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
344 + },
345 + "ejs": {
346 + "version": "3.1.3",
347 + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.3.tgz",
348 + "integrity": "sha512-wmtrUGyfSC23GC/B1SMv2ogAUgbQEtDmTIhfqielrG5ExIM9TP4UoYdi90jLF1aTcsWCJNEO0UrgKzP0y3nTSg==",
349 + "requires": {
350 + "jake": "^10.6.1"
351 + }
352 + },
353 + "encodeurl": {
354 + "version": "1.0.2",
355 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
356 + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
357 + },
358 + "entities": {
359 + "version": "1.1.2",
360 + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
361 + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
362 + },
363 + "escape-html": {
364 + "version": "1.0.3",
365 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
366 + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
367 + },
368 + "escape-string-regexp": {
369 + "version": "1.0.5",
370 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
371 + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
372 + },
373 + "etag": {
374 + "version": "1.8.1",
375 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
376 + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
377 + },
378 + "express": {
379 + "version": "4.17.1",
380 + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
381 + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
382 + "requires": {
383 + "accepts": "~1.3.7",
384 + "array-flatten": "1.1.1",
385 + "body-parser": "1.19.0",
386 + "content-disposition": "0.5.3",
387 + "content-type": "~1.0.4",
388 + "cookie": "0.4.0",
389 + "cookie-signature": "1.0.6",
390 + "debug": "2.6.9",
391 + "depd": "~1.1.2",
392 + "encodeurl": "~1.0.2",
393 + "escape-html": "~1.0.3",
394 + "etag": "~1.8.1",
395 + "finalhandler": "~1.1.2",
396 + "fresh": "0.5.2",
397 + "merge-descriptors": "1.0.1",
398 + "methods": "~1.1.2",
399 + "on-finished": "~2.3.0",
400 + "parseurl": "~1.3.3",
401 + "path-to-regexp": "0.1.7",
402 + "proxy-addr": "~2.0.5",
403 + "qs": "6.7.0",
404 + "range-parser": "~1.2.1",
405 + "safe-buffer": "5.1.2",
406 + "send": "0.17.1",
407 + "serve-static": "1.14.1",
408 + "setprototypeof": "1.1.1",
409 + "statuses": "~1.5.0",
410 + "type-is": "~1.6.18",
411 + "utils-merge": "1.0.1",
412 + "vary": "~1.1.2"
413 + },
414 + "dependencies": {
415 + "debug": {
416 + "version": "2.6.9",
417 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
418 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
419 + "requires": {
420 + "ms": "2.0.0"
421 + }
422 + },
423 + "safe-buffer": {
424 + "version": "5.1.2",
425 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
426 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
427 + }
428 + }
429 + },
430 + "extend": {
431 + "version": "3.0.2",
432 + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
433 + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
434 + },
435 + "extsprintf": {
436 + "version": "1.3.0",
437 + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
438 + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
439 + },
440 + "fast-deep-equal": {
441 + "version": "3.1.1",
442 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
443 + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
444 + },
445 + "fast-json-stable-stringify": {
446 + "version": "2.1.0",
447 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
448 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
449 + },
450 + "filelist": {
451 + "version": "1.0.1",
452 + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz",
453 + "integrity": "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==",
454 + "requires": {
455 + "minimatch": "^3.0.4"
456 + }
457 + },
458 + "finalhandler": {
459 + "version": "1.1.2",
460 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
461 + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
462 + "requires": {
463 + "debug": "2.6.9",
464 + "encodeurl": "~1.0.2",
465 + "escape-html": "~1.0.3",
466 + "on-finished": "~2.3.0",
467 + "parseurl": "~1.3.3",
468 + "statuses": "~1.5.0",
469 + "unpipe": "~1.0.0"
470 + },
471 + "dependencies": {
472 + "debug": {
473 + "version": "2.6.9",
474 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
475 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
476 + "requires": {
477 + "ms": "2.0.0"
478 + }
479 + }
480 + }
481 + },
482 + "follow-redirects": {
483 + "version": "1.5.10",
484 + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
485 + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
486 + "requires": {
487 + "debug": "=3.1.0"
488 + }
489 + },
490 + "forever-agent": {
491 + "version": "0.6.1",
492 + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
493 + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
494 + },
495 + "form-data": {
496 + "version": "2.3.3",
497 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
498 + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
499 + "requires": {
500 + "asynckit": "^0.4.0",
501 + "combined-stream": "^1.0.6",
502 + "mime-types": "^2.1.12"
503 + }
504 + },
505 + "forwarded": {
506 + "version": "0.1.2",
507 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
508 + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
509 + },
510 + "fresh": {
511 + "version": "0.5.2",
512 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
513 + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
514 + },
515 + "getpass": {
516 + "version": "0.1.7",
517 + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
518 + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
519 + "requires": {
520 + "assert-plus": "^1.0.0"
521 + }
522 + },
523 + "har-schema": {
524 + "version": "2.0.0",
525 + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
526 + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
527 + },
528 + "har-validator": {
529 + "version": "5.1.3",
530 + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
531 + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
532 + "requires": {
533 + "ajv": "^6.5.5",
534 + "har-schema": "^2.0.0"
535 + }
536 + },
537 + "has-flag": {
538 + "version": "3.0.0",
539 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
540 + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
541 + },
542 + "htmlparser2": {
543 + "version": "3.10.1",
544 + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
545 + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
546 + "requires": {
547 + "domelementtype": "^1.3.1",
548 + "domhandler": "^2.3.0",
549 + "domutils": "^1.5.1",
550 + "entities": "^1.1.1",
551 + "inherits": "^2.0.1",
552 + "readable-stream": "^3.1.1"
553 + }
554 + },
555 + "http": {
556 + "version": "0.0.1-security",
557 + "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz",
558 + "integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g=="
559 + },
560 + "http-errors": {
561 + "version": "1.7.2",
562 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
563 + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
564 + "requires": {
565 + "depd": "~1.1.2",
566 + "inherits": "2.0.3",
567 + "setprototypeof": "1.1.1",
568 + "statuses": ">= 1.5.0 < 2",
569 + "toidentifier": "1.0.0"
570 + },
571 + "dependencies": {
572 + "inherits": {
573 + "version": "2.0.3",
574 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
575 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
576 + }
577 + }
578 + },
579 + "http-signature": {
580 + "version": "1.2.0",
581 + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
582 + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
583 + "requires": {
584 + "assert-plus": "^1.0.0",
585 + "jsprim": "^1.2.2",
586 + "sshpk": "^1.7.0"
587 + }
588 + },
589 + "iconv": {
590 + "version": "3.0.0",
591 + "resolved": "https://registry.npmjs.org/iconv/-/iconv-3.0.0.tgz",
592 + "integrity": "sha512-bKTEP55J/e+UutBE3BDBWq6KukPWh3GBYCZGbLEY9vxRDUU2F3bqvPsp/a/DEdIamgF2MvW5lF0Rj1U/7KRL+g=="
593 + },
594 + "iconv-lite": {
595 + "version": "0.5.1",
596 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.1.tgz",
597 + "integrity": "sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==",
598 + "requires": {
599 + "safer-buffer": ">= 2.1.2 < 3"
600 + }
601 + },
602 + "inherits": {
603 + "version": "2.0.4",
604 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
605 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
606 + },
607 + "ipaddr.js": {
608 + "version": "1.9.1",
609 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
610 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
611 + },
612 + "is-typedarray": {
613 + "version": "1.0.0",
614 + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
615 + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
616 + },
617 + "isstream": {
618 + "version": "0.1.2",
619 + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
620 + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
621 + },
622 + "jake": {
623 + "version": "10.8.2",
624 + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz",
625 + "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==",
626 + "requires": {
627 + "async": "0.9.x",
628 + "chalk": "^2.4.2",
629 + "filelist": "^1.0.1",
630 + "minimatch": "^3.0.4"
631 + }
632 + },
633 + "jsbn": {
634 + "version": "0.1.1",
635 + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
636 + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
637 + },
638 + "json-schema": {
639 + "version": "0.2.3",
640 + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
641 + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
642 + },
643 + "json-schema-traverse": {
644 + "version": "0.4.1",
645 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
646 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
647 + },
648 + "json-stringify-safe": {
649 + "version": "5.0.1",
650 + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
651 + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
652 + },
653 + "jsprim": {
654 + "version": "1.4.1",
655 + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
656 + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
657 + "requires": {
658 + "assert-plus": "1.0.0",
659 + "extsprintf": "1.3.0",
660 + "json-schema": "0.2.3",
661 + "verror": "1.10.0"
662 + }
663 + },
664 + "lodash": {
665 + "version": "4.17.15",
666 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
667 + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
668 + },
669 + "media-typer": {
670 + "version": "0.3.0",
671 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
672 + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
673 + },
674 + "merge-descriptors": {
675 + "version": "1.0.1",
676 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
677 + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
678 + },
679 + "methods": {
680 + "version": "1.1.2",
681 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
682 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
683 + },
684 + "mime": {
685 + "version": "1.6.0",
686 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
687 + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
688 + },
689 + "mime-db": {
690 + "version": "1.44.0",
691 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
692 + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
693 + },
694 + "mime-types": {
695 + "version": "2.1.27",
696 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
697 + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
698 + "requires": {
699 + "mime-db": "1.44.0"
700 + }
701 + },
702 + "minimatch": {
703 + "version": "3.0.4",
704 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
705 + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
706 + "requires": {
707 + "brace-expansion": "^1.1.7"
708 + }
709 + },
710 + "ms": {
711 + "version": "2.0.0",
712 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
713 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
714 + },
715 + "mustache": {
716 + "version": "4.0.1",
717 + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.0.1.tgz",
718 + "integrity": "sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA=="
719 + },
720 + "negotiator": {
721 + "version": "0.6.2",
722 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
723 + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
724 + },
725 + "nth-check": {
726 + "version": "1.0.2",
727 + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
728 + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
729 + "requires": {
730 + "boolbase": "~1.0.0"
731 + }
732 + },
733 + "oauth-sign": {
734 + "version": "0.9.0",
735 + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
736 + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
737 + },
738 + "on-finished": {
739 + "version": "2.3.0",
740 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
741 + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
742 + "requires": {
743 + "ee-first": "1.1.1"
744 + }
745 + },
746 + "parse5": {
747 + "version": "3.0.3",
748 + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
749 + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
750 + "requires": {
751 + "@types/node": "*"
752 + }
753 + },
754 + "parseurl": {
755 + "version": "1.3.3",
756 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
757 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
758 + },
759 + "path": {
760 + "version": "0.12.7",
761 + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
762 + "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
763 + "requires": {
764 + "process": "^0.11.1",
765 + "util": "^0.10.3"
766 + }
767 + },
768 + "path-to-regexp": {
769 + "version": "0.1.7",
770 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
771 + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
772 + },
773 + "performance-now": {
774 + "version": "2.1.0",
775 + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
776 + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
777 + },
778 + "process": {
779 + "version": "0.11.10",
780 + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
781 + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
782 + },
783 + "proxy-addr": {
784 + "version": "2.0.6",
785 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
786 + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
787 + "requires": {
788 + "forwarded": "~0.1.2",
789 + "ipaddr.js": "1.9.1"
790 + }
791 + },
792 + "psl": {
793 + "version": "1.8.0",
794 + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
795 + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
796 + },
797 + "punycode": {
798 + "version": "2.1.1",
799 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
800 + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
801 + },
802 + "qs": {
803 + "version": "6.7.0",
804 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
805 + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
806 + },
807 + "range-parser": {
808 + "version": "1.2.1",
809 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
810 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
811 + },
812 + "raw-body": {
813 + "version": "2.4.0",
814 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
815 + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
816 + "requires": {
817 + "bytes": "3.1.0",
818 + "http-errors": "1.7.2",
819 + "iconv-lite": "0.4.24",
820 + "unpipe": "1.0.0"
821 + },
822 + "dependencies": {
823 + "iconv-lite": {
824 + "version": "0.4.24",
825 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
826 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
827 + "requires": {
828 + "safer-buffer": ">= 2.1.2 < 3"
829 + }
830 + }
831 + }
832 + },
833 + "readable-stream": {
834 + "version": "3.6.0",
835 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
836 + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
837 + "requires": {
838 + "inherits": "^2.0.3",
839 + "string_decoder": "^1.1.1",
840 + "util-deprecate": "^1.0.1"
841 + }
842 + },
843 + "request": {
844 + "version": "2.88.2",
845 + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
846 + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
847 + "requires": {
848 + "aws-sign2": "~0.7.0",
849 + "aws4": "^1.8.0",
850 + "caseless": "~0.12.0",
851 + "combined-stream": "~1.0.6",
852 + "extend": "~3.0.2",
853 + "forever-agent": "~0.6.1",
854 + "form-data": "~2.3.2",
855 + "har-validator": "~5.1.3",
856 + "http-signature": "~1.2.0",
857 + "is-typedarray": "~1.0.0",
858 + "isstream": "~0.1.2",
859 + "json-stringify-safe": "~5.0.1",
860 + "mime-types": "~2.1.19",
861 + "oauth-sign": "~0.9.0",
862 + "performance-now": "^2.1.0",
863 + "qs": "~6.5.2",
864 + "safe-buffer": "^5.1.2",
865 + "tough-cookie": "~2.5.0",
866 + "tunnel-agent": "^0.6.0",
867 + "uuid": "^3.3.2"
868 + },
869 + "dependencies": {
870 + "qs": {
871 + "version": "6.5.2",
872 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
873 + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
874 + }
875 + }
876 + },
877 + "requset": {
878 + "version": "0.0.1-security",
879 + "resolved": "https://registry.npmjs.org/requset/-/requset-0.0.1-security.tgz",
880 + "integrity": "sha512-YiF8XxOQofGwWCs8fGjgGc4WzJSD3ktuFKbiqCAWHFrHcDDbq/fQZWbU0CmN0GxAdUHW6OtJcKgsNr3wile37w=="
881 + },
882 + "route": {
883 + "version": "0.2.5",
884 + "resolved": "https://registry.npmjs.org/route/-/route-0.2.5.tgz",
885 + "integrity": "sha1-7dd7g5CRhyZsdnTik4/ZlPugCew="
886 + },
887 + "safe-buffer": {
888 + "version": "5.2.1",
889 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
890 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
891 + },
892 + "safer-buffer": {
893 + "version": "2.1.2",
894 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
895 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
896 + },
897 + "send": {
898 + "version": "0.17.1",
899 + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
900 + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
901 + "requires": {
902 + "debug": "2.6.9",
903 + "depd": "~1.1.2",
904 + "destroy": "~1.0.4",
905 + "encodeurl": "~1.0.2",
906 + "escape-html": "~1.0.3",
907 + "etag": "~1.8.1",
908 + "fresh": "0.5.2",
909 + "http-errors": "~1.7.2",
910 + "mime": "1.6.0",
911 + "ms": "2.1.1",
912 + "on-finished": "~2.3.0",
913 + "range-parser": "~1.2.1",
914 + "statuses": "~1.5.0"
915 + },
916 + "dependencies": {
917 + "debug": {
918 + "version": "2.6.9",
919 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
920 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
921 + "requires": {
922 + "ms": "2.0.0"
923 + },
924 + "dependencies": {
925 + "ms": {
926 + "version": "2.0.0",
927 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
928 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
929 + }
930 + }
931 + },
932 + "ms": {
933 + "version": "2.1.1",
934 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
935 + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
936 + }
937 + }
938 + },
939 + "serve-static": {
940 + "version": "1.14.1",
941 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
942 + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
943 + "requires": {
944 + "encodeurl": "~1.0.2",
945 + "escape-html": "~1.0.3",
946 + "parseurl": "~1.3.3",
947 + "send": "0.17.1"
948 + }
949 + },
950 + "setprototypeof": {
951 + "version": "1.1.1",
952 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
953 + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
954 + },
955 + "sshpk": {
956 + "version": "1.16.1",
957 + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
958 + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
959 + "requires": {
960 + "asn1": "~0.2.3",
961 + "assert-plus": "^1.0.0",
962 + "bcrypt-pbkdf": "^1.0.0",
963 + "dashdash": "^1.12.0",
964 + "ecc-jsbn": "~0.1.1",
965 + "getpass": "^0.1.1",
966 + "jsbn": "~0.1.0",
967 + "safer-buffer": "^2.0.2",
968 + "tweetnacl": "~0.14.0"
969 + }
970 + },
971 + "statuses": {
972 + "version": "1.5.0",
973 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
974 + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
975 + },
976 + "string_decoder": {
977 + "version": "1.3.0",
978 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
979 + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
980 + "requires": {
981 + "safe-buffer": "~5.2.0"
982 + }
983 + },
984 + "supports-color": {
985 + "version": "5.5.0",
986 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
987 + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
988 + "requires": {
989 + "has-flag": "^3.0.0"
990 + }
991 + },
992 + "toidentifier": {
993 + "version": "1.0.0",
994 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
995 + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
996 + },
997 + "tough-cookie": {
998 + "version": "2.5.0",
999 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
1000 + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
1001 + "requires": {
1002 + "psl": "^1.1.28",
1003 + "punycode": "^2.1.1"
1004 + }
1005 + },
1006 + "tunnel-agent": {
1007 + "version": "0.6.0",
1008 + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
1009 + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
1010 + "requires": {
1011 + "safe-buffer": "^5.0.1"
1012 + }
1013 + },
1014 + "tweetnacl": {
1015 + "version": "0.14.5",
1016 + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
1017 + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
1018 + },
1019 + "type-is": {
1020 + "version": "1.6.18",
1021 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1022 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1023 + "requires": {
1024 + "media-typer": "0.3.0",
1025 + "mime-types": "~2.1.24"
1026 + }
1027 + },
1028 + "unpipe": {
1029 + "version": "1.0.0",
1030 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1031 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
1032 + },
1033 + "uri-js": {
1034 + "version": "4.2.2",
1035 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
1036 + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
1037 + "requires": {
1038 + "punycode": "^2.1.0"
1039 + }
1040 + },
1041 + "util": {
1042 + "version": "0.10.4",
1043 + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
1044 + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
1045 + "requires": {
1046 + "inherits": "2.0.3"
1047 + },
1048 + "dependencies": {
1049 + "inherits": {
1050 + "version": "2.0.3",
1051 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1052 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
1053 + }
1054 + }
1055 + },
1056 + "util-deprecate": {
1057 + "version": "1.0.2",
1058 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1059 + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
1060 + },
1061 + "utils-merge": {
1062 + "version": "1.0.1",
1063 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1064 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
1065 + },
1066 + "uuid": {
1067 + "version": "3.4.0",
1068 + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
1069 + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
1070 + },
1071 + "vary": {
1072 + "version": "1.1.2",
1073 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1074 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
1075 + },
1076 + "verror": {
1077 + "version": "1.10.0",
1078 + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
1079 + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
1080 + "requires": {
1081 + "assert-plus": "^1.0.0",
1082 + "core-util-is": "1.0.2",
1083 + "extsprintf": "^1.2.0"
1084 + }
1085 + }
1086 + }
1087 +}
1 +{
2 + "name": "2020_OSS_TermProJect",
3 + "version": "1.0.0",
4 + "description": "야구 기사 크롤링\r ===============",
5 + "main": "app.js",
6 + "dependencies": {
7 + "axios": "^0.19.2",
8 + "body-parser": "^1.19.0",
9 + "cheerio": "^1.0.0-rc.3",
10 + "consolidate": "^0.15.1",
11 + "ejs": "^3.1.3",
12 + "express": "^4.17.1",
13 + "http": "^0.0.1-security",
14 + "iconv": "^3.0.0",
15 + "iconv-lite": "^0.5.1",
16 + "mustache": "^4.0.1",
17 + "path": "^0.12.7",
18 + "request": "^2.88.2",
19 + "requset": "^0.0.1-security",
20 + "route": "^0.2.5"
21 + },
22 + "devDependencies": {},
23 + "scripts": {
24 + "test": "echo \"Error: no test specified\" && exit 1"
25 + },
26 + "repository": {
27 + "type": "git",
28 + "url": "ssh://git@khuhub.khu.ac.kr:12959/2019102228/2020_OSS_TermProJect.git"
29 + },
30 + "keywords": [],
31 + "author": "",
32 + "license": "ISC"
33 +}
1 +/* =============== ##공통 (common) ======================== */
2 +html,body{height:auto;}
3 +body{font-weight:normal;font-family:'맑은 고딕','Malgun Gothic',AppleSDGothicNeo-Regular,Arial,Helvetica,sans-serif;letter-spacing:-1px;}
4 +h1,h2,h3,h4,h5,h6{font-weight:normal;font-family:'맑은 고딕','Malgun Gothic',AppleSDGothicNeo-Regular,Arial,Helvetica,sans-serif;}
5 +p,li,dt,dd,span,strong,em,b,input,button,select,textarea,label,a{font-weight:normal;font-family:'맑은 고딕','Malgun Gothic',AppleSDGothicNeo-Regular,Arial,Helvetica,sans-serif;}
6 +a{display:inline-block;vertical-align:top;}
7 +
8 +h1,h2,h3,h4,h5,h6{margin:200;padding:200;font:inherit;font-weight:bold;}
9 +img{display:inline-block;border:0 none;vertical-align:top;}
10 +cite,code,dfn,del,em,ins,label,q,span,strong,b,i,time,mark,font,kbd,q,s,samp,small,strike,sub,sup,tt,var,u,center{display:inline-block;margin:0;padding:0;vertical-align:top;font:inherit;}
11 +address,cite,em,dfn{font:inherit;}
12 +b,i,strong,optgroup{font:inherit;font-weight:bold;}
13 +div,article,aside,main,menu,details,figure,figcaption,hgroup,footer,header,nav,section,object,summary,iframe{display:block;margin:0;padding:0;font:inherit;}
14 +
15 +
16 +/* =============== ##레이아웃 (layout) ======================== */
17 +
18 +body:not(.body-popup-win){min-width:1130px;}
19 +body.page-main,
20 +body.body-wide1300{min-width:1320px;}
21 +html,body{width:100%;height:100%;margin:0;padding:0;}
22 +body{font-weight:normal;font-size:1em;line-height:1.5em;font-family:sans-serif;color:#000;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;}
23 +
24 +/* list */
25 +dl,dd,ol,ul,li{margin:0;padding:0;}
26 +li{list-style-type:none;}
27 +
28 +/* link */
29 +a{font:inherit;color:inherit;text-decoration:none;cursor:pointer;}
30 +a{background-color:transparent;}
31 +a:link,
32 +a:visited,
33 +a:active,
34 +a:focus{color:inherit;}
35 +
36 +/* 공통 */
37 +[class*='title-type']{position:relative;display:inline-block;box-sizing:border-box;vertical-align:bottom;} /* height:36px; */
38 +[class*='title-type'] [class*='tit'],
39 +[class*='title-type'] [class*='txt']{vertical-align:bottom;}
40 +[class*='title-type'] [class*='tit']{position:relative;box-sizing:border-box;}
41 +[class*='title-type'] .tit{font-size:18px;line-height:22px;}
42 +[class*='title-type'].bold .tit{font-weight:bold;}
43 +[class*='title-type'] .txt{margin-left:6px;color:#666;font-size:10px;line-height:12px;letter-spacing:0;}
44 +[class*='title-type'] .tit+.txt{margin-left:20px;}
45 +
46 +/* =============== List type ======================== */
47 +[class*='list-type']{font-size:0;line-height:1;}
48 +[class*='list-type'] [class*='item']{position:relative;}
49 +[class*='list-type'] [class*='item']:after{content:'';display:block;clear:both;}
50 +[class*='list-type'] .img-con .img{overflow:hidden;position:relative;} /* background-color:#ccc; */
51 +[class*='list-type'] .img-con .img img{width:100%;height:auto;}
52 +[class*='list-type'] .img-con .label-box01{position:absolute;bottom:0;right:0;min-width:50px;height:35px;box-sizing:border-box;padding:8px 8px 7px;background-color:#fff;text-align:center;vertical-align:middle;}
53 +
54 +/* basic */
55 +.hidden-obj{position:absolute;visibility:hidden;top:-9999px;left:-9999px;}
56 +.blind{overflow:hidden;visibility:hidden;position:absolute;top:0;left:0;width:0;height:0;padding:0;font-size:0;line-height:0;}
57 +.display-none{display:none;}
58 +
59 +/* title-type04 */
60 +.title-type04[class*='arr'] .tit{padding-right:20px;}
61 +.title-type04 .tit{font-size:40px;line-height:40px;}
62 +
63 +.img-cover{overflow:hidden;}
64 +
65 +/* list-type038 */
66 +.list-type038 .list{border-top:1px solid #e5e5e5;}
67 +.list-type038 [class*='item-box']{}
68 +.list-type038 .item-box01{display:table;width:100%;border-bottom:1px solid #e5e5e5;}
69 +.list-type038 .item-box01>.img-con,
70 +.list-type038 .item-box01>.news-con,
71 +.list-type038 .item-box01>[class*='info-box']{display:table-cell;padding:30px 0;vertical-align:top;}
72 +.list-type038 .img-con{width:180px;}
73 +.list-type038 .img-con .img{width:170px;height:110px;}
74 +.list-type038 .news-con{max-height:110px;}
75 +.list-type038 .tit-news{font-weight:bold;font-size:18px;line-height:24px;}
76 +.list-type038 .tit-wrap:hover .tit-news{text-decoration:underline;}
77 +.list-type038 .lead{overflow:hidden;max-height:48px;margin-top:12px;color:#666;font-size:14px;line-height:24px;}
78 +.list-type038 .lead:empty{display:none;}
79 +.list-type038 .info-box01{width:110px;}
80 +.list-type038 .info-box01 .txt-time{padding-top:4px;color:#666;font-size:12px;line-height:14px;letter-spacing:0;}
81 +.list-type038 .item-box01 .info-box02{width:156px;padding:0 20px 0 0;vertical-align:middle;text-align:right;}
82 +
83 +/* 공통여백 */
84 +.container>[class*='content']+[class*='content']{margin-top:35px;}
85 +body:not(.page-main) .container>[class*='content']:last-child{padding-bottom:100px;}
86 +[class*='box-type']{margin-top:35px;}
87 +[class*='box-type'] [class*='paging-type01']{margin-top:35px;}
88 +[class*='tab-content'] [class*='box-type'],
89 +.title-page02+[class*='box-type'],
90 +.container>[class*='content']>[class*='box-type']:first-child,
91 +.section01>[class*='box-type']:first-child,
92 +.section02>[class*='box-type']:first-child{margin-top:0;}
93 +
94 +/* =============== Pager ======================== */
95 +/* paging-type01 : 리스트 페이징 */
96 +.paging-type01{font-size:0;text-align:center;}
97 +.paging-type01>a,
98 +.paging-type01 .num{display:inline-block;height:38px;margin:0 5px;vertical-align:top;}
99 +.paging-type01 .first,
100 +.paging-type01 .prev,
101 +.paging-type01 .next,
102 +.paging-type01 .last{position:relative;width:29px;height:38px}
103 +.paging-type01 .first span,
104 +.paging-type01 .prev span,
105 +.paging-type01 .next span,
106 +.paging-type01 .last span{overflow:hidden;position:absolute;top:50%;left:50%;width:11px;height:10px;font-size:1px;color:transparent;margin:-5px 0 0 -5px;background:url(../img/sprites_default01.png?v=20200610_1400) 0 0 no-repeat;}
107 +.paging-type01 .first span{}
108 +.paging-type01 .last span{}
109 +.paging-type01 .prev span{background-position-x:-50px;}
110 +.paging-type01 .next span{}
111 +.paging-type01 .num{width:38px;height:38px;font-size:14px;line-height:38px;color:#000;background-color:#ebebeb;}
112 +.paging-type01 .num.on{color:#fff;background-color:#213989;}
113 +.paging-type01 .num:not(.on):hover{text-decoration:underline;}
...\ No newline at end of file ...\ No newline at end of file
1 +var express = require('express');
2 +var router = express.Router();
3 +
4 +const getXports = require('../crawling/xports.js');
5 +const getZum = require('../crawling/zum.js');
6 +const getChosun = require('../crawling/chosun.js');
7 +const getYna = require('../crawling/yna.js');
8 +const getIsplus1 = require('../crawling/isplus1.js');
9 +const getIsplus2 = require('../crawling/isplus2.js');
10 +const getIsplus3 = require('../crawling/isplus3.js');
11 +const getIsplus4 = require('../crawling/isplus4.js');
12 +
13 +let isplus1;
14 +let isplus2;
15 +let isplus3;
16 +let isplus4;
17 +let xports;
18 +let zum;
19 +let chosun;
20 +let yna;
21 +let newslist;
22 +let doosan = new Array();
23 +const loadlist = async function() {
24 +try {
25 + newlist = []
26 + isplus1 = await getIsplus1();
27 + isplus2 = await getIsplus2();
28 + isplus3 = await getIsplus3();
29 + isplus4 = await getIsplus4();
30 + xports = await getXports();
31 + zum = await getZum();
32 + chosun = await getChosun();
33 + yna = await getYna();
34 +
35 + newslist = isplus1.concat(isplus2, isplus3, isplus4, xports, zum, chosun, yna);
36 + let searchlist = ['두산', '베어스', '김재환', '김태형', '알칸타라'];
37 + for(var i of newslist){
38 + for (var j of searchlist){
39 + if(i.title.indexOf(j) !== -1 || i.summary.indexOf(j) !== -1){
40 + doosan.push(i);
41 + break;
42 + }
43 + }
44 + }
45 + console.log("doosan loaded");
46 +
47 +} catch (e) {
48 + return console.log(e);
49 +}
50 +};
51 +loadlist();
52 +
53 +router.get('/', function(req, res, next){
54 + loadlist();
55 + res.render('doosan', {
56 + doosan : doosan
57 + });
58 +});
59 +
60 +module.exports = router;
1 +var express = require('express');
2 +var router = express.Router();
3 +
4 +const getXports = require('../crawling/xports.js');
5 +const getZum = require('../crawling/zum.js');
6 +const getChosun = require('../crawling/chosun.js');
7 +const getYna = require('../crawling/yna.js');
8 +const getIsplus1 = require('../crawling/isplus1.js');
9 +const getIsplus2 = require('../crawling/isplus2.js');
10 +const getIsplus3 = require('../crawling/isplus3.js');
11 +const getIsplus4 = require('../crawling/isplus4.js');
12 +
13 +let isplus1;
14 +let isplus2;
15 +let isplus3;
16 +let isplus4;
17 +let xports;
18 +let zum;
19 +let chosun;
20 +let yna;
21 +let newslist;
22 +let hanwha = new Array();
23 +const loadlist = async function() {
24 +try {
25 + newlist = []
26 + isplus1 = await getIsplus1();
27 + isplus2 = await getIsplus2();
28 + isplus3 = await getIsplus3();
29 + isplus4 = await getIsplus4();
30 + xports = await getXports();
31 + zum = await getZum();
32 + chosun = await getChosun();
33 + yna = await getYna();
34 +
35 + newslist = isplus1.concat(isplus2, isplus3, isplus4, xports, zum, chosun, yna);
36 + let searchlist = ['한화', '이긇스', '18연패', '김태균', '한용덕', '최원호', '대전'];
37 + for(var i of newslist){
38 + for (var j of searchlist){
39 + if(i.title.indexOf(j) !== -1 || i.summary.indexOf(j) !== -1){
40 + hanwha.push(i);
41 + break;
42 + }
43 + }
44 + }
45 + console.log("hanwha loaded");
46 +
47 +} catch (e) {
48 + return console.log(e);
49 +}
50 +};
51 +loadlist();
52 +
53 +router.get('/', function(req, res, next){
54 + loadlist();
55 + res.render('hanwha', {
56 + hanwha : hanwha
57 + });
58 +});
59 +
60 +module.exports = router;
1 +var express = require('express');
2 +var router = express.Router();
3 +
4 +const getXports = require('../crawling/xports.js');
5 +const getZum = require('../crawling/zum.js');
6 +const getChosun = require('../crawling/chosun.js');
7 +const getYna = require('../crawling/yna.js');
8 +const getIsplus1 = require('../crawling/isplus1.js');
9 +const getIsplus2 = require('../crawling/isplus2.js');
10 +const getIsplus3 = require('../crawling/isplus3.js');
11 +const getIsplus4 = require('../crawling/isplus4.js');
12 +
13 +let isplus1;
14 +let isplus2;
15 +let isplus3;
16 +let isplus4;
17 +let xports;
18 +let zum;
19 +let chosun;
20 +let yna;
21 +let newslist;
22 +const loadlist = async function() {
23 +try {
24 + newlist = []
25 + isplus1 = await getIsplus1();
26 + isplus2 = await getIsplus2();
27 + isplus3 = await getIsplus3();
28 + isplus4 = await getIsplus4();
29 + xports = await getXports();
30 + zum = await getZum();
31 + chosun = await getChosun();
32 + yna = await getYna();
33 +
34 + newslist = isplus1.concat(isplus2, isplus3, isplus4, xports, zum, chosun, yna);
35 + console.log("index loaded");
36 +
37 +} catch (e) {
38 + return console.log(e);
39 +}
40 +};
41 +loadlist();
42 +
43 +router.get('/', function(req, res, next){
44 + loadlist();
45 + res.render('index', {
46 + newslist : newslist
47 + });
48 +});
49 +
50 +module.exports = router;
1 +var express = require('express');
2 +var router = express.Router();
3 +
4 +const getXports = require('../crawling/xports.js');
5 +const getZum = require('../crawling/zum.js');
6 +const getChosun = require('../crawling/chosun.js');
7 +const getYna = require('../crawling/yna.js');
8 +const getIsplus1 = require('../crawling/isplus1.js');
9 +const getIsplus2 = require('../crawling/isplus2.js');
10 +const getIsplus3 = require('../crawling/isplus3.js');
11 +const getIsplus4 = require('../crawling/isplus4.js');
12 +
13 +let isplus1;
14 +let isplus2;
15 +let isplus3;
16 +let isplus4;
17 +let xports;
18 +let zum;
19 +let chosun;
20 +let yna;
21 +let newslist;
22 +let kia = new Array();
23 +const loadlist = async function() {
24 +try {
25 + newlist = []
26 + isplus1 = await getIsplus1();
27 + isplus2 = await getIsplus2();
28 + isplus3 = await getIsplus3();
29 + isplus4 = await getIsplus4();
30 + xports = await getXports();
31 + zum = await getZum();
32 + chosun = await getChosun();
33 + yna = await getYna();
34 +
35 + newslist = isplus1.concat(isplus2, isplus3, isplus4, xports, zum, chosun, yna);
36 + let searchlist = ['KIA', 'kia', '기아', '타이거즈', '최형우', '윌리엄스', '광주'];
37 + for(var i of newslist){
38 + for (var j of searchlist){
39 + if(i.title.indexOf(j) !== -1 || i.summary.indexOf(j) !== -1){
40 + kia.push(i);
41 + break;
42 + }
43 + }
44 + }
45 + console.log("kia loaded");
46 +
47 +} catch (e) {
48 + return console.log(e);
49 +}
50 +};
51 +loadlist();
52 +
53 +router.get('/', function(req, res, next){
54 + loadlist();
55 + res.render('kia', {
56 + kia : kia
57 + });
58 +});
59 +
60 +module.exports = router;
1 +var express = require('express');
2 +var router = express.Router();
3 +
4 +const getXports = require('../crawling/xports.js');
5 +const getZum = require('../crawling/zum.js');
6 +const getChosun = require('../crawling/chosun.js');
7 +const getYna = require('../crawling/yna.js');
8 +const getIsplus1 = require('../crawling/isplus1.js');
9 +const getIsplus2 = require('../crawling/isplus2.js');
10 +const getIsplus3 = require('../crawling/isplus3.js');
11 +const getIsplus4 = require('../crawling/isplus4.js');
12 +
13 +let isplus1;
14 +let isplus2;
15 +let isplus3;
16 +let isplus4;
17 +let xports;
18 +let zum;
19 +let chosun;
20 +let yna;
21 +let newslist;
22 +let kiwoom = new Array();
23 +const loadlist = async function() {
24 +try {
25 + newlist = []
26 + isplus1 = await getIsplus1();
27 + isplus2 = await getIsplus2();
28 + isplus3 = await getIsplus3();
29 + isplus4 = await getIsplus4();
30 + xports = await getXports();
31 + zum = await getZum();
32 + chosun = await getChosun();
33 + yna = await getYna();
34 +
35 + newslist = isplus1.concat(isplus2, isplus3, isplus4, xports, zum, chosun, yna);
36 + let searchlist = ['키움', '히어로즈', '박병호', '손혁', '고척'];
37 + for(var i of newslist){
38 + for (var j of searchlist){
39 + if(i.title.indexOf(j) !== -1 || i.summary.indexOf(j) !== -1){
40 + kiwoom.push(i);
41 + break;
42 + }
43 + }
44 + }
45 + console.log("kiwoom loaded");
46 +
47 +} catch (e) {
48 + return console.log(e);
49 +}
50 +};
51 +loadlist();
52 +
53 +router.get('/', function(req, res, next){
54 + loadlist();
55 + res.render('kiwoom', {
56 + kiwoom : kiwoom
57 + });
58 +});
59 +
60 +module.exports = router;
1 +var express = require('express');
2 +var router = express.Router();
3 +
4 +const getXports = require('../crawling/xports.js');
5 +const getZum = require('../crawling/zum.js');
6 +const getChosun = require('../crawling/chosun.js');
7 +const getYna = require('../crawling/yna.js');
8 +const getIsplus1 = require('../crawling/isplus1.js');
9 +const getIsplus2 = require('../crawling/isplus2.js');
10 +const getIsplus3 = require('../crawling/isplus3.js');
11 +const getIsplus4 = require('../crawling/isplus4.js');
12 +
13 +let isplus1;
14 +let isplus2;
15 +let isplus3;
16 +let isplus4;
17 +let xports;
18 +let zum;
19 +let chosun;
20 +let yna;
21 +let newslist;
22 +let kt = new Array();
23 +const loadlist = async function() {
24 +try {
25 + newlist = []
26 + isplus1 = await getIsplus1();
27 + isplus2 = await getIsplus2();
28 + isplus3 = await getIsplus3();
29 + isplus4 = await getIsplus4();
30 + xports = await getXports();
31 + zum = await getZum();
32 + chosun = await getChosun();
33 + yna = await getYna();
34 +
35 + newslist = isplus1.concat(isplus2, isplus3, isplus4, xports, zum, chosun, yna);
36 + let searchlist = ['kt', 'KT', 'wiz', 'WIZ', '케이티', '위즈', '강백호', '이강철', '수원'];
37 + for(var i of newslist){
38 + for (var j of searchlist){
39 + if(i.title.indexOf(j) !== -1 || i.summary.indexOf(j) !== -1){
40 + kt.push(i);
41 + break;
42 + }
43 + }
44 + }
45 + console.log("kt loaded");
46 +
47 +} catch (e) {
48 + return console.log(e);
49 +}
50 +};
51 +loadlist();
52 +
53 +router.get('/', function(req, res, next){
54 + loadlist();
55 + res.render('kt', {
56 + kt : kt
57 + });
58 +});
59 +
60 +module.exports = router;
1 +var express = require('express');
2 +var router = express.Router();
3 +
4 +const getXports = require('../crawling/xports.js');
5 +const getZum = require('../crawling/zum.js');
6 +const getChosun = require('../crawling/chosun.js');
7 +const getYna = require('../crawling/yna.js');
8 +const getIsplus1 = require('../crawling/isplus1.js');
9 +const getIsplus2 = require('../crawling/isplus2.js');
10 +const getIsplus3 = require('../crawling/isplus3.js');
11 +const getIsplus4 = require('../crawling/isplus4.js');
12 +
13 +let isplus1;
14 +let isplus2;
15 +let isplus3;
16 +let isplus4;
17 +let xports;
18 +let zum;
19 +let chosun;
20 +let yna;
21 +let newslist;
22 +let lg = new Array();
23 +const loadlist = async function() {
24 +try {
25 + newlist = []
26 + isplus1 = await getIsplus1();
27 + isplus2 = await getIsplus2();
28 + isplus3 = await getIsplus3();
29 + isplus4 = await getIsplus4();
30 + xports = await getXports();
31 + zum = await getZum();
32 + chosun = await getChosun();
33 + yna = await getYna();
34 +
35 + newslist = isplus1.concat(isplus2, isplus3, isplus4, xports, zum, chosun, yna);
36 + let searchlist = ['LG', 'lg', '엘지', '트윈스', '라모스', '류중일'];
37 + for(var i of newslist){
38 + for (var j of searchlist){
39 + if(i.title.indexOf(j) !== -1 || i.summary.indexOf(j) !== -1){
40 + lg.push(i);
41 + break;
42 + }
43 + }
44 + }
45 + console.log("lg loaded");
46 +
47 +} catch (e) {
48 + return console.log(e);
49 +}
50 +};
51 +loadlist();
52 +
53 +router.get('/', function(req, res, next){
54 + loadlist();
55 + res.render('lg', {
56 + lg : lg
57 + });
58 +});
59 +
60 +module.exports = router;
1 +var express = require('express');
2 +var router = express.Router();
3 +
4 +const getXports = require('../crawling/xports.js');
5 +const getZum = require('../crawling/zum.js');
6 +const getChosun = require('../crawling/chosun.js');
7 +const getYna = require('../crawling/yna.js');
8 +const getIsplus1 = require('../crawling/isplus1.js');
9 +const getIsplus2 = require('../crawling/isplus2.js');
10 +const getIsplus3 = require('../crawling/isplus3.js');
11 +const getIsplus4 = require('../crawling/isplus4.js');
12 +
13 +let isplus1;
14 +let isplus2;
15 +let isplus3;
16 +let isplus4;
17 +let xports;
18 +let zum;
19 +let chosun;
20 +let yna;
21 +let newslist;
22 +let lotte = new Array();
23 +const loadlist = async function() {
24 +try {
25 + newlist = []
26 + isplus1 = await getIsplus1();
27 + isplus2 = await getIsplus2();
28 + isplus3 = await getIsplus3();
29 + isplus4 = await getIsplus4();
30 + xports = await getXports();
31 + zum = await getZum();
32 + chosun = await getChosun();
33 + yna = await getYna();
34 +
35 + newslist = isplus1.concat(isplus2, isplus3, isplus4, xports, zum, chosun, yna);
36 + let searchlist = ['롯데', '자이언츠', '이대호', '허문회', '사직'];
37 + for(var i of newslist){
38 + for (var j of searchlist){
39 + if(i.title.indexOf(j) !== -1 || i.summary.indexOf(j) !== -1){
40 + lotte.push(i);
41 + break;
42 + }
43 + }
44 + }
45 + console.log("lotte loaded");
46 +
47 +} catch (e) {
48 + return console.log(e);
49 +}
50 +};
51 +loadlist();
52 +
53 +router.get('/', function(req, res, next){
54 + loadlist();
55 + res.render('lotte', {
56 + lotte : lotte
57 + });
58 +});
59 +
60 +module.exports = router;
1 +var express = require('express');
2 +var router = express.Router();
3 +
4 +const getXports = require('../crawling/xports.js');
5 +const getZum = require('../crawling/zum.js');
6 +const getChosun = require('../crawling/chosun.js');
7 +const getYna = require('../crawling/yna.js');
8 +const getIsplus1 = require('../crawling/isplus1.js');
9 +const getIsplus2 = require('../crawling/isplus2.js');
10 +const getIsplus3 = require('../crawling/isplus3.js');
11 +const getIsplus4 = require('../crawling/isplus4.js');
12 +
13 +let isplus1;
14 +let isplus2;
15 +let isplus3;
16 +let isplus4;
17 +let xports;
18 +let zum;
19 +let chosun;
20 +let yna;
21 +let newslist;
22 +let nc = new Array();
23 +const loadlist = async function() {
24 +try {
25 + newlist = []
26 + isplus1 = await getIsplus1();
27 + isplus2 = await getIsplus2();
28 + isplus3 = await getIsplus3();
29 + isplus4 = await getIsplus4();
30 + xports = await getXports();
31 + zum = await getZum();
32 + chosun = await getChosun();
33 + yna = await getYna();
34 +
35 + newslist = isplus1.concat(isplus2, isplus3, isplus4, xports, zum, chosun, yna);
36 + let searchlist = ['NC', 'nc', '엔씨', '다이노스', '알테어', '강진성', '깡', '이동욱', '창원'];
37 + for(var i of newslist){
38 + for (var j of searchlist){
39 + if(i.title.indexOf(j) !== -1 || i.summary.indexOf(j) !== -1){
40 + nc.push(i);
41 + break;
42 + }
43 + }
44 + }
45 + console.log("nc loaded");
46 +
47 +} catch (e) {
48 + return console.log(e);
49 +}
50 +};
51 +loadlist();
52 +
53 +router.get('/', function(req, res, next){
54 + loadlist();
55 + res.render('nc', {
56 + nc : nc
57 + });
58 +});
59 +
60 +module.exports = router;
1 +var express = require('express');
2 +var router = express.Router();
3 +
4 +const getXports = require('../crawling/xports.js');
5 +const getZum = require('../crawling/zum.js');
6 +const getChosun = require('../crawling/chosun.js');
7 +const getYna = require('../crawling/yna.js');
8 +const getIsplus1 = require('../crawling/isplus1.js');
9 +const getIsplus2 = require('../crawling/isplus2.js');
10 +const getIsplus3 = require('../crawling/isplus3.js');
11 +const getIsplus4 = require('../crawling/isplus4.js');
12 +
13 +let isplus1;
14 +let isplus2;
15 +let isplus3;
16 +let isplus4;
17 +let xports;
18 +let zum;
19 +let chosun;
20 +let yna;
21 +let newslist;
22 +let samsung = new Array();
23 +const loadlist = async function() {
24 +try {
25 + newlist = []
26 + isplus1 = await getIsplus1();
27 + isplus2 = await getIsplus2();
28 + isplus3 = await getIsplus3();
29 + isplus4 = await getIsplus4();
30 + xports = await getXports();
31 + zum = await getZum();
32 + chosun = await getChosun();
33 + yna = await getYna();
34 +
35 + newslist = isplus1.concat(isplus2, isplus3, isplus4, xports, zum, chosun, yna);
36 + let searchlist = ['삼성', '라이온즈', '구자욱', '허삼영', '대구'];
37 + for(var i of newslist){
38 + for (var j of searchlist){
39 + if(i.title.indexOf(j) !== -1 || i.summary.indexOf(j) !== -1){
40 + samsung.push(i);
41 + break;
42 + }
43 + }
44 + }
45 + console.log("samsung loaded");
46 +
47 +} catch (e) {
48 + return console.log(e);
49 +}
50 +};
51 +loadlist();
52 +
53 +router.get('/', function(req, res, next){
54 + loadlist();
55 + res.render('samsung', {
56 + samsung : samsung
57 + });
58 +});
59 +
60 +module.exports = router;
1 +var express = require('express');
2 +var router = express.Router();
3 +
4 +const getXports = require('../crawling/xports.js');
5 +const getZum = require('../crawling/zum.js');
6 +const getChosun = require('../crawling/chosun.js');
7 +const getYna = require('../crawling/yna.js');
8 +const getIsplus1 = require('../crawling/isplus1.js');
9 +const getIsplus2 = require('../crawling/isplus2.js');
10 +const getIsplus3 = require('../crawling/isplus3.js');
11 +const getIsplus4 = require('../crawling/isplus4.js');
12 +
13 +let isplus1;
14 +let isplus2;
15 +let isplus3;
16 +let isplus4;
17 +let xports;
18 +let zum;
19 +let chosun;
20 +let yna;
21 +let newslist;
22 +let sk = new Array();
23 +const loadlist = async function() {
24 +try {
25 + newlist = []
26 + isplus1 = await getIsplus1();
27 + isplus2 = await getIsplus2();
28 + isplus3 = await getIsplus3();
29 + isplus4 = await getIsplus4();
30 + xports = await getXports();
31 + zum = await getZum();
32 + chosun = await getChosun();
33 + yna = await getYna();
34 +
35 + newslist = isplus1.concat(isplus2, isplus3, isplus4, xports, zum, chosun, yna);
36 + let searchlist = ['sk', 'SK', '와이번스', '로맥', '염경엽', '인천', '문학'];
37 + for(var i of newslist){
38 + for (var j of searchlist){
39 + if(i.title.indexOf(j) !== -1 || i.summary.indexOf(j) !== -1){
40 + sk.push(i);
41 + break;
42 + }
43 + }
44 + }
45 + console.log("sk loaded");
46 +
47 +} catch (e) {
48 + return console.log(e);
49 +}
50 +};
51 +loadlist();
52 +
53 +router.get('/', function(req, res, next){
54 + loadlist();
55 + res.render('sk', {
56 + sk : sk
57 + });
58 +});
59 +
60 +module.exports = router;
1 +<!DOCTYPE html>
2 +<html>
3 +
4 + <head>
5 + <meta charset="utf-8">
6 + <link rel="stylesheet" href="/stylesheets/style.css" />
7 + <title>YaguMoa[ossswoo.tk]</title>
8 + </head>
9 +
10 + <body class = "body-news-list page-sports body-static" data-nav="sports">
11 + <div id = "container" class = "wrap-container">
12 + <div class = "container">
13 + <div class = 'content03 width1100 line01'>
14 + <div class = "section01">
15 + <div class = 'title-page02'>
16 + <h1 class = "title-type04 bold">
17 + <span class = "tit">야구 모아</span>
18 + </h1>
19 + </div>
20 + <section class = 'box-type box-latest01'>
21 + <strong class="hidden-obj">DOOSAN 목록</strong>
22 + <div class = "paging paging-type01">
23 + <a href="/" class="num">All</a>
24 + <a href="/nc" class="num">NC</a>
25 + <a href="/lg" class="num">LG</a>
26 + <strong class = "num on">두산</strong>
27 + <a href="/kiwoom" class="num">키움</a>
28 + <a href="/kia" class="num">KIA</a>
29 + <a href="/lotte" class="num">롯데</a>
30 + <a href="/samsung" class="num">삼성</a>
31 + <a href="/kt" class="num">KT</a>
32 + <a href="/sk" class="num">SK</a>
33 + <a href="/hanwha" class="num">한화</a>
34 + </div>
35 + <div class = "list-type038">
36 + <ul class = "list">
37 + <% for(var i of doosan) { %>
38 + <li>
39 + <div class='item-box01'>
40 + <div class='info-box01'>
41 + <span class="blind">송고시간</span>
42 + <span class='txt-time'><%= i.datetime %></span>
43 + </div>
44 + <% if (i.image_url != undefined) { %>
45 + <figure class='img-con'>
46 + <a class = "img img-cover imgLiquid_bgSize imgLiquid_ready" style = "background-size: cover; background-position: center top; background-repeat: no-repeat;" href = <%= i.url %> >
47 + <img src = <%= i.image_url %>>
48 + </a>
49 + </figure>
50 + <% } %>
51 + <div class='news-con'>
52 + <a class = 'tit-wrap' href = <%= i.url %>>
53 + <strong class = 'tit-news'><%= i.title %></strong>
54 + </a>
55 + <p class = "lead">
56 + <%= i.summary %>
57 + </p>
58 + </div>
59 + </div>
60 + </li>
61 + <% } %>
62 + </ul>
63 + </div>
64 + </section>
65 + </div>
66 + </div>
67 + </div>
68 + </div>
69 + </body>
70 +</html>
1 +<!DOCTYPE html>
2 +<html>
3 +
4 + <head>
5 + <meta charset="utf-8">
6 + <link rel="stylesheet" href="/stylesheets/style.css" />
7 + <title>YaguMoa[ossswoo.tk]</title>
8 + </head>
9 +
10 + <body class = "body-news-list page-sports body-static" data-nav="sports">
11 + <div id = "container" class = "wrap-container">
12 + <div class = "container">
13 + <div class = 'content03 width1100 line01'>
14 + <div class = "section01">
15 + <div class = 'title-page02'>
16 + <h1 class = "title-type04 bold">
17 + <span class = "tit">야구 모아</span>
18 + </h1>
19 + </div>
20 + <section class = 'box-type box-latest01'>
21 + <strong class="hidden-obj">HANWHA 목록</strong>
22 + <div class = "paging paging-type01">
23 + <a href="/" class="num">All</a>
24 + <a href="/nc" class="num">NC</a>
25 + <a href="/lg" class="num">LG</a>
26 + <a href="/doosan" class="num">두산</a>
27 + <a href="/kiwoom" class="num">키움</a>
28 + <a href="/kia" class="num">KIA</a>
29 + <a href="/lotte" class="num">롯데</a>
30 + <a href="/samsung" class="num">삼성</a>
31 + <a href="/kt" class="num">KT</a>
32 + <a href="/sk" class="num">SK</a>
33 + <strong class = "num on">한화</strong>
34 + </div>
35 + <div class = "list-type038">
36 + <ul class = "list">
37 + <% for(var i of hanwha) { %>
38 + <li>
39 + <div class='item-box01'>
40 + <div class='info-box01'>
41 + <span class="blind">송고시간</span>
42 + <span class='txt-time'><%= i.datetime %></span>
43 + </div>
44 + <% if (i.image_url != undefined) { %>
45 + <figure class='img-con'>
46 + <a class = "img img-cover imgLiquid_bgSize imgLiquid_ready" style = "background-size: cover; background-position: center top; background-repeat: no-repeat;" href = <%= i.url %> >
47 + <img src = <%= i.image_url %>>
48 + </a>
49 + </figure>
50 + <% } %>
51 + <div class='news-con'>
52 + <a class = 'tit-wrap' href = <%= i.url %>>
53 + <strong class = 'tit-news'><%= i.title %></strong>
54 + </a>
55 + <p class = "lead">
56 + <%= i.summary %>
57 + </p>
58 + </div>
59 + </div>
60 + </li>
61 + <% } %>
62 + </ul>
63 + </div>
64 + </section>
65 + </div>
66 + </div>
67 + </div>
68 + </div>
69 + </body>
70 +</html>
1 +<!DOCTYPE html>
2 +<html>
3 +
4 + <head>
5 + <meta charset="utf-8">
6 + <link rel="stylesheet" href="/stylesheets/style.css" />
7 + <title>YaguMoa[ossswoo.tk]</title>
8 + </head>
9 +
10 + <body class = "body-news-list page-sports body-static" data-nav="sports">
11 + <div id = "container" class = "wrap-container">
12 + <div class = "container">
13 + <div class = 'content03 width1100 line01'>
14 + <div class = "section01">
15 + <div class = 'title-page02'>
16 + <h1 class = "title-type04 bold">
17 + <span class = "tit">야구 모아</span>
18 + </h1>
19 + </div>
20 + <section class = 'box-type box-latest01'>
21 + <strong class="hidden-obj">야구 기사 목록</strong>
22 + <div class = "paging paging-type01">
23 + <strong class = "num on">All</strong>
24 + <a href="/nc" class="num">NC</a>
25 + <a href="/lg" class="num">LG</a>
26 + <a href="/doosan" class="num">두산</a>
27 + <a href="/kiwoom" class="num">키움</a>
28 + <a href="/kia" class="num">KIA</a>
29 + <a href="/lotte" class="num">롯데</a>
30 + <a href="/samsung" class="num">삼성</a>
31 + <a href="/kt" class="num">KT</a>
32 + <a href="/sk" class="num">SK</a>
33 + <a href="/hanwha" class="num">한화</a>
34 + </div>
35 + <div class = "list-type038">
36 + <ul class = "list">
37 + <% for(var i of newslist) { %>
38 + <li>
39 + <div class='item-box01'>
40 + <div class='info-box01'>
41 + <span class="blind">송고시간</span>
42 + <span class='txt-time'><%= i.datetime %></span>
43 + </div>
44 + <% if (i.image_url != undefined) { %>
45 + <figure class='img-con'>
46 + <a class = "img img-cover imgLiquid_bgSize imgLiquid_ready" style = "background-size: cover; background-position: center top; background-repeat: no-repeat;" href = <%= i.url %> >
47 + <img src = <%= i.image_url %>>
48 + </a>
49 + </figure>
50 + <% } %>
51 + <div class='news-con'>
52 + <a class = 'tit-wrap' href = <%= i.url %>>
53 + <strong class = 'tit-news'><%= i.title %></strong>
54 + </a>
55 + <p class = "lead">
56 + <%= i.summary %>
57 + </p>
58 + </div>
59 + </div>
60 + </li>
61 + <% } %>
62 + </ul>
63 + </div>
64 + </section>
65 + </div>
66 + </div>
67 + </div>
68 + </div>
69 + </body>
70 +</html>
1 +<!DOCTYPE html>
2 +<html>
3 +
4 + <head>
5 + <meta charset="utf-8">
6 + <link rel="stylesheet" href="/stylesheets/style.css" />
7 + <title>YaguMoa[ossswoo.tk]</title>
8 + </head>
9 +
10 + <body class = "body-news-list page-sports body-static" data-nav="sports">
11 + <div id = "container" class = "wrap-container">
12 + <div class = "container">
13 + <div class = 'content03 width1100 line01'>
14 + <div class = "section01">
15 + <div class = 'title-page02'>
16 + <h1 class = "title-type04 bold">
17 + <span class = "tit">야구 모아</span>
18 + </h1>
19 + </div>
20 + <section class = 'box-type box-latest01'>
21 + <strong class="hidden-obj">NC 목록</strong>
22 + <div class = "paging paging-type01">
23 + <a href="/" class="num">All</a>
24 + <a href="/nc" class="num">NC</a>
25 + <a href="/lg" class="num">LG</a>
26 + <a href="/doosan" class="num">두산</a>
27 + <a href="/kiwoom" class="num">키움</a>
28 + <strong class = "num on">KIA</strong>
29 + <a href="/lotte" class="num">롯데</a>
30 + <a href="/samsung" class="num">삼성</a>
31 + <a href="/kt" class="num">KT</a>
32 + <a href="/sk" class="num">SK</a>
33 + <a href="/hanwha" class="num">한화</a>
34 + </div>
35 + <div class = "list-type038">
36 + <ul class = "list">
37 + <% for(var i of kia) { %>
38 + <li>
39 + <div class='item-box01'>
40 + <div class='info-box01'>
41 + <span class="blind">송고시간</span>
42 + <span class='txt-time'><%= i.datetime %></span>
43 + </div>
44 + <% if (i.image_url != undefined) { %>
45 + <figure class='img-con'>
46 + <a class = "img img-cover imgLiquid_bgSize imgLiquid_ready" style = "background-size: cover; background-position: center top; background-repeat: no-repeat;" href = <%= i.url %> >
47 + <img src = <%= i.image_url %>>
48 + </a>
49 + </figure>
50 + <% } %>
51 + <div class='news-con'>
52 + <a class = 'tit-wrap' href = <%= i.url %>>
53 + <strong class = 'tit-news'><%= i.title %></strong>
54 + </a>
55 + <p class = "lead">
56 + <%= i.summary %>
57 + </p>
58 + </div>
59 + </div>
60 + </li>
61 + <% } %>
62 + </ul>
63 + </div>
64 + </section>
65 + </div>
66 + </div>
67 + </div>
68 + </div>
69 + </body>
70 +</html>
1 +<!DOCTYPE html>
2 +<html>
3 +
4 + <head>
5 + <meta charset="utf-8">
6 + <link rel="stylesheet" href="/stylesheets/style.css" />
7 + <title>YaguMoa[ossswoo.tk]</title>
8 + </head>
9 +
10 + <body class = "body-news-list page-sports body-static" data-nav="sports">
11 + <div id = "container" class = "wrap-container">
12 + <div class = "container">
13 + <div class = 'content03 width1100 line01'>
14 + <div class = "section01">
15 + <div class = 'title-page02'>
16 + <h1 class = "title-type04 bold">
17 + <span class = "tit">야구 모아</span>
18 + </h1>
19 + </div>
20 + <section class = 'box-type box-latest01'>
21 + <strong class="hidden-obj">KIWOOM 목록</strong>
22 + <div class = "paging paging-type01">
23 + <a href="/" class="num">All</a>
24 + <a href="/nc" class="num">NC</a>
25 + <a href="/lg" class="num">LG</a>
26 + <a href="/doosan" class="num">두산</a>
27 + <strong class = "num on">키움</strong>
28 + <a href="/kia" class="num">KIA</a>
29 + <a href="/lotte" class="num">롯데</a>
30 + <a href="/samsung" class="num">삼성</a>
31 + <a href="/kt" class="num">KT</a>
32 + <a href="/sk" class="num">SK</a>
33 + <a href="/hanwha" class="num">한화</a>
34 + </div>
35 + <div class = "list-type038">
36 + <ul class = "list">
37 + <% for(var i of kiwoom) { %>
38 + <li>
39 + <div class='item-box01'>
40 + <div class='info-box01'>
41 + <span class="blind">송고시간</span>
42 + <span class='txt-time'><%= i.datetime %></span>
43 + </div>
44 + <% if (i.image_url != undefined) { %>
45 + <figure class='img-con'>
46 + <a class = "img img-cover imgLiquid_bgSize imgLiquid_ready" style = "background-size: cover; background-position: center top; background-repeat: no-repeat;" href = <%= i.url %> >
47 + <img src = <%= i.image_url %>>
48 + </a>
49 + </figure>
50 + <% } %>
51 + <div class='news-con'>
52 + <a class = 'tit-wrap' href = <%= i.url %>>
53 + <strong class = 'tit-news'><%= i.title %></strong>
54 + </a>
55 + <p class = "lead">
56 + <%= i.summary %>
57 + </p>
58 + </div>
59 + </div>
60 + </li>
61 + <% } %>
62 + </ul>
63 + </div>
64 + </section>
65 + </div>
66 + </div>
67 + </div>
68 + </div>
69 + </body>
70 +</html>
1 +<!DOCTYPE html>
2 +<html>
3 +
4 + <head>
5 + <meta charset="utf-8">
6 + <link rel="stylesheet" href="/stylesheets/style.css" />
7 + <title>YaguMoa[ossswoo.tk]</title>
8 + </head>
9 +
10 + <body class = "body-news-list page-sports body-static" data-nav="sports">
11 + <div id = "container" class = "wrap-container">
12 + <div class = "container">
13 + <div class = 'content03 width1100 line01'>
14 + <div class = "section01">
15 + <div class = 'title-page02'>
16 + <h1 class = "title-type04 bold">
17 + <span class = "tit">야구 모아</span>
18 + </h1>
19 + </div>
20 + <section class = 'box-type box-latest01'>
21 + <strong class="hidden-obj">KT 목록</strong>
22 + <div class = "paging paging-type01">
23 + <a href="/" class="num">All</a>
24 + <a href="/nc" class="num">NC</a>
25 + <a href="/lg" class="num">LG</a>
26 + <a href="/doosan" class="num">두산</a>
27 + <a href="/kiwoom" class="num">키움</a>
28 + <a href="/kia" class="num">KIA</a>
29 + <a href="/lotte" class="num">롯데</a>
30 + <a href="/samsung" class="num">삼성</a>
31 + <strong class = "num on">KT</strong>
32 + <a href="/sk" class="num">SK</a>
33 + <a href="/hanwha" class="num">한화</a>
34 + </div>
35 + <div class = "list-type038">
36 + <ul class = "list">
37 + <% for(var i of kt) { %>
38 + <li>
39 + <div class='item-box01'>
40 + <div class='info-box01'>
41 + <span class="blind">송고시간</span>
42 + <span class='txt-time'><%= i.datetime %></span>
43 + </div>
44 + <% if (i.image_url != undefined) { %>
45 + <figure class='img-con'>
46 + <a class = "img img-cover imgLiquid_bgSize imgLiquid_ready" style = "background-size: cover; background-position: center top; background-repeat: no-repeat;" href = <%= i.url %> >
47 + <img src = <%= i.image_url %>>
48 + </a>
49 + </figure>
50 + <% } %>
51 + <div class='news-con'>
52 + <a class = 'tit-wrap' href = <%= i.url %>>
53 + <strong class = 'tit-news'><%= i.title %></strong>
54 + </a>
55 + <p class = "lead">
56 + <%= i.summary %>
57 + </p>
58 + </div>
59 + </div>
60 + </li>
61 + <% } %>
62 + </ul>
63 + </div>
64 + </section>
65 + </div>
66 + </div>
67 + </div>
68 + </div>
69 + </body>
70 +</html>
1 +<!DOCTYPE html>
2 +<html>
3 +
4 + <head>
5 + <meta charset="utf-8">
6 + <link rel="stylesheet" href="/stylesheets/style.css" />
7 + <title>YaguMoa[ossswoo.tk]</title>
8 + </head>
9 +
10 + <body class = "body-news-list page-sports body-static" data-nav="sports">
11 + <div id = "container" class = "wrap-container">
12 + <div class = "container">
13 + <div class = 'content03 width1100 line01'>
14 + <div class = "section01">
15 + <div class = 'title-page02'>
16 + <h1 class = "title-type04 bold">
17 + <span class = "tit">야구 모아</span>
18 + </h1>
19 + </div>
20 + <section class = 'box-type box-latest01'>
21 + <strong class="hidden-obj">LG 목록</strong>
22 + <div class = "paging paging-type01">
23 + <a href="/" class="num">All</a>
24 + <a href="/nc" class="num">NC</a>
25 + <strong class = "num on">LG</strong>
26 + <a href="/doosan" class="num">두산</a>
27 + <a href="/kiwoom" class="num">키움</a>
28 + <a href="/kia" class="num">KIA</a>
29 + <a href="/lotte" class="num">롯데</a>
30 + <a href="/samsung" class="num">삼성</a>
31 + <a href="/kt" class="num">KT</a>
32 + <a href="/sk" class="num">SK</a>
33 + <a href="/hanwha" class="num">한화</a>
34 + </div>
35 + <div class = "list-type038">
36 + <ul class = "list">
37 + <% for(var i of lg) { %>
38 + <li>
39 + <div class='item-box01'>
40 + <div class='info-box01'>
41 + <span class="blind">송고시간</span>
42 + <span class='txt-time'><%= i.datetime %></span>
43 + </div>
44 + <% if (i.image_url != undefined) { %>
45 + <figure class='img-con'>
46 + <a class = "img img-cover imgLiquid_bgSize imgLiquid_ready" style = "background-size: cover; background-position: center top; background-repeat: no-repeat;" href = <%= i.url %> >
47 + <img src = <%= i.image_url %>>
48 + </a>
49 + </figure>
50 + <% } %>
51 + <div class='news-con'>
52 + <a class = 'tit-wrap' href = <%= i.url %>>
53 + <strong class = 'tit-news'><%= i.title %></strong>
54 + </a>
55 + <p class = "lead">
56 + <%= i.summary %>
57 + </p>
58 + </div>
59 + </div>
60 + </li>
61 + <% } %>
62 + </ul>
63 + </div>
64 + </section>
65 + </div>
66 + </div>
67 + </div>
68 + </div>
69 + </body>
70 +</html>
1 +<!DOCTYPE html>
2 +<html>
3 +
4 + <head>
5 + <meta charset="utf-8">
6 + <link rel="stylesheet" href="/stylesheets/style.css" />
7 + <title>YaguMoa[ossswoo.tk]</title>
8 + </head>
9 +
10 + <body class = "body-news-list page-sports body-static" data-nav="sports">
11 + <div id = "container" class = "wrap-container">
12 + <div class = "container">
13 + <div class = 'content03 width1100 line01'>
14 + <div class = "section01">
15 + <div class = 'title-page02'>
16 + <h1 class = "title-type04 bold">
17 + <span class = "tit">야구 모아</span>
18 + </h1>
19 + </div>
20 + <section class = 'box-type box-latest01'>
21 + <strong class="hidden-obj">LOTTE 목록</strong>
22 + <div class = "paging paging-type01">
23 + <a href="/" class="num">All</a>
24 + <a href="/nc" class="num">NC</a>
25 + <a href="/lg" class="num">LG</a>
26 + <a href="/doosan" class="num">두산</a>
27 + <a href="/kiwoom" class="num">키움</a>
28 + <a href="/kia" class="num">KIA</a>
29 + <strong class = "num on">롯데</strong>
30 + <a href="/samsung" class="num">삼성</a>
31 + <a href="/kt" class="num">KT</a>
32 + <a href="/sk" class="num">SK</a>
33 + <a href="/hanwha" class="num">한화</a>
34 + </div>
35 + <div class = "list-type038">
36 + <ul class = "list">
37 + <% for(var i of lotte) { %>
38 + <li>
39 + <div class='item-box01'>
40 + <div class='info-box01'>
41 + <span class="blind">송고시간</span>
42 + <span class='txt-time'><%= i.datetime %></span>
43 + </div>
44 + <% if (i.image_url != undefined) { %>
45 + <figure class='img-con'>
46 + <a class = "img img-cover imgLiquid_bgSize imgLiquid_ready" style = "background-size: cover; background-position: center top; background-repeat: no-repeat;" href = <%= i.url %> >
47 + <img src = <%= i.image_url %>>
48 + </a>
49 + </figure>
50 + <% } %>
51 + <div class='news-con'>
52 + <a class = 'tit-wrap' href = <%= i.url %>>
53 + <strong class = 'tit-news'><%= i.title %></strong>
54 + </a>
55 + <p class = "lead">
56 + <%= i.summary %>
57 + </p>
58 + </div>
59 + </div>
60 + </li>
61 + <% } %>
62 + </ul>
63 + </div>
64 + </section>
65 + </div>
66 + </div>
67 + </div>
68 + </div>
69 + </body>
70 +</html>
1 +<!DOCTYPE html>
2 +<html>
3 +
4 + <head>
5 + <meta charset="utf-8">
6 + <link rel="stylesheet" href="/stylesheets/style.css" />
7 + <title>YaguMoa[ossswoo.tk]</title>
8 + </head>
9 +
10 + <body class = "body-news-list page-sports body-static" data-nav="sports">
11 + <div id = "container" class = "wrap-container">
12 + <div class = "container">
13 + <div class = 'content03 width1100 line01'>
14 + <div class = "section01">
15 + <div class = 'title-page02'>
16 + <h1 class = "title-type04 bold">
17 + <span class = "tit">야구 모아</span>
18 + </h1>
19 + </div>
20 + <section class = 'box-type box-latest01'>
21 + <strong class="hidden-obj">NC 목록</strong>
22 + <div class = "paging paging-type01">
23 + <a href="/" class="num">All</a>
24 + <strong class = "num on">NC</strong>
25 + <a href="/lg" class="num">LG</a>
26 + <a href="/doosan" class="num">두산</a>
27 + <a href="/kiwoom" class="num">키움</a>
28 + <a href="/kia" class="num">KIA</a>
29 + <a href="/lotte" class="num">롯데</a>
30 + <a href="/samsung" class="num">삼성</a>
31 + <a href="/kt" class="num">KT</a>
32 + <a href="/sk" class="num">SK</a>
33 + <a href="/hanwha" class="num">한화</a>
34 + </div>
35 + <div class = "list-type038">
36 + <ul class = "list">
37 + <% for(var i of nc) { %>
38 + <li>
39 + <div class='item-box01'>
40 + <div class='info-box01'>
41 + <span class="blind">송고시간</span>
42 + <span class='txt-time'><%= i.datetime %></span>
43 + </div>
44 + <% if (i.image_url != undefined) { %>
45 + <figure class='img-con'>
46 + <a class = "img img-cover imgLiquid_bgSize imgLiquid_ready" style = "background-size: cover; background-position: center top; background-repeat: no-repeat;" href = <%= i.url %> >
47 + <img src = <%= i.image_url %>>
48 + </a>
49 + </figure>
50 + <% } %>
51 + <div class='news-con'>
52 + <a class = 'tit-wrap' href = <%= i.url %>>
53 + <strong class = 'tit-news'><%= i.title %></strong>
54 + </a>
55 + <p class = "lead">
56 + <%= i.summary %>
57 + </p>
58 + </div>
59 + </div>
60 + </li>
61 + <% } %>
62 + </ul>
63 + </div>
64 + </section>
65 + </div>
66 + </div>
67 + </div>
68 + </div>
69 + </body>
70 +</html>
1 +<!DOCTYPE html>
2 +<html>
3 +
4 + <head>
5 + <meta charset="utf-8">
6 + <link rel="stylesheet" href="/stylesheets/style.css" />
7 + <title>YaguMoa[ossswoo.tk]</title>
8 + </head>
9 +
10 + <body class = "body-news-list page-sports body-static" data-nav="sports">
11 + <div id = "container" class = "wrap-container">
12 + <div class = "container">
13 + <div class = 'content03 width1100 line01'>
14 + <div class = "section01">
15 + <div class = 'title-page02'>
16 + <h1 class = "title-type04 bold">
17 + <span class = "tit">야구 모아</span>
18 + </h1>
19 + </div>
20 + <section class = 'box-type box-latest01'>
21 + <strong class="hidden-obj">SAMSUNG 목록</strong>
22 + <div class = "paging paging-type01">
23 + <a href="/" class="num">All</a>
24 + <a href="/nc" class="num">NC</a>
25 + <a href="/lg" class="num">LG</a>
26 + <a href="/doosan" class="num">두산</a>
27 + <a href="/kiwoom" class="num">키움</a>
28 + <a href="/kia" class="num">KIA</a>
29 + <a href="/lotte" class="num">롯데</a>
30 + <strong class = "num on">삼성</strong>
31 + <a href="/kt" class="num">KT</a>
32 + <a href="/sk" class="num">SK</a>
33 + <a href="/hanwha" class="num">한화</a>
34 + </div>
35 + <div class = "list-type038">
36 + <ul class = "list">
37 + <% for(var i of samsung) { %>
38 + <li>
39 + <div class='item-box01'>
40 + <div class='info-box01'>
41 + <span class="blind">송고시간</span>
42 + <span class='txt-time'><%= i.datetime %></span>
43 + </div>
44 + <% if (i.image_url != undefined) { %>
45 + <figure class='img-con'>
46 + <a class = "img img-cover imgLiquid_bgSize imgLiquid_ready" style = "background-size: cover; background-position: center top; background-repeat: no-repeat;" href = <%= i.url %> >
47 + <img src = <%= i.image_url %>>
48 + </a>
49 + </figure>
50 + <% } %>
51 + <div class='news-con'>
52 + <a class = 'tit-wrap' href = <%= i.url %>>
53 + <strong class = 'tit-news'><%= i.title %></strong>
54 + </a>
55 + <p class = "lead">
56 + <%= i.summary %>
57 + </p>
58 + </div>
59 + </div>
60 + </li>
61 + <% } %>
62 + </ul>
63 + </div>
64 + </section>
65 + </div>
66 + </div>
67 + </div>
68 + </div>
69 + </body>
70 +</html>
1 +<!DOCTYPE html>
2 +<html>
3 +
4 + <head>
5 + <meta charset="utf-8">
6 + <link rel="stylesheet" href="/stylesheets/style.css" />
7 + <title>YaguMoa[ossswoo.tk]</title>
8 + </head>
9 +
10 + <body class = "body-news-list page-sports body-static" data-nav="sports">
11 + <div id = "container" class = "wrap-container">
12 + <div class = "container">
13 + <div class = 'content03 width1100 line01'>
14 + <div class = "section01">
15 + <div class = 'title-page02'>
16 + <h1 class = "title-type04 bold">
17 + <span class = "tit">야구 모아</span>
18 + </h1>
19 + </div>
20 + <section class = 'box-type box-latest01'>
21 + <strong class="hidden-obj">SK 목록</strong>
22 + <div class = "paging paging-type01">
23 + <a href="/" class="num">All</a>
24 + <a href="/nc" class="num">NC</a>
25 + <a href="/lg" class="num">LG</a>
26 + <a href="/doosan" class="num">두산</a>
27 + <a href="/kiwoom" class="num">키움</a>
28 + <a href="/kia" class="num">KIA</a>
29 + <a href="/lotte" class="num">롯데</a>
30 + <a href="/samsung" class="num">삼성</a>
31 + <a href="/kt" class="num">KT</a>
32 + <strong class = "num on">SK</strong>
33 + <a href="/hanwha" class="num">한화</a>
34 + </div>
35 + <div class = "list-type038">
36 + <ul class = "list">
37 + <% for(var i of sk) { %>
38 + <li>
39 + <div class='item-box01'>
40 + <div class='info-box01'>
41 + <span class="blind">송고시간</span>
42 + <span class='txt-time'><%= i.datetime %></span>
43 + </div>
44 + <% if (i.image_url != undefined) { %>
45 + <figure class='img-con'>
46 + <a class = "img img-cover imgLiquid_bgSize imgLiquid_ready" style = "background-size: cover; background-position: center top; background-repeat: no-repeat;" href = <%= i.url %> >
47 + <img src = <%= i.image_url %>>
48 + </a>
49 + </figure>
50 + <% } %>
51 + <div class='news-con'>
52 + <a class = 'tit-wrap' href = <%= i.url %>>
53 + <strong class = 'tit-news'><%= i.title %></strong>
54 + </a>
55 + <p class = "lead">
56 + <%= i.summary %>
57 + </p>
58 + </div>
59 + </div>
60 + </li>
61 + <% } %>
62 + </ul>
63 + </div>
64 + </section>
65 + </div>
66 + </div>
67 + </div>
68 + </div>
69 + </body>
70 +</html>