Showing
1 changed file
with
155 additions
and
193 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); | 36 | + { |
41 | - | 37 | + opt_1(eventObj.replyToken, eventObj.message.text); |
42 | - for(var i = 0; i<5; 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) |
43 | - { | 39 | + { |
44 | - option(eventObj.replyToken, opt_1[i]); | 40 | + choosen.push(eventObj.message.text); |
45 | - console.log(opt_1[i]); | 41 | + count++; |
46 | - n++; | 42 | + opt_2(eventObj.replyToken, eventObj.message.text); |
47 | - sleep(5000); | 43 | + }else if((eventObj.message.text === '1' || eventObj.message.text === '2' || eventObj.message.text === '3') && count ==2) |
48 | - } | 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,105 +140,156 @@ function option(replyToken, message) | ... | @@ -229,105 +140,156 @@ 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); | ||
238 | - request.post( | ||
239 | { | 147 | { |
240 | - url: TARGET_URL, | 148 | + url: PAPAGO_URL, |
241 | headers: { | 149 | headers: { |
242 | - 'Authorization': `Bearer ${TOKEN}` | 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}` | ||
243 | }, | 153 | }, |
244 | - json: { | 154 | + body: 'source=en&target=ko&text=' + "1.고기 2.해산물 3.기타", |
245 | - "replyToken": replyToken, | 155 | + json: true |
246 | - "messages": [ | 156 | + }, (error, response, body) => { |
157 | + if (!error && response.statusCode == 200) { | ||
158 | + console.log(body.message); | ||
159 | + var transMessage = body.message.result.translatedText; | ||
160 | + request.post( | ||
247 | { | 161 | { |
248 | - "type": "text", | 162 | + url: TARGET_URL, |
249 | - "text": "Choose a number\n1. 고기\n2. 해산물\n3. 기타" | 163 | + headers: { |
250 | - } | 164 | + 'Authorization': `Bearer ${TOKEN}` |
251 | - ] | 165 | + }, |
166 | + json: { | ||
167 | + "replyToken": replyToken, | ||
168 | + "messages": [ | ||
169 | + { | ||
170 | + "type": "text", | ||
171 | + "text": transMessage | ||
172 | + } | ||
173 | + ] | ||
174 | + } | ||
175 | + }, (error, response, body) => { | ||
176 | + console.log(body) | ||
177 | + }); | ||
252 | } | 178 | } |
253 | - }, (error, response, body) => { | ||
254 | - console.log(body) | ||
255 | }); | 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); | ||
261 | - request.post( | ||
262 | { | 184 | { |
263 | - url: TARGET_URL, | 185 | + url: PAPAGO_URL, |
264 | headers: { | 186 | headers: { |
265 | - 'Authorization': `Bearer ${TOKEN}` | 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}` | ||
266 | }, | 190 | }, |
267 | - json: { | 191 | + body: 'source=en&target=ko&text=' + "1.매운 음식 2.안 매운 음식", |
268 | - "replyToken": replyToken, | 192 | + json: true |
269 | - "messages": [ | 193 | + }, (error, response, body) => { |
194 | + if (!error && response.statusCode == 200) { | ||
195 | + console.log(body.message); | ||
196 | + var transMessage = body.message.result.translatedText; | ||
197 | + request.post( | ||
270 | { | 198 | { |
271 | - "type": "text", | 199 | + url: TARGET_URL, |
272 | - "text": "Choose a number\n1. 뜨거운 음식\n2. 찬 음식" | 200 | + headers: { |
273 | - } | 201 | + 'Authorization': `Bearer ${TOKEN}` |
274 | - ] | 202 | + }, |
203 | + json: { | ||
204 | + "replyToken": replyToken, | ||
205 | + "messages": [ | ||
206 | + { | ||
207 | + "type": "text", | ||
208 | + "text": transMessage | ||
209 | + } | ||
210 | + ] | ||
211 | + } | ||
212 | + }, (error, response, body) => { | ||
213 | + console.log(body) | ||
214 | + }); | ||
275 | } | 215 | } |
276 | - }, (error, response, body) => { | ||
277 | - console.log(body) | ||
278 | }); | 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); | ||
284 | - request.post( | ||
285 | { | 221 | { |
286 | - url: TARGET_URL, | 222 | + url: PAPAGO_URL, |
287 | headers: { | 223 | headers: { |
288 | - 'Authorization': `Bearer ${TOKEN}` | 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}` | ||
289 | }, | 227 | }, |
290 | - json: { | 228 | + body: 'source=en&target=ko&text=' + "1.국물이 있는 음식 2.국물이 없는 음식", |
291 | - "replyToken": replyToken, | 229 | + json: true |
292 | - "messages": [ | 230 | + }, (error, response, body) => { |
231 | + if (!error && response.statusCode == 200) { | ||
232 | + console.log(body.message); | ||
233 | + var transMessage = body.message.result.translatedText; | ||
234 | + request.post( | ||
293 | { | 235 | { |
294 | - "type": "text", | 236 | + url: TARGET_URL, |
295 | - "text": "Choose a number\n1. 국물\n2. 국물 없는 음식" | 237 | + headers: { |
296 | - } | 238 | + 'Authorization': `Bearer ${TOKEN}` |
297 | - ] | 239 | + }, |
240 | + json: { | ||
241 | + "replyToken": replyToken, | ||
242 | + "messages": [ | ||
243 | + { | ||
244 | + "type": "text", | ||
245 | + "text": transMessage | ||
246 | + } | ||
247 | + ] | ||
248 | + } | ||
249 | + }, (error, response, body) => { | ||
250 | + console.log(body) | ||
251 | + }); | ||
298 | } | 252 | } |
299 | - }, (error, response, body) => { | ||
300 | - console.log(body) | ||
301 | }); | 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); | ||
307 | - request.post( | ||
308 | { | 258 | { |
309 | - url: TARGET_URL, | 259 | + url: PAPAGO_URL, |
310 | headers: { | 260 | headers: { |
311 | - 'Authorization': `Bearer ${TOKEN}` | 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}` | ||
312 | }, | 264 | }, |
313 | - json: { | 265 | + body: 'source=en&target=ko&text=' + "1.차가운 음식 2.뜨거운 음식", |
314 | - "replyToken": replyToken, | 266 | + json: true |
315 | - "messages": [ | 267 | + }, (error, response, body) => { |
268 | + if (!error && response.statusCode == 200) { | ||
269 | + console.log(body.message); | ||
270 | + var transMessage = body.message.result.translatedText; | ||
271 | + request.post( | ||
316 | { | 272 | { |
317 | - "type": "text", | 273 | + url: TARGET_URL, |
318 | - "text": "Choose a number\n1. 매운 음식\n2. 안매운 음식" | 274 | + headers: { |
319 | - } | 275 | + 'Authorization': `Bearer ${TOKEN}` |
320 | - ] | 276 | + }, |
277 | + json: { | ||
278 | + "replyToken": replyToken, | ||
279 | + "messages": [ | ||
280 | + { | ||
281 | + "type": "text", | ||
282 | + "text": transMessage | ||
283 | + } | ||
284 | + ] | ||
285 | + } | ||
286 | + }, (error, response, body) => { | ||
287 | + console.log(body) | ||
288 | + }); | ||
321 | } | 289 | } |
322 | - }, (error, response, body) => { | ||
323 | - console.log(body) | ||
324 | }); | 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 = { | ... | ... |
-
Please register or login to post a comment