EC2 Default User

Add README file

1 +# 끝말잇기 챗봇
2 +term project for Open-source software development <br />
3 +- email address: jeongyj8443@khu.ac.kr <br />
4 +- Demo lineID: @063tjyar <br />
5 +
6 +## Introduction
7 +This is a chatbot that plays word chain, one of the word games.
8 +
9 +두 명 이상의 사람이 일정한 순서를 정하고, 그에 따라 돌아가면서 자신의 바로 전 차례의 사람이 제시한 낱말의 마지막 글자로 시작하는 낱말을 말하는 형식의 말놀이이다. 간단한 규칙으로 누구나 쉽게 할 수 있는 게임이다.
10 +
11 +-----게임 도움말
12 + '/시작' 입력으로 게임을 시작할 수 있다.
13 + 게임이 시작되면 사용자 먼저 단어를 제시한다.
14 + 챗봇과 번갈아가며 끝말잇기를 진행한다.
15 + *우승조건: 사용자의 마지막 글자로 시작하는 낱말이 존재하지 않는 경우
16 + *패배조건: 사용자가 단어를 조건에 맞게 입력하지 않은 경우
17 + - 한 글자 단어인 경우
18 + - 챗봇의 마지말 글자로 시작하지 않는 경우
19 + - 표준어 내의 명사가 아닌 경우
20 + (표준국어대사전에 있는 단어만 인정,
21 + 고유어, 한자어, 외래어, 혼종어 모두 인정))
22 +'/종료' 입력으로 도중에 게임을 종료할 수 있다.
23 +
24 +
25 +## Development Environment
26 +- Visual Studio Code @1.63.0
27 +- Node.js @14.16.0
28 +- OS: Windows_NT x64 10.0.22000
29 +- AWS EC2
30 +
31 +## APIs
32 +- open API of line messaging API (https://developers.line.biz/en/services/messaging-api/) <br />
33 +If you want to use, sign up to this homepage and get own key. <br />
34 +- open API of Standard Korean dictionary (https://stdict.korean.go.kr/main/main.do) <br />
35 +If you want to get word, sign up to this homepage and get own key. <br />
...\ No newline at end of file ...\ No newline at end of file
1 var express = require('express'); 1 var express = require('express');
2 const request = require('request'); 2 const request = require('request');
3 const TARGET_URL = 'https://api.line.me/v2/bot/message/reply' 3 const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
4 -const TOKEN = 'P5+e9JkPRckzKu1Fv7ghZl1MfP0wrYwYcgBVzHWe1OHO4Gtv1PIa9BARYqxoAThaXPSf8MyVKcpDE88V5jOnoS4o2xCNcgH9Ne4wcrPuNX6AT4gsfYEz0Y7n/A4+rT4vXHYARK34YPbkzzQbiXiyiQdB04t89/1O/w1cDnyilFU=' 4 +const TOKEN = ''
5 const fs = require('fs'); 5 const fs = require('fs');
6 const path = require('path'); 6 const path = require('path');
7 const HTTPS = require('https'); 7 const HTTPS = require('https');
...@@ -10,7 +10,7 @@ const sslport = 23023; ...@@ -10,7 +10,7 @@ const sslport = 23023;
10 10
11 //Open API 11 //Open API
12 const STDICT_URL = 'https://stdict.korean.go.kr/api/search.do' 12 const STDICT_URL = 'https://stdict.korean.go.kr/api/search.do'
13 -const STDICT_KEY = '14AA284251F616FF2151DBE4CD7B3D4C' 13 +const STDICT_KEY = ''
14 14
15 //Webhook 15 //Webhook
16 const bodyParser = require('body-parser'); 16 const bodyParser = require('body-parser');
...@@ -113,7 +113,7 @@ function all_check(replyToken, word, userId) { ...@@ -113,7 +113,7 @@ function all_check(replyToken, word, userId) {
113 'Referer': 'https://stdict.korean.go.kr/api/search.do', 113 'Referer': 'https://stdict.korean.go.kr/api/search.do',
114 'Content-Type': 'application/x-www-form-urlencoded' 114 'Content-Type': 'application/x-www-form-urlencoded'
115 }, 115 },
116 - body: `key=14AA284251F616FF2151DBE4CD7B3D4C&` + `q=${word}&` + 'req_type=json&' + 'advanced=y&' + 'method=exact&' + 'type1=word&' + 'pos=1' 116 + body: `${STDICT_KEY}&` + `q=${word}&` + 'req_type=json&' + 'advanced=y&' + 'method=exact&' + 'type1=word&' + 'pos=1'
117 117
118 },(error, response, body) => { 118 },(error, response, body) => {
119 if(!error && response.statusCode == 200) { 119 if(!error && response.statusCode == 200) {
...@@ -192,7 +192,7 @@ function all_check(replyToken, word, userId) { ...@@ -192,7 +192,7 @@ function all_check(replyToken, word, userId) {
192 'Referer': 'https://stdict.korean.go.kr/api/search.do', 192 'Referer': 'https://stdict.korean.go.kr/api/search.do',
193 'Content-Type': 'application/x-www-form-urlencoded' 193 'Content-Type': 'application/x-www-form-urlencoded'
194 }, 194 },
195 - body: `key=14AA284251F616FF2151DBE4CD7B3D4C&` + `q=${word}&` + 'req_type=json&' + 'advanced=y&' + 'method=exact&' + 'type1=word&' + 'pos=1' 195 + body: `${STDICT_KEY}&` + `q=${word}&` + 'req_type=json&' + 'advanced=y&' + 'method=exact&' + 'type1=word&' + 'pos=1'
196 196
197 },(error, response, body) => { 197 },(error, response, body) => {
198 if(!error && response.statusCode == 200) { 198 if(!error && response.statusCode == 200) {
...@@ -333,7 +333,7 @@ function wordchain(replyToken, message, userId) { ...@@ -333,7 +333,7 @@ function wordchain(replyToken, message, userId) {
333 'Referer': 'https://stdict.korean.go.kr/api/search.do', 333 'Referer': 'https://stdict.korean.go.kr/api/search.do',
334 'Content-Type': 'application/x-www-form-urlencoded' 334 'Content-Type': 'application/x-www-form-urlencoded'
335 }, 335 },
336 - body: `key=14AA284251F616FF2151DBE4CD7B3D4C&` + `q=${letter}&` + 'req_type=json&' + 'start=15&' + 'advanced=y&' + 'method=start&' + 'type1=word&' + 'pos=1&' + 'letter_s=2&' + 'letter_e=3' 336 + body: `${STDICT_KEY}&` + `q=${letter}&` + 'req_type=json&' + 'start=15&' + 'advanced=y&' + 'method=start&' + 'type1=word&' + 'pos=1&' + 'letter_s=2&' + 'letter_e=3'
337 337
338 },(error, response, body) => { 338 },(error, response, body) => {
339 if(!error && response.statusCode == 200) { 339 if(!error && response.statusCode == 200) {
......