taegwon

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

Showing 1 changed file with 110 additions and 148 deletions
var end = 'not';
var count = 0;
var n = 1;
var choosen = new Array();
var opt_1 = ['Korean cuisine', 'Chinese food', 'Japanese food', 'Western food', 'Guitar'];
var express = require('express');
const request = require('request');
const TARGET_URL = '라인 URL'
......@@ -20,7 +17,7 @@ const res = require('express/lib/response');
var app = express();
app.use(bodyParser.json());
app.post('/hook', function (req, res) {
n=1;
var eventObj = req.body.events[0];
var source = eventObj.source;
var message = eventObj.message;
......@@ -30,133 +27,49 @@ app.post('/hook', function (req, res) {
console.log('[request]', req.body);
console.log('[request source] ', eventObj.source);
console.log('[request message]', eventObj.message);
// switch (count) {
// case 0:
if (eventObj.message.text == 'start') {
count++;
start_msg(eventObj.replyToken, eventObj.message.text);
sleep(5000);
for(var i = 0; i<5; i++)
}else if(eventObj.message.text == 'y' && count ==1)
{
option(eventObj.replyToken, opt_1[i]);
console.log(opt_1[i]);
n++;
sleep(5000);
}
opt_1(eventObj.replyToken, eventObj.message.text);
}else if((eventObj.message.text === '1' || eventObj.message.text === '2' || eventObj.message.text === '3' || eventObj.message.text == '4' || eventObj.message.texts == '5') && count ==1)
{
choosen.push(eventObj.message.text);
count++;
opt_2(eventObj.replyToken, eventObj.message.text);
}else if((eventObj.message.text === '1' || eventObj.message.text === '2' || eventObj.message.text === '3') && count ==2)
{
choosen.push(eventObj.message.text);
count++;
opt_3(eventObj.replyToken, eventObj.message.text);
}else if((eventObj.message.text === '1' || eventObj.message.text === '2') && count ==3)
{
choosen.push(eventObj.message.text);
count++;
opt_4(eventObj.replyToken, eventObj.message.text);
}else if((eventObj.message.text === '1' || eventObj.message.text === '2') && count ==4)
{
choosen.push(eventObj.message.text);
count++;
opt_5(eventObj.replyToken, eventObj.message.text);
}else if((eventObj.message.text === '1' || eventObj.message.text === '2') && count ==5)
{
choosen.push(eventObj.message.text);
count++;
}
// break;
// case 1:
// if (eventObj.message.text === '1' || eventObj.message.text === '2' || eventObj.message.text === '3' || eventObj.message.text == '4' || eventObj.message.texts == '5') {
// q_1(eventObj.replyToken, eventObj.message.text);
// } else {
// request.post(
// {
// url: TARGET_URL,
// headers: {
// 'Authorization': `Bearer ${TOKEN}`
// },
// json: {
// "replyToken": eventObj.replyToken,
// "messages": [
// {
// "type": "text",
// "text": "Please choose a number between 1 to 5!"
// }
// ]
// }
// }, (error, response, body) => {
// console.log(body)
// });
// }
// break;
// case 2:
// if (eventObj.message.text === '1' || eventObj.message.text === '2' || eventObj.message.text === '3') {
// q_2(eventObj.replyToken, eventObj.message.text);
// } else {
// request.post(
// {
// url: TARGET_URL,
// headers: {
// 'Authorization': `Bearer ${TOKEN}`
// },
// json: {
// "replyToken": eventObj.replyToken,
// "messages": [
// {
// "type": "text",
// "text": "Please choose a number between 1 to 3!"
// }
// ]
// }
// }, (error, response, body) => {
// console.log(body)
// });
// }
// break;
// case 3:
// if (eventObj.message.text === '1' || eventObj.message.text === '2' || eventObj.message.text === '3') {
// q_2(eventObj.replyToken, eventObj.message.text);
// } else {
// request.post(
// {
// url: TARGET_URL,
// headers: {
// 'Authorization': `Bearer ${TOKEN}`
// },
// json: {
// "replyToken": eventObj.replyToken,
// "messages": [
// {
// "type": "text",
// "text": "Please choose a number between 1 to 3!"
// }
// ]
// }
// }, (error, response, body) => {
// console.log(body)
// });
// }
// break;
// case 4:
// if (eventObj.message.text === '1' || eventObj.message.text === '2') {
// q_4(eventObj.replyToken, eventObj.message.text);
// } else {
// request.post(
// {
// url: TARGET_URL,
// headers: {
// 'Authorization': `Bearer ${TOKEN}`
// },
// json: {
// "replyToken": eventObj.replyToken,
// "messages": [
// {
// "type": "text",
// "text": "Please choose a number between 1 to 2!"
// }
// ]
// }
// }, (error, response, body) => {
// console.log(body)
// });
// }
// break;
// case 5:
// end = 'end';
// break;
// default:
// break;
// }
res.sendStatus(200);
for(var i = 0;i<5;i++)
{
console.log(choosen[i]);
}
});
function start_msg(replyToken, message) {
request.post(
async function start_msg(replyToken, message) {
await request.post(
{
url: PAPAGO_URL,
headers: {
......@@ -164,7 +77,7 @@ function start_msg(replyToken, message) {
'X-Naver-Client-Id': `${PAPAGO_ID}`,
'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
},
body: 'source=en&target=ko&text=' + "Hi This is Menu recommend Chatbot! If you follow the instructions, I will recommend the menu",
body: 'source=en&target=ko&text=' + "Hi This is Menu recommend Chatbot! If you follow the instructions, I will recommend the menu. 진행하시겠습니까?(y/n)",
json: true
}, (error, response, body) => {
if (!error && response.statusCode == 200) {
......@@ -190,12 +103,10 @@ function start_msg(replyToken, message) {
});
}
});
sleep(5000);
}
function option(replyToken, message)
{
request.post(
async function opt_1(replyToken, message) {
await request.post(
{
url: PAPAGO_URL,
headers: {
......@@ -203,7 +114,7 @@ function option(replyToken, message)
'X-Naver-Client-Id': `${PAPAGO_ID}`,
'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
},
body: 'source=en&target=ko&text=' + n + "." + message,
body: 'source=en&target=ko&text=' + "1.Korean cuisine 2.Chinese food 3.Japanese food 4.Western food 5.Guitar",
json: true
}, (error, response, body) => {
if (!error && response.statusCode == 200) {
......@@ -229,12 +140,23 @@ function option(replyToken, message)
});
}
});
sleep(5000);
}
function q_1(replyToken, msg) {
count++;
choosen.push(msg);
async function opt_2(replyToken, message) {
await request.post(
{
url: PAPAGO_URL,
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Naver-Client-Id': `${PAPAGO_ID}`,
'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
},
body: 'source=en&target=ko&text=' + "1.고기 2.해산물 3.기타",
json: true
}, (error, response, body) => {
if (!error && response.statusCode == 200) {
console.log(body.message);
var transMessage = body.message.result.translatedText;
request.post(
{
url: TARGET_URL,
......@@ -246,18 +168,32 @@ function q_1(replyToken, msg) {
"messages": [
{
"type": "text",
"text": "Choose a number\n1. 고기\n2. 해산물\n3. 기타"
"text": transMessage
}
]
}
}, (error, response, body) => {
console.log(body)
});
}
});
}
function q_2(replyToken, msg) {
count++;
choosen.push(msg);
async function opt_3(replyToken, message) {
await request.post(
{
url: PAPAGO_URL,
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Naver-Client-Id': `${PAPAGO_ID}`,
'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
},
body: 'source=en&target=ko&text=' + "1.매운 음식 2.안 매운 음식",
json: true
}, (error, response, body) => {
if (!error && response.statusCode == 200) {
console.log(body.message);
var transMessage = body.message.result.translatedText;
request.post(
{
url: TARGET_URL,
......@@ -269,18 +205,32 @@ function q_2(replyToken, msg) {
"messages": [
{
"type": "text",
"text": "Choose a number\n1. 뜨거운 음식\n2. 찬 음식"
"text": transMessage
}
]
}
}, (error, response, body) => {
console.log(body)
});
}
});
}
function q_3(replyToken, msg) {
count++;
choosen.push(msg);
async function opt_4(replyToken, message) {
await request.post(
{
url: PAPAGO_URL,
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Naver-Client-Id': `${PAPAGO_ID}`,
'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
},
body: 'source=en&target=ko&text=' + "1.국물이 있는 음식 2.국물이 없는 음식",
json: true
}, (error, response, body) => {
if (!error && response.statusCode == 200) {
console.log(body.message);
var transMessage = body.message.result.translatedText;
request.post(
{
url: TARGET_URL,
......@@ -292,18 +242,32 @@ function q_3(replyToken, msg) {
"messages": [
{
"type": "text",
"text": "Choose a number\n1. 국물\n2. 국물 없는 음식"
"text": transMessage
}
]
}
}, (error, response, body) => {
console.log(body)
});
}
});
}
function q_4(replyToken, msg) {
count++;
choosen.push(msg);
async function opt_5(replyToken, message) {
await request.post(
{
url: PAPAGO_URL,
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Naver-Client-Id': `${PAPAGO_ID}`,
'X-Naver-Client-Secret': `${PAPAGO_SECRET}`
},
body: 'source=en&target=ko&text=' + "1.차가운 음식 2.뜨거운 음식",
json: true
}, (error, response, body) => {
if (!error && response.statusCode == 200) {
console.log(body.message);
var transMessage = body.message.result.translatedText;
request.post(
{
url: TARGET_URL,
......@@ -315,19 +279,17 @@ function q_4(replyToken, msg) {
"messages": [
{
"type": "text",
"text": "Choose a number\n1. 매운 음식\n2. 안매운 음식"
"text": transMessage
}
]
}
}, (error, response, body) => {
console.log(body)
});
}
});
}
function sleep(ms) {
const wakeUpTime = Date.now() + ms;
while (Date.now() < wakeUpTime) {}
}
try {
const option = {
......