장수창

modified app

...@@ -7,9 +7,9 @@ const yongin_url = 'http://www.yongin.go.kr/health/ictsd/INC_selectIctsdPatntLis ...@@ -7,9 +7,9 @@ const yongin_url = 'http://www.yongin.go.kr/health/ictsd/INC_selectIctsdPatntLis
7 const TARGET_URL = 'https://api.line.me/v2/bot/message/reply' 7 const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
8 const MULTI_TARGET_URL = 'https://api.line.me/v2/bot/message/multicast' 8 const MULTI_TARGET_URL = 'https://api.line.me/v2/bot/message/multicast'
9 const BROAD_TARGET_URL = 'https://api.line.me/v2/bot/message/broadcast' 9 const BROAD_TARGET_URL = 'https://api.line.me/v2/bot/message/broadcast'
10 -const TOKEN = '' 10 +const TOKEN = 'input your token'
11 -const NAVER_NEWS_ID = '' 11 +const NAVER_NEWS_ID = 'input your id'
12 -const NAVER_NEWS_SECRET = '' 12 +const NAVER_NEWS_SECRET = 'input your secret'
13 const fs = require('fs'); 13 const fs = require('fs');
14 const path = require('path'); 14 const path = require('path');
15 const HTTPS = require('https'); 15 const HTTPS = require('https');
...@@ -19,9 +19,10 @@ const bodyParser = require('body-parser'); ...@@ -19,9 +19,10 @@ const bodyParser = require('body-parser');
19 var app = express(); 19 var app = express();
20 20
21 21
22 -// broadcast route 22 +// broadcast route yongin
23 var period_broadcast = 100000; 23 var period_broadcast = 100000;
24 var count_broadcast = 0; 24 var count_broadcast = 0;
25 +
25 setInterval(function(){ 26 setInterval(function(){
26 broadcast(); 27 broadcast();
27 }, period_broadcast); 28 }, period_broadcast);
...@@ -44,21 +45,21 @@ app.post('/hook', function (req, res) { ...@@ -44,21 +45,21 @@ app.post('/hook', function (req, res) {
44 var sub_nationwide = "국내"; 45 var sub_nationwide = "국내";
45 if(isNationWide.indexOf(sub_nationwide) !== -1){ 46 if(isNationWide.indexOf(sub_nationwide) !== -1){
46 replyNationWide(eventObj); 47 replyNationWide(eventObj);
47 - } 48 + } else if(message.text == "야" || message.text == "도움말" || message.text.indexOf("어떻게") !== -1){
48 - 49 + console.log('[request hello]')
49 - var sub_hello = "어떻게" 50 + replyHello(eventObj);
50 - if(message.text == "야" || message.text == "도움말" || message.text.indexOf(sub_hello) !== -1){ 51 + } else if(message.text.indexOf("뉴스") !== -1){
51 - hello(eventObj); 52 + console.log('[request news]')
52 - }
53 -
54 - if(message.text.indexOf("뉴스") !== -1){
55 replyNews(eventObj); 53 replyNews(eventObj);
54 + } else{
55 + console.log('[request way]')
56 + replyWay(eventObj);
56 } 57 }
57 58
58 res.sendStatus(200); 59 res.sendStatus(200);
59 }); 60 });
60 61
61 -//reply 62 +//reply status
62 function replyNationWide(eventObj) { 63 function replyNationWide(eventObj) {
63 //read status 64 //read status
64 request.post(ncov_url, function (err, res, body) { 65 request.post(ncov_url, function (err, res, body) {
...@@ -117,7 +118,7 @@ function replyNationWide(eventObj) { ...@@ -117,7 +118,7 @@ function replyNationWide(eventObj) {
117 } 118 }
118 119
119 //hello 120 //hello
120 -function hello(eventObj) { 121 +function replyHello(eventObj) {
121 122
122 request.post( 123 request.post(
123 { 124 {
...@@ -134,22 +135,56 @@ function hello(eventObj) { ...@@ -134,22 +135,56 @@ function hello(eventObj) {
134 }, 135 },
135 { 136 {
136 "type":"text", 137 "type":"text",
137 - "text":"국내 현황은 '국내'를 타이핑 해주세요." 138 + "text":"1. 국내 현황은 '국내'를 타이핑 해주세요." + "\n" + "\n" + "2. 코로나 19 관련 뉴스는 '뉴스'를 타이핑 해주세요." + "\n" + "\n" + "3. 새로운 확진자의 동선이 공개되면 알려드리겠습니다."
138 }, 139 },
139 { 140 {
140 "type":"text", 141 "type":"text",
141 - "text":"코로나 19 관련 뉴스는 '뉴스'를 타이핑 해주세요." 142 + "text":"감사합니다."
142 }, 143 },
143 { 144 {
145 + "type": "sticker",
146 + "packageId": "11539",
147 + "stickerId": "52114110"
148 + }
149 +
150 + ]
151 + }
152 + },(error, response, body) => {
153 + console.log(body)
154 + });
155 +}
156 +
157 +// else
158 +function replyWay(eventObj) {
159 +
160 + request.post(
161 + {
162 + url: TARGET_URL,
163 + headers: {
164 + 'Authorization': `Bearer ${TOKEN}`
165 + },
166 + json: {
167 + "replyToken":eventObj.replyToken,
168 + "messages":[
169 + {
144 "type":"text", 170 "type":"text",
145 - "text":"감사합니다." 171 + "text":"대답할 수 없는 입력입니다."
172 + },
173 + {
174 + "type":"text",
175 + "text":"사용 방법은 '도움말'을 입력해주세요."
146 }, 176 },
147 { 177 {
148 "type": "sticker", 178 "type": "sticker",
149 "packageId": "11539", 179 "packageId": "11539",
150 - "stickerId": "52114110" 180 + "stickerId": "52114129"
181 + },
182 + {
183 + "type":"text",
184 + "text":"감사합니다."
151 } 185 }
152 186
187 +
153 ] 188 ]
154 } 189 }
155 },(error, response, body) => { 190 },(error, response, body) => {
......
1 { 1 {
2 - "name": "push", 2 + "name": "reply",
3 "version": "1.0.0", 3 "version": "1.0.0",
4 "lockfileVersion": 1, 4 "lockfileVersion": 1,
5 "requires": true, 5 "requires": true,
6 "dependencies": { 6 "dependencies": {
7 + "@types/node": {
8 + "version": "14.0.13",
9 + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.13.tgz",
10 + "integrity": "sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA=="
11 + },
12 + "accepts": {
13 + "version": "1.3.7",
14 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
15 + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
16 + "requires": {
17 + "mime-types": "~2.1.24",
18 + "negotiator": "0.6.2"
19 + }
20 + },
7 "ajv": { 21 "ajv": {
8 "version": "6.12.2", 22 "version": "6.12.2",
9 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", 23 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
...@@ -15,6 +29,11 @@ ...@@ -15,6 +29,11 @@
15 "uri-js": "^4.2.2" 29 "uri-js": "^4.2.2"
16 } 30 }
17 }, 31 },
32 + "array-flatten": {
33 + "version": "1.1.1",
34 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
35 + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
36 + },
18 "asn1": { 37 "asn1": {
19 "version": "0.2.4", 38 "version": "0.2.4",
20 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 39 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
...@@ -43,6 +62,14 @@ ...@@ -43,6 +62,14 @@
43 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", 62 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
44 "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" 63 "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
45 }, 64 },
65 + "axios": {
66 + "version": "0.19.2",
67 + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz",
68 + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==",
69 + "requires": {
70 + "follow-redirects": "1.5.10"
71 + }
72 + },
46 "bcrypt-pbkdf": { 73 "bcrypt-pbkdf": {
47 "version": "1.0.2", 74 "version": "1.0.2",
48 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 75 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
...@@ -51,11 +78,51 @@ ...@@ -51,11 +78,51 @@
51 "tweetnacl": "^0.14.3" 78 "tweetnacl": "^0.14.3"
52 } 79 }
53 }, 80 },
81 + "body-parser": {
82 + "version": "1.19.0",
83 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
84 + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
85 + "requires": {
86 + "bytes": "3.1.0",
87 + "content-type": "~1.0.4",
88 + "debug": "2.6.9",
89 + "depd": "~1.1.2",
90 + "http-errors": "1.7.2",
91 + "iconv-lite": "0.4.24",
92 + "on-finished": "~2.3.0",
93 + "qs": "6.7.0",
94 + "raw-body": "2.4.0",
95 + "type-is": "~1.6.17"
96 + }
97 + },
98 + "boolbase": {
99 + "version": "1.0.0",
100 + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
101 + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
102 + },
103 + "bytes": {
104 + "version": "3.1.0",
105 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
106 + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
107 + },
54 "caseless": { 108 "caseless": {
55 "version": "0.12.0", 109 "version": "0.12.0",
56 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 110 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
57 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 111 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
58 }, 112 },
113 + "cheerio": {
114 + "version": "1.0.0-rc.3",
115 + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz",
116 + "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==",
117 + "requires": {
118 + "css-select": "~1.2.0",
119 + "dom-serializer": "~0.1.1",
120 + "entities": "~1.1.1",
121 + "htmlparser2": "^3.9.1",
122 + "lodash": "^4.15.0",
123 + "parse5": "^3.0.1"
124 + }
125 + },
59 "combined-stream": { 126 "combined-stream": {
60 "version": "1.0.8", 127 "version": "1.0.8",
61 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 128 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
...@@ -64,11 +131,50 @@ ...@@ -64,11 +131,50 @@
64 "delayed-stream": "~1.0.0" 131 "delayed-stream": "~1.0.0"
65 } 132 }
66 }, 133 },
134 + "content-disposition": {
135 + "version": "0.5.3",
136 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
137 + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
138 + "requires": {
139 + "safe-buffer": "5.1.2"
140 + }
141 + },
142 + "content-type": {
143 + "version": "1.0.4",
144 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
145 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
146 + },
147 + "cookie": {
148 + "version": "0.4.0",
149 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
150 + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
151 + },
152 + "cookie-signature": {
153 + "version": "1.0.6",
154 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
155 + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
156 + },
67 "core-util-is": { 157 "core-util-is": {
68 "version": "1.0.2", 158 "version": "1.0.2",
69 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 159 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
70 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 160 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
71 }, 161 },
162 + "css-select": {
163 + "version": "1.2.0",
164 + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
165 + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
166 + "requires": {
167 + "boolbase": "~1.0.0",
168 + "css-what": "2.1",
169 + "domutils": "1.5.1",
170 + "nth-check": "~1.0.1"
171 + }
172 + },
173 + "css-what": {
174 + "version": "2.1.3",
175 + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
176 + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg=="
177 + },
72 "dashdash": { 178 "dashdash": {
73 "version": "1.14.1", 179 "version": "1.14.1",
74 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 180 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
...@@ -77,11 +183,60 @@ ...@@ -77,11 +183,60 @@
77 "assert-plus": "^1.0.0" 183 "assert-plus": "^1.0.0"
78 } 184 }
79 }, 185 },
186 + "debug": {
187 + "version": "2.6.9",
188 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
189 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
190 + "requires": {
191 + "ms": "2.0.0"
192 + }
193 + },
80 "delayed-stream": { 194 "delayed-stream": {
81 "version": "1.0.0", 195 "version": "1.0.0",
82 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 196 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
83 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 197 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
84 }, 198 },
199 + "depd": {
200 + "version": "1.1.2",
201 + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
202 + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
203 + },
204 + "destroy": {
205 + "version": "1.0.4",
206 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
207 + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
208 + },
209 + "dom-serializer": {
210 + "version": "0.1.1",
211 + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
212 + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
213 + "requires": {
214 + "domelementtype": "^1.3.0",
215 + "entities": "^1.1.1"
216 + }
217 + },
218 + "domelementtype": {
219 + "version": "1.3.1",
220 + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
221 + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
222 + },
223 + "domhandler": {
224 + "version": "2.4.2",
225 + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
226 + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
227 + "requires": {
228 + "domelementtype": "1"
229 + }
230 + },
231 + "domutils": {
232 + "version": "1.5.1",
233 + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
234 + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
235 + "requires": {
236 + "dom-serializer": "0",
237 + "domelementtype": "1"
238 + }
239 + },
85 "ecc-jsbn": { 240 "ecc-jsbn": {
86 "version": "0.1.2", 241 "version": "0.1.2",
87 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 242 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
...@@ -91,6 +246,68 @@ ...@@ -91,6 +246,68 @@
91 "safer-buffer": "^2.1.0" 246 "safer-buffer": "^2.1.0"
92 } 247 }
93 }, 248 },
249 + "ee-first": {
250 + "version": "1.1.1",
251 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
252 + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
253 + },
254 + "encodeurl": {
255 + "version": "1.0.2",
256 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
257 + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
258 + },
259 + "entities": {
260 + "version": "1.1.2",
261 + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
262 + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
263 + },
264 + "escape-html": {
265 + "version": "1.0.3",
266 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
267 + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
268 + },
269 + "etag": {
270 + "version": "1.8.1",
271 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
272 + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
273 + },
274 + "express": {
275 + "version": "4.17.1",
276 + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
277 + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
278 + "requires": {
279 + "accepts": "~1.3.7",
280 + "array-flatten": "1.1.1",
281 + "body-parser": "1.19.0",
282 + "content-disposition": "0.5.3",
283 + "content-type": "~1.0.4",
284 + "cookie": "0.4.0",
285 + "cookie-signature": "1.0.6",
286 + "debug": "2.6.9",
287 + "depd": "~1.1.2",
288 + "encodeurl": "~1.0.2",
289 + "escape-html": "~1.0.3",
290 + "etag": "~1.8.1",
291 + "finalhandler": "~1.1.2",
292 + "fresh": "0.5.2",
293 + "merge-descriptors": "1.0.1",
294 + "methods": "~1.1.2",
295 + "on-finished": "~2.3.0",
296 + "parseurl": "~1.3.3",
297 + "path-to-regexp": "0.1.7",
298 + "proxy-addr": "~2.0.5",
299 + "qs": "6.7.0",
300 + "range-parser": "~1.2.1",
301 + "safe-buffer": "5.1.2",
302 + "send": "0.17.1",
303 + "serve-static": "1.14.1",
304 + "setprototypeof": "1.1.1",
305 + "statuses": "~1.5.0",
306 + "type-is": "~1.6.18",
307 + "utils-merge": "1.0.1",
308 + "vary": "~1.1.2"
309 + }
310 + },
94 "extend": { 311 "extend": {
95 "version": "3.0.2", 312 "version": "3.0.2",
96 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 313 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
...@@ -111,6 +328,38 @@ ...@@ -111,6 +328,38 @@
111 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 328 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
112 "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 329 "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
113 }, 330 },
331 + "finalhandler": {
332 + "version": "1.1.2",
333 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
334 + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
335 + "requires": {
336 + "debug": "2.6.9",
337 + "encodeurl": "~1.0.2",
338 + "escape-html": "~1.0.3",
339 + "on-finished": "~2.3.0",
340 + "parseurl": "~1.3.3",
341 + "statuses": "~1.5.0",
342 + "unpipe": "~1.0.0"
343 + }
344 + },
345 + "follow-redirects": {
346 + "version": "1.5.10",
347 + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
348 + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
349 + "requires": {
350 + "debug": "=3.1.0"
351 + },
352 + "dependencies": {
353 + "debug": {
354 + "version": "3.1.0",
355 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
356 + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
357 + "requires": {
358 + "ms": "2.0.0"
359 + }
360 + }
361 + }
362 + },
114 "forever-agent": { 363 "forever-agent": {
115 "version": "0.6.1", 364 "version": "0.6.1",
116 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 365 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
...@@ -126,6 +375,16 @@ ...@@ -126,6 +375,16 @@
126 "mime-types": "^2.1.12" 375 "mime-types": "^2.1.12"
127 } 376 }
128 }, 377 },
378 + "forwarded": {
379 + "version": "0.1.2",
380 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
381 + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
382 + },
383 + "fresh": {
384 + "version": "0.5.2",
385 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
386 + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
387 + },
129 "getpass": { 388 "getpass": {
130 "version": "0.1.7", 389 "version": "0.1.7",
131 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 390 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
...@@ -148,6 +407,31 @@ ...@@ -148,6 +407,31 @@
148 "har-schema": "^2.0.0" 407 "har-schema": "^2.0.0"
149 } 408 }
150 }, 409 },
410 + "htmlparser2": {
411 + "version": "3.10.1",
412 + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
413 + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
414 + "requires": {
415 + "domelementtype": "^1.3.1",
416 + "domhandler": "^2.3.0",
417 + "domutils": "^1.5.1",
418 + "entities": "^1.1.1",
419 + "inherits": "^2.0.1",
420 + "readable-stream": "^3.1.1"
421 + }
422 + },
423 + "http-errors": {
424 + "version": "1.7.2",
425 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
426 + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
427 + "requires": {
428 + "depd": "~1.1.2",
429 + "inherits": "2.0.3",
430 + "setprototypeof": "1.1.1",
431 + "statuses": ">= 1.5.0 < 2",
432 + "toidentifier": "1.0.0"
433 + }
434 + },
151 "http-signature": { 435 "http-signature": {
152 "version": "1.2.0", 436 "version": "1.2.0",
153 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 437 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
...@@ -158,6 +442,24 @@ ...@@ -158,6 +442,24 @@
158 "sshpk": "^1.7.0" 442 "sshpk": "^1.7.0"
159 } 443 }
160 }, 444 },
445 + "iconv-lite": {
446 + "version": "0.4.24",
447 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
448 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
449 + "requires": {
450 + "safer-buffer": ">= 2.1.2 < 3"
451 + }
452 + },
453 + "inherits": {
454 + "version": "2.0.3",
455 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
456 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
457 + },
458 + "ipaddr.js": {
459 + "version": "1.9.1",
460 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
461 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
462 + },
161 "is-typedarray": { 463 "is-typedarray": {
162 "version": "1.0.0", 464 "version": "1.0.0",
163 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 465 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
...@@ -199,6 +501,31 @@ ...@@ -199,6 +501,31 @@
199 "verror": "1.10.0" 501 "verror": "1.10.0"
200 } 502 }
201 }, 503 },
504 + "lodash": {
505 + "version": "4.17.15",
506 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
507 + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
508 + },
509 + "media-typer": {
510 + "version": "0.3.0",
511 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
512 + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
513 + },
514 + "merge-descriptors": {
515 + "version": "1.0.1",
516 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
517 + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
518 + },
519 + "methods": {
520 + "version": "1.1.2",
521 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
522 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
523 + },
524 + "mime": {
525 + "version": "1.6.0",
526 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
527 + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
528 + },
202 "mime-db": { 529 "mime-db": {
203 "version": "1.44.0", 530 "version": "1.44.0",
204 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 531 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
...@@ -212,16 +539,69 @@ ...@@ -212,16 +539,69 @@
212 "mime-db": "1.44.0" 539 "mime-db": "1.44.0"
213 } 540 }
214 }, 541 },
542 + "ms": {
543 + "version": "2.0.0",
544 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
545 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
546 + },
547 + "negotiator": {
548 + "version": "0.6.2",
549 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
550 + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
551 + },
552 + "nth-check": {
553 + "version": "1.0.2",
554 + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
555 + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
556 + "requires": {
557 + "boolbase": "~1.0.0"
558 + }
559 + },
215 "oauth-sign": { 560 "oauth-sign": {
216 "version": "0.9.0", 561 "version": "0.9.0",
217 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 562 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
218 "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" 563 "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
219 }, 564 },
565 + "on-finished": {
566 + "version": "2.3.0",
567 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
568 + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
569 + "requires": {
570 + "ee-first": "1.1.1"
571 + }
572 + },
573 + "parse5": {
574 + "version": "3.0.3",
575 + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
576 + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
577 + "requires": {
578 + "@types/node": "*"
579 + }
580 + },
581 + "parseurl": {
582 + "version": "1.3.3",
583 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
584 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
585 + },
586 + "path-to-regexp": {
587 + "version": "0.1.7",
588 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
589 + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
590 + },
220 "performance-now": { 591 "performance-now": {
221 "version": "2.1.0", 592 "version": "2.1.0",
222 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 593 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
223 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 594 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
224 }, 595 },
596 + "proxy-addr": {
597 + "version": "2.0.6",
598 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
599 + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
600 + "requires": {
601 + "forwarded": "~0.1.2",
602 + "ipaddr.js": "1.9.1"
603 + }
604 + },
225 "psl": { 605 "psl": {
226 "version": "1.8.0", 606 "version": "1.8.0",
227 "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", 607 "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
...@@ -232,15 +612,36 @@ ...@@ -232,15 +612,36 @@
232 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 612 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
233 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 613 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
234 }, 614 },
235 - "python-shell": {
236 - "version": "2.0.1",
237 - "resolved": "https://registry.npmjs.org/python-shell/-/python-shell-2.0.1.tgz",
238 - "integrity": "sha512-Ys+SiCinY9JrldIJxGWd2AMQSQZLU7PFzrCWY7HTawZ73tIthFdlLLU1Y6Y40Hwdutc+TmfMe5TXNU73s07Xyg=="
239 - },
240 "qs": { 615 "qs": {
241 - "version": "6.5.2", 616 + "version": "6.7.0",
242 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 617 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
243 - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" 618 + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
619 + },
620 + "range-parser": {
621 + "version": "1.2.1",
622 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
623 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
624 + },
625 + "raw-body": {
626 + "version": "2.4.0",
627 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
628 + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
629 + "requires": {
630 + "bytes": "3.1.0",
631 + "http-errors": "1.7.2",
632 + "iconv-lite": "0.4.24",
633 + "unpipe": "1.0.0"
634 + }
635 + },
636 + "readable-stream": {
637 + "version": "3.6.0",
638 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
639 + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
640 + "requires": {
641 + "inherits": "^2.0.3",
642 + "string_decoder": "^1.1.1",
643 + "util-deprecate": "^1.0.1"
644 + }
244 }, 645 },
245 "request": { 646 "request": {
246 "version": "2.88.2", 647 "version": "2.88.2",
...@@ -267,18 +668,68 @@ ...@@ -267,18 +668,68 @@
267 "tough-cookie": "~2.5.0", 668 "tough-cookie": "~2.5.0",
268 "tunnel-agent": "^0.6.0", 669 "tunnel-agent": "^0.6.0",
269 "uuid": "^3.3.2" 670 "uuid": "^3.3.2"
671 + },
672 + "dependencies": {
673 + "qs": {
674 + "version": "6.5.2",
675 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
676 + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
677 + }
270 } 678 }
271 }, 679 },
272 "safe-buffer": { 680 "safe-buffer": {
273 - "version": "5.2.1", 681 + "version": "5.1.2",
274 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 682 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
275 - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 683 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
276 }, 684 },
277 "safer-buffer": { 685 "safer-buffer": {
278 "version": "2.1.2", 686 "version": "2.1.2",
279 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 687 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
280 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 688 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
281 }, 689 },
690 + "send": {
691 + "version": "0.17.1",
692 + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
693 + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
694 + "requires": {
695 + "debug": "2.6.9",
696 + "depd": "~1.1.2",
697 + "destroy": "~1.0.4",
698 + "encodeurl": "~1.0.2",
699 + "escape-html": "~1.0.3",
700 + "etag": "~1.8.1",
701 + "fresh": "0.5.2",
702 + "http-errors": "~1.7.2",
703 + "mime": "1.6.0",
704 + "ms": "2.1.1",
705 + "on-finished": "~2.3.0",
706 + "range-parser": "~1.2.1",
707 + "statuses": "~1.5.0"
708 + },
709 + "dependencies": {
710 + "ms": {
711 + "version": "2.1.1",
712 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
713 + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
714 + }
715 + }
716 + },
717 + "serve-static": {
718 + "version": "1.14.1",
719 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
720 + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
721 + "requires": {
722 + "encodeurl": "~1.0.2",
723 + "escape-html": "~1.0.3",
724 + "parseurl": "~1.3.3",
725 + "send": "0.17.1"
726 + }
727 + },
728 + "setprototypeof": {
729 + "version": "1.1.1",
730 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
731 + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
732 + },
282 "sshpk": { 733 "sshpk": {
283 "version": "1.16.1", 734 "version": "1.16.1",
284 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 735 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
...@@ -295,6 +746,31 @@ ...@@ -295,6 +746,31 @@
295 "tweetnacl": "~0.14.0" 746 "tweetnacl": "~0.14.0"
296 } 747 }
297 }, 748 },
749 + "statuses": {
750 + "version": "1.5.0",
751 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
752 + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
753 + },
754 + "string_decoder": {
755 + "version": "1.3.0",
756 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
757 + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
758 + "requires": {
759 + "safe-buffer": "~5.2.0"
760 + },
761 + "dependencies": {
762 + "safe-buffer": {
763 + "version": "5.2.1",
764 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
765 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
766 + }
767 + }
768 + },
769 + "toidentifier": {
770 + "version": "1.0.0",
771 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
772 + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
773 + },
298 "tough-cookie": { 774 "tough-cookie": {
299 "version": "2.5.0", 775 "version": "2.5.0",
300 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", 776 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
...@@ -317,6 +793,20 @@ ...@@ -317,6 +793,20 @@
317 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 793 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
318 "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" 794 "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
319 }, 795 },
796 + "type-is": {
797 + "version": "1.6.18",
798 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
799 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
800 + "requires": {
801 + "media-typer": "0.3.0",
802 + "mime-types": "~2.1.24"
803 + }
804 + },
805 + "unpipe": {
806 + "version": "1.0.0",
807 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
808 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
809 + },
320 "uri-js": { 810 "uri-js": {
321 "version": "4.2.2", 811 "version": "4.2.2",
322 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 812 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
...@@ -325,11 +815,26 @@ ...@@ -325,11 +815,26 @@
325 "punycode": "^2.1.0" 815 "punycode": "^2.1.0"
326 } 816 }
327 }, 817 },
818 + "util-deprecate": {
819 + "version": "1.0.2",
820 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
821 + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
822 + },
823 + "utils-merge": {
824 + "version": "1.0.1",
825 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
826 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
827 + },
328 "uuid": { 828 "uuid": {
329 "version": "3.4.0", 829 "version": "3.4.0",
330 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", 830 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
331 "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" 831 "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
332 }, 832 },
833 + "vary": {
834 + "version": "1.1.2",
835 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
836 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
837 + },
333 "verror": { 838 "verror": {
334 "version": "1.10.0", 839 "version": "1.10.0",
335 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 840 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
......
1 { 1 {
2 - "name": "push", 2 + "name": "reply",
3 "version": "1.0.0", 3 "version": "1.0.0",
4 "description": "", 4 "description": "",
5 "main": "app.js", 5 "main": "app.js",
...@@ -9,7 +9,10 @@ ...@@ -9,7 +9,10 @@
9 "author": "", 9 "author": "",
10 "license": "ISC", 10 "license": "ISC",
11 "dependencies": { 11 "dependencies": {
12 - "python-shell": "^2.0.1", 12 + "axios": "^0.19.2",
13 + "body-parser": "^1.19.0",
14 + "cheerio": "^1.0.0-rc.3",
15 + "express": "^4.17.1",
13 "request": "^2.88.2" 16 "request": "^2.88.2"
14 } 17 }
15 - }
...\ No newline at end of file ...\ No newline at end of file
18 +}
...\ No newline at end of file ...\ No newline at end of file
......
1 <!-- PROJECT TITLE --> 1 <!-- PROJECT TITLE -->
2 -# Covid-19 Information Chatbot 2 +# Covid-19 Information Chatbot <br>
3 - ### 코로나 바이러스 감염증-19(COVID-19) 관련 정보 챗봇 3 +
4 +### 코로나 바이러스 감염증-19(COVID-19) 관련 정보 챗봇
5 +
4 <img src="image/name.png" width="320" height="280"> 6 <img src="image/name.png" width="320" height="280">
5 7
6 8
...@@ -20,7 +22,7 @@ ...@@ -20,7 +22,7 @@
20 22
21 <!-- About The Project --> 23 <!-- About The Project -->
22 ## About The Project 24 ## About The Project
23 - * Line messaging API 기반 코로나 바이러스 감염증-19(COVID-19) 관련 정보 챗봇입니다. 25 + * Line messaging API 기반 코로나 바이러스 감염증-19(COVID-19) 관련 정보 챗봇입니다. <br>
24 주 기능은 확진환자의 역학조사가 끝나거나 신규 확진자 발생 시 알림 메세지 전송입니다. 26 주 기능은 확진환자의 역학조사가 끝나거나 신규 확진자 발생 시 알림 메세지 전송입니다.
25 27
26 28
...@@ -32,20 +34,20 @@ ...@@ -32,20 +34,20 @@
32 34
33 <!-- GETTING STARTED --> 35 <!-- GETTING STARTED -->
34 ## Getting Started 36 ## Getting Started
35 - 1. [LINE](https://line.me/ko/) 설치<br/> 37 + 1. [LINE](https://line.me/ko/) 설치 <br>
36 38
37 2. 친구 추가<br/> 39 2. 친구 추가<br/>
38 * QR code<br/> 40 * QR code<br/>
39 -<img src="image/QRcode.PNG" width="200" height="200"> <br/> 41 +<img src="image/qrcode.png" width="200" height="200"> <br>
40 42
41 - 상단의 QR code를 통해 친구추가를 할 수 있습니다.<br/> 43 + 상단의 QR code를 통해 친구추가를 할 수 있습니다. <br>
42 44
43 - * ID <br/> 45 + * ID <br>
44 - 아이디를 통해 친구추가를 할 수 있습니다. 아이디는 '@453hriym' 입니다. <br/> 46 + 아이디를 통해 친구추가를 할 수 있습니다. 아이디는 '@453hriym' 입니다. <br>
45 -<br/> 47 +<br>
46 48
47 - 3. 정보제공동의<br/> 49 + 3. 정보제공동의 <br>
48 - 코로나알리미와의 채팅창에서 정보 제공 동의 진행을 해야합니다. <br/> 50 + 코로나알리미와의 채팅창에서 정보 제공 동의 진행을 해야합니다. <br>
49 51
50 52
51 ### Installation 53 ### Installation
...@@ -54,6 +56,7 @@ ...@@ -54,6 +56,7 @@
54 ``` 56 ```
55 git clone http://khuhub.khu.ac.kr/2015104213/oss_Termproject_chatbot.git 57 git clone http://khuhub.khu.ac.kr/2015104213/oss_Termproject_chatbot.git
56 ``` 58 ```
59 +
57 2. Install NPM 60 2. Install NPM
58 ``` 61 ```
59 npm install request 62 npm install request
...@@ -61,6 +64,7 @@ ...@@ -61,6 +64,7 @@
61 npm install axios 64 npm install axios
62 npm install cheerio 65 npm install cheerio
63 ``` 66 ```
67 +
64 3. Enter your information 68 3. Enter your information
65 ``` 69 ```
66 const TOKEN = 'Your Token' 70 const TOKEN = 'Your Token'
...@@ -72,19 +76,19 @@ ...@@ -72,19 +76,19 @@
72 76
73 <!-- USAGE EXAMPLES --> 77 <!-- USAGE EXAMPLES -->
74 ## Usage 78 ## Usage
75 - * 코로나 알리미에게 사용 방법에 대해 물어보세요. 키워드는 '어떻게'입니다. <br/> 79 + * 코로나 알리미에게 사용 방법에 대해 물어보세요. 키워드는 '어떻게'입니다. <br>
76 - 80 +<br>
77 - * 국내 현황 <br/> 81 + * 국내 현황 <br>
78 - 코로나 알리미에게 COVID-19 국내 현황에 대해 물어보세요. 키워드는 '국내'입니다.<br/> 82 + 코로나 알리미에게 COVID-19 국내 현황에 대해 물어보세요. 키워드는 '국내'입니다.<br>
79 -<br/> 83 +<br>
80 84
81 85
82 - * 관련 뉴스 <br/> 86 + * 관련 뉴스 <br>
83 - 코로나 알리미에게 COVID-19 관련 뉴스에 대해 물어보세요. 키워드는 '뉴스'입니다.<br/> 87 + 코로나 알리미에게 COVID-19 관련 뉴스에 대해 물어보세요. 키워드는 '뉴스'입니다.<br>
84 - <br/> 88 + <br>
85 89
86 - * 확진자 동선 알림 (용인시) <br/> 90 + * 확진자 동선 알림 (용인시) <br>
87 - 코로나 알리미가 새로운 확진자의 동선이 사이트에 올라오면 이를 실시간으로 알려줍니다. <br/> 91 + 코로나 알리미가 새로운 확진자의 동선이 사이트에 올라오면 이를 실시간으로 알려줍니다. <br>
88 92
89 93
90 <!-- CONTRIBUTING --> 94 <!-- CONTRIBUTING -->
...@@ -100,6 +104,6 @@ ...@@ -100,6 +104,6 @@
100 <!-- CONTACT --> 104 <!-- CONTACT -->
101 ## Contact 105 ## Contact
102 106
103 -Suchang Jang - sudori1024@khu.ac.kr <br/> 107 +Suchang Jang - sudori1024@khu.ac.kr <br>
104 108
105 Project Link: [http://khuhub.khu.ac.kr/2015104213/oss_Termproject_chatbot.git](http://khuhub.khu.ac.kr/2015104213/oss_Termproject_chatbot.git) 109 Project Link: [http://khuhub.khu.ac.kr/2015104213/oss_Termproject_chatbot.git](http://khuhub.khu.ac.kr/2015104213/oss_Termproject_chatbot.git)
...\ No newline at end of file ...\ No newline at end of file
......