조현아

added eng translation

Showing 1 changed file with 95 additions and 46 deletions
......@@ -24,6 +24,7 @@ var voice = false;
//eng grammar check
var EnGrammarCheck_api_url = 'https://api.textgears.com/check.php';
var grammarcheck = false;
// create LINE SDK client
const client = new line.Client(config.line_config);
......@@ -39,12 +40,6 @@ const voice_client = LineClient.connect({
// serve static files
app.use(express.static('public'));
// create Express app
// about Express itself: https://expressjs.com/
app.get("/upload", function (req, res) {
res.render("upload");
});
app.post("/webhook", line.middleware(config.line_config), (req, res) => {
// res.status(200).end();
......@@ -82,7 +77,7 @@ function handleEvent(event) {
switch (event.message.text) {
case "영어":
if (detect_body.langCode == "ko" || detect_body.langCode == "en") {
language = "ja";
language = "en";
source = detect_body.langCode == "ko" ? "ko" : "en";
target = source == "ko" ? "en" : "ko";
//papago 번역 option
......@@ -556,48 +551,24 @@ function handleEvent(event) {
break;
case '[문법을 검사합니다]':
case '[영문법을 검사합니다]':
var message = {type: 'text', text: ''};
if (grammarcheck) {
grammarcheck = false;
message.text = '영어 문법 검사를 종료합니다.'
} else {
grammarcheck = true;
message.text = '영어 문장을 입력해주세요.'
}
client
.replyMessage(event.replyToken, message)
.then(resolve)
.catch(reject);
break;
default: //영어로 번역
if (!voice) {
if (detect_body.langCode == "ko" || detect_body.langCode == language) {
source = detect_body.langCode == "ko" ? "ko" : language;
target = source == "ko" ? language : "ko";
//papago 번역 option
var options = {
url: translate_api_url,
// 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text)
form: {source: source, target: target, text: event.message.text},
headers: config.naver_header
};
request.post(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
// JSON
var objBody = JSON.parse(response.body);
// Message 잘 찍히는지 확인
result.text = objBody.message.result.translatedText;
console.log(result.text);
//번역된 문장 보내기
client
.replyMessage(event.replyToken, result)
.then(resolve)
.catch(reject);
}
});
} else {
result.text =
"언어를 감지할 수 없습니다.";
client
.replyMessage(event.replyToken, result)
.then(resolve)
.catch(reject);
}
} else //음성 듣기 on
default:
if (voice)//음성 듣기 on
{
if (detect_body.langCode == "en") {
let params = {
......@@ -643,6 +614,84 @@ function handleEvent(event) {
.then(resolve)
.catch(reject);
}
} else if (grammarcheck) {
if (detect_body.langCode = 'en') {
var grammar = {
url: EnGrammarCheck_api_url,
form: {key: '9WUGcY6ZayYMphG7', text: event.message.text},
}
request.post(grammar, function (error, response, body) {
if (!error && response.statusCode == 200) {
// JSON
var objBody = JSON.parse(response.body);
// Message 잘 찍히는지 확인
console.log("obj");
var temp="";
var start_offset=0;
for (var i = 0; i < Object.keys(objBody.errors).length; i++) {
temp += event.message.text.substring(start_offset, objBody.errors[i]['offset']);
temp += objBody.errors[i]['better'][0];
if(i != Object.keys(objBody.errors).length -1) {
temp += " ";
}
start_offset = objBody.errors[i]['offset'] + objBody.errors[i]['length']+1;
}
result.text = temp;
var last_index = Object.keys(objBody.errors).length -1;
result.text += event.message.text.substring(objBody.errors[last_index]['offset'] + objBody.errors[last_index]['length'], event.message.text.length);
//번역된 문장 보내기
client
.replyMessage(event.replyToken, result)
.then(resolve)
.catch(reject);
}
});
} else {
result.text =
"언어를 감지할 수 없습니다.";
client
.replyMessage(event.replyToken, result)
.then(resolve)
.catch(reject);
}
} else {//영어로 번역
if (detect_body.langCode == "ko" || detect_body.langCode == language) {
source = detect_body.langCode == "ko" ? "ko" : language;
target = source == "ko" ? language : "ko";
//papago 번역 option
var options = {
url: translate_api_url,
// 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text)
form: {source: source, target: target, text: event.message.text},
headers: config.naver_header
};
request.post(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
// JSON
var objBody = JSON.parse(response.body);
// Message 잘 찍히는지 확인
result.text = objBody.message.result.translatedText;
console.log(result.text);
//번역된 문장 보내기
client
.replyMessage(event.replyToken, result)
.then(resolve)
.catch(reject);
}
});
} else {
result.text =
"언어를 감지할 수 없습니다.";
client
.replyMessage(event.replyToken, result)
.then(resolve)
.catch(reject);
}
}
break;
}
......