Toggle navigation
Toggle navigation
This project
Loading...
Sign in
조현아
/
LINEBOT
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
조현아
2019-06-07 07:07:52 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
dfc94b20a996ca6903dda64a0ccd9383e68c46ba
dfc94b20
1 parent
f0cdf010
added eng translation
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
95 additions
and
46 deletions
app.js
app.js
View file @
dfc94b2
...
...
@@ -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
;
}
...
...
Please
register
or
login
to post a comment