taegwon

fix app.js to send and gather message according to answer

Showing 1 changed file with 110 additions and 148 deletions
1 -var end = 'not';
2 var count = 0; 1 var count = 0;
3 -var n = 1;
4 var choosen = new Array(); 2 var choosen = new Array();
5 -var opt_1 = ['Korean cuisine', 'Chinese food', 'Japanese food', 'Western food', 'Guitar'];
6 var express = require('express'); 3 var express = require('express');
7 const request = require('request'); 4 const request = require('request');
8 const TARGET_URL = '라인 URL' 5 const TARGET_URL = '라인 URL'
...@@ -20,7 +17,7 @@ const res = require('express/lib/response'); ...@@ -20,7 +17,7 @@ const res = require('express/lib/response');
20 var app = express(); 17 var app = express();
21 app.use(bodyParser.json()); 18 app.use(bodyParser.json());
22 app.post('/hook', function (req, res) { 19 app.post('/hook', function (req, res) {
23 - n=1; 20 +
24 var eventObj = req.body.events[0]; 21 var eventObj = req.body.events[0];
25 var source = eventObj.source; 22 var source = eventObj.source;
26 var message = eventObj.message; 23 var message = eventObj.message;
...@@ -30,133 +27,49 @@ app.post('/hook', function (req, res) { ...@@ -30,133 +27,49 @@ app.post('/hook', function (req, res) {
30 console.log('[request]', req.body); 27 console.log('[request]', req.body);
31 console.log('[request source] ', eventObj.source); 28 console.log('[request source] ', eventObj.source);
32 console.log('[request message]', eventObj.message); 29 console.log('[request message]', eventObj.message);
33 - // switch (count) { 30 +
34 - // case 0:
35 if (eventObj.message.text == 'start') { 31 if (eventObj.message.text == 'start') {
36 32
37 count++; 33 count++;
38 start_msg(eventObj.replyToken, eventObj.message.text); 34 start_msg(eventObj.replyToken, eventObj.message.text);
39 - 35 + }else if(eventObj.message.text == 'y' && count ==1)
40 - sleep(5000);
41 -
42 - for(var i = 0; i<5; i++)
43 { 36 {
44 - option(eventObj.replyToken, opt_1[i]); 37 + opt_1(eventObj.replyToken, eventObj.message.text);
45 - console.log(opt_1[i]); 38 + }else if((eventObj.message.text === '1' || eventObj.message.text === '2' || eventObj.message.text === '3' || eventObj.message.text == '4' || eventObj.message.texts == '5') && count ==1)
46 - n++; 39 + {
47 - sleep(5000); 40 + choosen.push(eventObj.message.text);
48 - } 41 + count++;
42 + opt_2(eventObj.replyToken, eventObj.message.text);
43 + }else if((eventObj.message.text === '1' || eventObj.message.text === '2' || eventObj.message.text === '3') && count ==2)
44 + {
45 + choosen.push(eventObj.message.text);
46 + count++;
47 + opt_3(eventObj.replyToken, eventObj.message.text);
48 + }else if((eventObj.message.text === '1' || eventObj.message.text === '2') && count ==3)
49 + {
50 + choosen.push(eventObj.message.text);
51 + count++;
52 + opt_4(eventObj.replyToken, eventObj.message.text);
53 + }else if((eventObj.message.text === '1' || eventObj.message.text === '2') && count ==4)
54 + {
55 + choosen.push(eventObj.message.text);
56 + count++;
57 + opt_5(eventObj.replyToken, eventObj.message.text);
58 + }else if((eventObj.message.text === '1' || eventObj.message.text === '2') && count ==5)
59 + {
60 + choosen.push(eventObj.message.text);
61 + count++;
49 } 62 }
50 - // break;
51 - // case 1:
52 - // if (eventObj.message.text === '1' || eventObj.message.text === '2' || eventObj.message.text === '3' || eventObj.message.text == '4' || eventObj.message.texts == '5') {
53 - // q_1(eventObj.replyToken, eventObj.message.text);
54 - // } else {
55 - // request.post(
56 - // {
57 - // url: TARGET_URL,
58 - // headers: {
59 - // 'Authorization': `Bearer ${TOKEN}`
60 - // },
61 - // json: {
62 - // "replyToken": eventObj.replyToken,
63 - // "messages": [
64 - // {
65 - // "type": "text",
66 - // "text": "Please choose a number between 1 to 5!"
67 - // }
68 - // ]
69 - // }
70 - // }, (error, response, body) => {
71 - // console.log(body)
72 - // });
73 - // }
74 - // break;
75 - // case 2:
76 - // if (eventObj.message.text === '1' || eventObj.message.text === '2' || eventObj.message.text === '3') {
77 - // q_2(eventObj.replyToken, eventObj.message.text);
78 - // } else {
79 - // request.post(
80 - // {
81 - // url: TARGET_URL,
82 - // headers: {
83 - // 'Authorization': `Bearer ${TOKEN}`
84 - // },
85 - // json: {
86 - // "replyToken": eventObj.replyToken,
87 - // "messages": [
88 - // {
89 - // "type": "text",
90 - // "text": "Please choose a number between 1 to 3!"
91 - // }
92 - // ]
93 - // }
94 - // }, (error, response, body) => {
95 - // console.log(body)
96 - // });
97 - // }
98 - // break;
99 - // case 3:
100 - // if (eventObj.message.text === '1' || eventObj.message.text === '2' || eventObj.message.text === '3') {
101 - // q_2(eventObj.replyToken, eventObj.message.text);
102 - // } else {
103 - // request.post(
104 - // {
105 - // url: TARGET_URL,
106 - // headers: {
107 - // 'Authorization': `Bearer ${TOKEN}`
108 - // },
109 - // json: {
110 - // "replyToken": eventObj.replyToken,
111 - // "messages": [
112 - // {
113 - // "type": "text",
114 - // "text": "Please choose a number between 1 to 3!"
115 - // }
116 - // ]
117 - // }
118 - // }, (error, response, body) => {
119 - // console.log(body)
120 - // });
121 - // }
122 - // break;
123 - // case 4:
124 - // if (eventObj.message.text === '1' || eventObj.message.text === '2') {
125 - // q_4(eventObj.replyToken, eventObj.message.text);
126 - // } else {
127 - // request.post(
128 - // {
129 - // url: TARGET_URL,
130 - // headers: {
131 - // 'Authorization': `Bearer ${TOKEN}`
132 - // },
133 - // json: {
134 - // "replyToken": eventObj.replyToken,
135 - // "messages": [
136 - // {
137 - // "type": "text",
138 - // "text": "Please choose a number between 1 to 2!"
139 - // }
140 - // ]
141 - // }
142 - // }, (error, response, body) => {
143 - // console.log(body)
144 - // });
145 - // }
146 - // break;
147 - // case 5:
148 - // end = 'end';
149 - // break;
150 - // default:
151 - // break;
152 - // }
153 -
154 63
155 res.sendStatus(200); 64 res.sendStatus(200);
65 + for(var i = 0;i<5;i++)
66 + {
67 + console.log(choosen[i]);
68 + }
156 }); 69 });
157 70
158 -function start_msg(replyToken, message) { 71 +async function start_msg(replyToken, message) {
159 - request.post( 72 + await request.post(
160 { 73 {
161 url: PAPAGO_URL, 74 url: PAPAGO_URL,
162 headers: { 75 headers: {
...@@ -164,7 +77,7 @@ function start_msg(replyToken, message) { ...@@ -164,7 +77,7 @@ function start_msg(replyToken, message) {
164 'X-Naver-Client-Id': `${PAPAGO_ID}`, 77 'X-Naver-Client-Id': `${PAPAGO_ID}`,
165 'X-Naver-Client-Secret': `${PAPAGO_SECRET}` 78 'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
166 }, 79 },
167 - body: 'source=en&target=ko&text=' + "Hi This is Menu recommend Chatbot! If you follow the instructions, I will recommend the menu", 80 + body: 'source=en&target=ko&text=' + "Hi This is Menu recommend Chatbot! If you follow the instructions, I will recommend the menu. 진행하시겠습니까?(y/n)",
168 json: true 81 json: true
169 }, (error, response, body) => { 82 }, (error, response, body) => {
170 if (!error && response.statusCode == 200) { 83 if (!error && response.statusCode == 200) {
...@@ -190,12 +103,10 @@ function start_msg(replyToken, message) { ...@@ -190,12 +103,10 @@ function start_msg(replyToken, message) {
190 }); 103 });
191 } 104 }
192 }); 105 });
193 - sleep(5000);
194 } 106 }
195 107
196 -function option(replyToken, message) 108 +async function opt_1(replyToken, message) {
197 -{ 109 + await request.post(
198 - request.post(
199 { 110 {
200 url: PAPAGO_URL, 111 url: PAPAGO_URL,
201 headers: { 112 headers: {
...@@ -203,7 +114,7 @@ function option(replyToken, message) ...@@ -203,7 +114,7 @@ function option(replyToken, message)
203 'X-Naver-Client-Id': `${PAPAGO_ID}`, 114 'X-Naver-Client-Id': `${PAPAGO_ID}`,
204 'X-Naver-Client-Secret': `${PAPAGO_SECRET}` 115 'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
205 }, 116 },
206 - body: 'source=en&target=ko&text=' + n + "." + message, 117 + body: 'source=en&target=ko&text=' + "1.Korean cuisine 2.Chinese food 3.Japanese food 4.Western food 5.Guitar",
207 json: true 118 json: true
208 }, (error, response, body) => { 119 }, (error, response, body) => {
209 if (!error && response.statusCode == 200) { 120 if (!error && response.statusCode == 200) {
...@@ -229,12 +140,23 @@ function option(replyToken, message) ...@@ -229,12 +140,23 @@ function option(replyToken, message)
229 }); 140 });
230 } 141 }
231 }); 142 });
232 - sleep(5000);
233 } 143 }
234 144
235 -function q_1(replyToken, msg) { 145 +async function opt_2(replyToken, message) {
236 - count++; 146 + await request.post(
237 - choosen.push(msg); 147 + {
148 + url: PAPAGO_URL,
149 + headers: {
150 + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
151 + 'X-Naver-Client-Id': `${PAPAGO_ID}`,
152 + 'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
153 + },
154 + body: 'source=en&target=ko&text=' + "1.고기 2.해산물 3.기타",
155 + json: true
156 + }, (error, response, body) => {
157 + if (!error && response.statusCode == 200) {
158 + console.log(body.message);
159 + var transMessage = body.message.result.translatedText;
238 request.post( 160 request.post(
239 { 161 {
240 url: TARGET_URL, 162 url: TARGET_URL,
...@@ -246,18 +168,32 @@ function q_1(replyToken, msg) { ...@@ -246,18 +168,32 @@ function q_1(replyToken, msg) {
246 "messages": [ 168 "messages": [
247 { 169 {
248 "type": "text", 170 "type": "text",
249 - "text": "Choose a number\n1. 고기\n2. 해산물\n3. 기타" 171 + "text": transMessage
250 } 172 }
251 ] 173 ]
252 } 174 }
253 }, (error, response, body) => { 175 }, (error, response, body) => {
254 console.log(body) 176 console.log(body)
255 }); 177 });
178 + }
179 + });
256 } 180 }
257 181
258 -function q_2(replyToken, msg) { 182 +async function opt_3(replyToken, message) {
259 - count++; 183 + await request.post(
260 - choosen.push(msg); 184 + {
185 + url: PAPAGO_URL,
186 + headers: {
187 + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
188 + 'X-Naver-Client-Id': `${PAPAGO_ID}`,
189 + 'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
190 + },
191 + body: 'source=en&target=ko&text=' + "1.매운 음식 2.안 매운 음식",
192 + json: true
193 + }, (error, response, body) => {
194 + if (!error && response.statusCode == 200) {
195 + console.log(body.message);
196 + var transMessage = body.message.result.translatedText;
261 request.post( 197 request.post(
262 { 198 {
263 url: TARGET_URL, 199 url: TARGET_URL,
...@@ -269,18 +205,32 @@ function q_2(replyToken, msg) { ...@@ -269,18 +205,32 @@ function q_2(replyToken, msg) {
269 "messages": [ 205 "messages": [
270 { 206 {
271 "type": "text", 207 "type": "text",
272 - "text": "Choose a number\n1. 뜨거운 음식\n2. 찬 음식" 208 + "text": transMessage
273 } 209 }
274 ] 210 ]
275 } 211 }
276 }, (error, response, body) => { 212 }, (error, response, body) => {
277 console.log(body) 213 console.log(body)
278 }); 214 });
215 + }
216 + });
279 } 217 }
280 218
281 -function q_3(replyToken, msg) { 219 +async function opt_4(replyToken, message) {
282 - count++; 220 + await request.post(
283 - choosen.push(msg); 221 + {
222 + url: PAPAGO_URL,
223 + headers: {
224 + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
225 + 'X-Naver-Client-Id': `${PAPAGO_ID}`,
226 + 'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
227 + },
228 + body: 'source=en&target=ko&text=' + "1.국물이 있는 음식 2.국물이 없는 음식",
229 + json: true
230 + }, (error, response, body) => {
231 + if (!error && response.statusCode == 200) {
232 + console.log(body.message);
233 + var transMessage = body.message.result.translatedText;
284 request.post( 234 request.post(
285 { 235 {
286 url: TARGET_URL, 236 url: TARGET_URL,
...@@ -292,18 +242,32 @@ function q_3(replyToken, msg) { ...@@ -292,18 +242,32 @@ function q_3(replyToken, msg) {
292 "messages": [ 242 "messages": [
293 { 243 {
294 "type": "text", 244 "type": "text",
295 - "text": "Choose a number\n1. 국물\n2. 국물 없는 음식" 245 + "text": transMessage
296 } 246 }
297 ] 247 ]
298 } 248 }
299 }, (error, response, body) => { 249 }, (error, response, body) => {
300 console.log(body) 250 console.log(body)
301 }); 251 });
252 + }
253 + });
302 } 254 }
303 255
304 -function q_4(replyToken, msg) { 256 +async function opt_5(replyToken, message) {
305 - count++; 257 + await request.post(
306 - choosen.push(msg); 258 + {
259 + url: PAPAGO_URL,
260 + headers: {
261 + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
262 + 'X-Naver-Client-Id': `${PAPAGO_ID}`,
263 + 'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
264 + },
265 + body: 'source=en&target=ko&text=' + "1.차가운 음식 2.뜨거운 음식",
266 + json: true
267 + }, (error, response, body) => {
268 + if (!error && response.statusCode == 200) {
269 + console.log(body.message);
270 + var transMessage = body.message.result.translatedText;
307 request.post( 271 request.post(
308 { 272 {
309 url: TARGET_URL, 273 url: TARGET_URL,
...@@ -315,19 +279,17 @@ function q_4(replyToken, msg) { ...@@ -315,19 +279,17 @@ function q_4(replyToken, msg) {
315 "messages": [ 279 "messages": [
316 { 280 {
317 "type": "text", 281 "type": "text",
318 - "text": "Choose a number\n1. 매운 음식\n2. 안매운 음식" 282 + "text": transMessage
319 } 283 }
320 ] 284 ]
321 } 285 }
322 }, (error, response, body) => { 286 }, (error, response, body) => {
323 console.log(body) 287 console.log(body)
324 }); 288 });
289 + }
290 + });
325 } 291 }
326 292
327 -function sleep(ms) {
328 - const wakeUpTime = Date.now() + ms;
329 - while (Date.now() < wakeUpTime) {}
330 - }
331 293
332 try { 294 try {
333 const option = { 295 const option = {
......