sckim

Translation and Sending message After OCR

Showing 1 changed file with 50 additions and 1 deletions
...@@ -70,7 +70,6 @@ function handleEvent(event) { ...@@ -70,7 +70,6 @@ function handleEvent(event) {
70 if (event.type !== 'message' || event.message.type !== 'text') { 70 if (event.type !== 'message' || event.message.type !== 'text') {
71 if (event.message.type === 'image') 71 if (event.message.type === 'image')
72 return new Promise(function(resolve, reject) { 72 return new Promise(function(resolve, reject) {
73 - console.log(event.message)
74 const imageStream = fs.createWriteStream('public/image.jpeg') 73 const imageStream = fs.createWriteStream('public/image.jpeg')
75 client.getMessageContent(event.message.id) 74 client.getMessageContent(event.message.id)
76 .then((stream) => { 75 .then((stream) => {
...@@ -111,6 +110,56 @@ function handleEvent(event) { ...@@ -111,6 +110,56 @@ function handleEvent(event) {
111 console.log(detected_text) 110 console.log(detected_text)
112 var text_before_translation = detected_text.split('\n').join('').toLowerCase() 111 var text_before_translation = detected_text.split('\n').join('').toLowerCase()
113 console.log(text_before_translation) 112 console.log(text_before_translation)
113 +
114 + //언어 감지 option
115 + var detect_options = {
116 + url: languagedetect_api_url,
117 + form: {'query': text_before_translation},
118 + headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret}
119 + }
120 + //papago 언어 감지
121 + request.post(detect_options, function (error, response, body) {
122 + console.log(response.statusCode)
123 + if (!error && response.statusCode == 200) {
124 + var detect_body = JSON.parse(response.body)
125 + var source = ''
126 + var target = ''
127 + var result = {type: 'text', text: ''}
128 + //언어 감지가 제대로 됐는지 확인
129 + console.log(detect_body.langCode)
130 + //번역은 한국어->영어 / 영어->한국어만 지원
131 + if (detect_body.langCode == 'ko' || detect_body.langCode == 'en') {
132 + source = detect_body.langCode == 'ko' ? 'ko' : 'en'
133 + target = source == 'ko' ? 'en' : 'ko'
134 + //papago 번역 option
135 + var options = {
136 + url: translate_api_url,
137 + // 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text)
138 + form: {'source': source, 'target': target, 'text': text_before_translation},
139 + headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret}
140 + }
141 + // Naver Post API
142 + request.post(options, function (error, response, body) {
143 + // Translate API Sucess
144 + if (!error && response.statusCode == 200) {
145 + // JSON
146 + var objBody = JSON.parse(response.body)
147 + result.text = '감지된 텍스트 :\n' + detected_text + '\n번역된 텍스트 :\n' + objBody.message.result.translatedText
148 + // Message 잘 찍히는지 확인
149 + console.log(result.text)
150 + //번역된 문장 보내기
151 + client.replyMessage(event.replyToken, result).then(resolve).catch(reject)
152 + }
153 + })
154 + }
155 + // 메시지의 언어가 영어 또는 한국어가 아닐 경우
156 + else {
157 + result.text = '언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 영어만 가능합니다.'
158 + client.replyMessage(event.replyToken, result).then(resolve).catch(reject)
159 + }
160 +
161 + }
162 + })
114 }) 163 })
115 }) 164 })
116 }) 165 })
......