Toggle navigation
Toggle navigation
This project
Loading...
Sign in
정윤지
/
Word_Chain_Chatbot
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
EC2 Default User
2021-12-09 08:31:46 +0000
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
2ecc3486d0edf5b2405dd612f6f5bf6ae69b4a67
2ecc3486
1 parent
c2b17cc5
Add README file
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
5 deletions
README.md
app.js
README.md
0 → 100644
View file @
2ecc348
# 끝말잇기 챗봇
term project for Open-source software development
<br
/>
-
email address: jeongyj8443@khu.ac.kr
<br
/>
-
Demo lineID: @063tjyar
<br
/>
## Introduction
This is a chatbot that plays word chain, one of the word games.
두 명 이상의 사람이 일정한 순서를 정하고, 그에 따라 돌아가면서 자신의 바로 전 차례의 사람이 제시한 낱말의 마지막 글자로 시작하는 낱말을 말하는 형식의 말놀이이다. 간단한 규칙으로 누구나 쉽게 할 수 있는 게임이다.
-----게임 도움말
'/시작' 입력으로 게임을 시작할 수 있다.
게임이 시작되면 사용자 먼저 단어를 제시한다.
챗봇과 번갈아가며 끝말잇기를 진행한다.
*
우승조건: 사용자의 마지막 글자로 시작하는 낱말이 존재하지 않는 경우
*
패배조건: 사용자가 단어를 조건에 맞게 입력하지 않은 경우
-
한 글자 단어인 경우
-
챗봇의 마지말 글자로 시작하지 않는 경우
-
표준어 내의 명사가 아닌 경우
(표준국어대사전에 있는 단어만 인정,
고유어, 한자어, 외래어, 혼종어 모두 인정))
'/종료' 입력으로 도중에 게임을 종료할 수 있다.
## Development Environment
-
Visual Studio Code @1.63.0
-
Node.js @14.16.0
-
OS: Windows_NT x64 10.0.22000
-
AWS EC2
## APIs
-
open API of line messaging API (https://developers.line.biz/en/services/messaging-api/)
<br
/>
If you want to use, sign up to this homepage and get own key.
<br
/>
-
open API of Standard Korean dictionary (https://stdict.korean.go.kr/main/main.do)
<br
/>
If you want to get word, sign up to this homepage and get own key.
<br
/>
\ No newline at end of file
app.js
View file @
2ecc348
var
express
=
require
(
'express'
);
const
request
=
require
(
'request'
);
const
TARGET_URL
=
'https://api.line.me/v2/bot/message/reply'
const
TOKEN
=
'
P5+e9JkPRckzKu1Fv7ghZl1MfP0wrYwYcgBVzHWe1OHO4Gtv1PIa9BARYqxoAThaXPSf8MyVKcpDE88V5jOnoS4o2xCNcgH9Ne4wcrPuNX6AT4gsfYEz0Y7n/A4+rT4vXHYARK34YPbkzzQbiXiyiQdB04t89/1O/w1cDnyilFU=
'
const
TOKEN
=
''
const
fs
=
require
(
'fs'
);
const
path
=
require
(
'path'
);
const
HTTPS
=
require
(
'https'
);
...
...
@@ -10,7 +10,7 @@ const sslport = 23023;
//Open API
const
STDICT_URL
=
'https://stdict.korean.go.kr/api/search.do'
const
STDICT_KEY
=
'
14AA284251F616FF2151DBE4CD7B3D4C
'
const
STDICT_KEY
=
''
//Webhook
const
bodyParser
=
require
(
'body-parser'
);
...
...
@@ -113,7 +113,7 @@ function all_check(replyToken, word, userId) {
'Referer'
:
'https://stdict.korean.go.kr/api/search.do'
,
'Content-Type'
:
'application/x-www-form-urlencoded'
},
body
:
`
key=14AA284251F616FF2151DBE4CD7B3D4C
&`
+
`q=
${
word
}
&`
+
'req_type=json&'
+
'advanced=y&'
+
'method=exact&'
+
'type1=word&'
+
'pos=1'
body
:
`
${
STDICT_KEY
}
&`
+
`q=
${
word
}
&`
+
'req_type=json&'
+
'advanced=y&'
+
'method=exact&'
+
'type1=word&'
+
'pos=1'
},(
error
,
response
,
body
)
=>
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
...
...
@@ -192,7 +192,7 @@ function all_check(replyToken, word, userId) {
'Referer'
:
'https://stdict.korean.go.kr/api/search.do'
,
'Content-Type'
:
'application/x-www-form-urlencoded'
},
body
:
`
key=14AA284251F616FF2151DBE4CD7B3D4C
&`
+
`q=
${
word
}
&`
+
'req_type=json&'
+
'advanced=y&'
+
'method=exact&'
+
'type1=word&'
+
'pos=1'
body
:
`
${
STDICT_KEY
}
&`
+
`q=
${
word
}
&`
+
'req_type=json&'
+
'advanced=y&'
+
'method=exact&'
+
'type1=word&'
+
'pos=1'
},(
error
,
response
,
body
)
=>
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
...
...
@@ -333,7 +333,7 @@ function wordchain(replyToken, message, userId) {
'Referer'
:
'https://stdict.korean.go.kr/api/search.do'
,
'Content-Type'
:
'application/x-www-form-urlencoded'
},
body
:
`
key=14AA284251F616FF2151DBE4CD7B3D4C
&`
+
`q=
${
letter
}
&`
+
'req_type=json&'
+
'start=15&'
+
'advanced=y&'
+
'method=start&'
+
'type1=word&'
+
'pos=1&'
+
'letter_s=2&'
+
'letter_e=3'
body
:
`
${
STDICT_KEY
}
&`
+
`q=
${
letter
}
&`
+
'req_type=json&'
+
'start=15&'
+
'advanced=y&'
+
'method=start&'
+
'type1=word&'
+
'pos=1&'
+
'letter_s=2&'
+
'letter_e=3'
},(
error
,
response
,
body
)
=>
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
...
...
Please
register
or
login
to post a comment