Showing
1 changed file
with
95 additions
and
46 deletions
... | @@ -24,6 +24,7 @@ var voice = false; | ... | @@ -24,6 +24,7 @@ var voice = false; |
24 | 24 | ||
25 | //eng grammar check | 25 | //eng grammar check |
26 | var EnGrammarCheck_api_url = 'https://api.textgears.com/check.php'; | 26 | var EnGrammarCheck_api_url = 'https://api.textgears.com/check.php'; |
27 | +var grammarcheck = false; | ||
27 | 28 | ||
28 | // create LINE SDK client | 29 | // create LINE SDK client |
29 | const client = new line.Client(config.line_config); | 30 | const client = new line.Client(config.line_config); |
... | @@ -39,12 +40,6 @@ const voice_client = LineClient.connect({ | ... | @@ -39,12 +40,6 @@ const voice_client = LineClient.connect({ |
39 | // serve static files | 40 | // serve static files |
40 | app.use(express.static('public')); | 41 | app.use(express.static('public')); |
41 | 42 | ||
42 | -// create Express app | ||
43 | -// about Express itself: https://expressjs.com/ | ||
44 | -app.get("/upload", function (req, res) { | ||
45 | - res.render("upload"); | ||
46 | -}); | ||
47 | - | ||
48 | 43 | ||
49 | app.post("/webhook", line.middleware(config.line_config), (req, res) => { | 44 | app.post("/webhook", line.middleware(config.line_config), (req, res) => { |
50 | // res.status(200).end(); | 45 | // res.status(200).end(); |
... | @@ -82,7 +77,7 @@ function handleEvent(event) { | ... | @@ -82,7 +77,7 @@ function handleEvent(event) { |
82 | switch (event.message.text) { | 77 | switch (event.message.text) { |
83 | case "영어": | 78 | case "영어": |
84 | if (detect_body.langCode == "ko" || detect_body.langCode == "en") { | 79 | if (detect_body.langCode == "ko" || detect_body.langCode == "en") { |
85 | - language = "ja"; | 80 | + language = "en"; |
86 | source = detect_body.langCode == "ko" ? "ko" : "en"; | 81 | source = detect_body.langCode == "ko" ? "ko" : "en"; |
87 | target = source == "ko" ? "en" : "ko"; | 82 | target = source == "ko" ? "en" : "ko"; |
88 | //papago 번역 option | 83 | //papago 번역 option |
... | @@ -556,48 +551,24 @@ function handleEvent(event) { | ... | @@ -556,48 +551,24 @@ function handleEvent(event) { |
556 | 551 | ||
557 | break; | 552 | break; |
558 | 553 | ||
559 | - case '[문법을 검사합니다]': | 554 | + case '[영문법을 검사합니다]': |
560 | - | 555 | + var message = {type: 'text', text: ''}; |
556 | + if (grammarcheck) { | ||
557 | + grammarcheck = false; | ||
558 | + message.text = '영어 문법 검사를 종료합니다.' | ||
559 | + } else { | ||
560 | + grammarcheck = true; | ||
561 | + message.text = '영어 문장을 입력해주세요.' | ||
562 | + } | ||
563 | + client | ||
564 | + .replyMessage(event.replyToken, message) | ||
565 | + .then(resolve) | ||
566 | + .catch(reject); | ||
561 | break; | 567 | break; |
562 | 568 | ||
563 | 569 | ||
564 | - default: //영어로 번역 | 570 | + default: |
565 | - if (!voice) { | 571 | + if (voice)//음성 듣기 on |
566 | - if (detect_body.langCode == "ko" || detect_body.langCode == language) { | ||
567 | - source = detect_body.langCode == "ko" ? "ko" : language; | ||
568 | - target = source == "ko" ? language : "ko"; | ||
569 | - //papago 번역 option | ||
570 | - var options = { | ||
571 | - url: translate_api_url, | ||
572 | - // 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text) | ||
573 | - form: {source: source, target: target, text: event.message.text}, | ||
574 | - headers: config.naver_header | ||
575 | - | ||
576 | - }; | ||
577 | - request.post(options, function (error, response, body) { | ||
578 | - if (!error && response.statusCode == 200) { | ||
579 | - // JSON | ||
580 | - var objBody = JSON.parse(response.body); | ||
581 | - // Message 잘 찍히는지 확인 | ||
582 | - | ||
583 | - result.text = objBody.message.result.translatedText; | ||
584 | - console.log(result.text); | ||
585 | - //번역된 문장 보내기 | ||
586 | - client | ||
587 | - .replyMessage(event.replyToken, result) | ||
588 | - .then(resolve) | ||
589 | - .catch(reject); | ||
590 | - } | ||
591 | - }); | ||
592 | - } else { | ||
593 | - result.text = | ||
594 | - "언어를 감지할 수 없습니다."; | ||
595 | - client | ||
596 | - .replyMessage(event.replyToken, result) | ||
597 | - .then(resolve) | ||
598 | - .catch(reject); | ||
599 | - } | ||
600 | - } else //음성 듣기 on | ||
601 | { | 572 | { |
602 | if (detect_body.langCode == "en") { | 573 | if (detect_body.langCode == "en") { |
603 | let params = { | 574 | let params = { |
... | @@ -643,6 +614,84 @@ function handleEvent(event) { | ... | @@ -643,6 +614,84 @@ function handleEvent(event) { |
643 | .then(resolve) | 614 | .then(resolve) |
644 | .catch(reject); | 615 | .catch(reject); |
645 | } | 616 | } |
617 | + } else if (grammarcheck) { | ||
618 | + if (detect_body.langCode = 'en') { | ||
619 | + var grammar = { | ||
620 | + url: EnGrammarCheck_api_url, | ||
621 | + form: {key: '9WUGcY6ZayYMphG7', text: event.message.text}, | ||
622 | + } | ||
623 | + request.post(grammar, function (error, response, body) { | ||
624 | + if (!error && response.statusCode == 200) { | ||
625 | + // JSON | ||
626 | + var objBody = JSON.parse(response.body); | ||
627 | + // Message 잘 찍히는지 확인 | ||
628 | + console.log("obj"); | ||
629 | + var temp=""; | ||
630 | + var start_offset=0; | ||
631 | + | ||
632 | + for (var i = 0; i < Object.keys(objBody.errors).length; i++) { | ||
633 | + temp += event.message.text.substring(start_offset, objBody.errors[i]['offset']); | ||
634 | + temp += objBody.errors[i]['better'][0]; | ||
635 | + if(i != Object.keys(objBody.errors).length -1) { | ||
636 | + temp += " "; | ||
637 | + } | ||
638 | + start_offset = objBody.errors[i]['offset'] + objBody.errors[i]['length']+1; | ||
639 | + } | ||
640 | + result.text = temp; | ||
641 | + | ||
642 | + var last_index = Object.keys(objBody.errors).length -1; | ||
643 | + result.text += event.message.text.substring(objBody.errors[last_index]['offset'] + objBody.errors[last_index]['length'], event.message.text.length); | ||
644 | + | ||
645 | + //번역된 문장 보내기 | ||
646 | + client | ||
647 | + .replyMessage(event.replyToken, result) | ||
648 | + .then(resolve) | ||
649 | + .catch(reject); | ||
650 | + } | ||
651 | + }); | ||
652 | + } else { | ||
653 | + result.text = | ||
654 | + "언어를 감지할 수 없습니다."; | ||
655 | + client | ||
656 | + .replyMessage(event.replyToken, result) | ||
657 | + .then(resolve) | ||
658 | + .catch(reject); | ||
659 | + } | ||
660 | + } else {//영어로 번역 | ||
661 | + if (detect_body.langCode == "ko" || detect_body.langCode == language) { | ||
662 | + source = detect_body.langCode == "ko" ? "ko" : language; | ||
663 | + target = source == "ko" ? language : "ko"; | ||
664 | + //papago 번역 option | ||
665 | + var options = { | ||
666 | + url: translate_api_url, | ||
667 | + // 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text) | ||
668 | + form: {source: source, target: target, text: event.message.text}, | ||
669 | + headers: config.naver_header | ||
670 | + | ||
671 | + }; | ||
672 | + request.post(options, function (error, response, body) { | ||
673 | + if (!error && response.statusCode == 200) { | ||
674 | + // JSON | ||
675 | + var objBody = JSON.parse(response.body); | ||
676 | + // Message 잘 찍히는지 확인 | ||
677 | + | ||
678 | + result.text = objBody.message.result.translatedText; | ||
679 | + console.log(result.text); | ||
680 | + //번역된 문장 보내기 | ||
681 | + client | ||
682 | + .replyMessage(event.replyToken, result) | ||
683 | + .then(resolve) | ||
684 | + .catch(reject); | ||
685 | + } | ||
686 | + }); | ||
687 | + } else { | ||
688 | + result.text = | ||
689 | + "언어를 감지할 수 없습니다."; | ||
690 | + client | ||
691 | + .replyMessage(event.replyToken, result) | ||
692 | + .then(resolve) | ||
693 | + .catch(reject); | ||
694 | + } | ||
646 | } | 695 | } |
647 | break; | 696 | break; |
648 | } | 697 | } | ... | ... |
-
Please register or login to post a comment