EC2 Default User

Distinguish id being played

Showing 1 changed file with 83 additions and 14 deletions
...@@ -21,6 +21,7 @@ app.use(bodyParser.json()); ...@@ -21,6 +21,7 @@ app.use(bodyParser.json());
21 app.post('/hook', function (req, res) { 21 app.post('/hook', function (req, res) {
22 22
23 var eventObj = req.body.events[0]; 23 var eventObj = req.body.events[0];
24 + console.log(eventObj);
24 var source = eventObj.source; 25 var source = eventObj.source;
25 var message = eventObj.message; 26 var message = eventObj.message;
26 27
...@@ -30,17 +31,91 @@ app.post('/hook', function (req, res) { ...@@ -30,17 +31,91 @@ app.post('/hook', function (req, res) {
30 console.log('[request source] ', source); 31 console.log('[request source] ', source);
31 console.log('[request message]', message); 32 console.log('[request message]', message);
32 33
33 - wordchain(eventObj.replyToken, message.text); 34 +
35 + wordchain(eventObj.replyToken, message.text, source.userId);
34 36
35 37
36 res.sendStatus(200); 38 res.sendStatus(200);
37 }); 39 });
38 40
39 -function wordchain(replyToken, message) { 41 +var playingId = [];
42 +function isCommand(message)
43 +{
44 + return message == '/시작' || message == '/종료' ? true : false;
45 +}
40 46
41 - let letter = message.slice(-1); 47 +function wordchain(replyToken, message, userId) {
48 + if (isCommand(message)){
42 49
43 - request.post( 50 + if(message == '/시작') {
51 + playingId.push(userId);
52 + request.post(
53 + {
54 + url: TARGET_URL,
55 + headers: {
56 + 'Authorization': `Bearer ${TOKEN}`
57 + },
58 + json: {
59 + "replyToken":replyToken,
60 + "messages":[
61 + {
62 + "type":"text",
63 + "text": "게임이 시작되었습니다.\n단어를 제시해주세요"
64 + }
65 + ]
66 + }
67 + },(error, response, body) => {
68 + console.log(body);
69 + });
70 + } else {
71 + var num = playingId.indexOf(userId);
72 + playingId.splice(num, 1);
73 + request.post(
74 + {
75 + url: TARGET_URL,
76 + headers: {
77 + 'Authorization': `Bearer ${TOKEN}`
78 + },
79 + json: {
80 + "replyToken":replyToken,
81 + "messages":[
82 + {
83 + "type":"text",
84 + "text": "게임이 종료되었습니다."
85 + }
86 + ]
87 + }
88 + },(error, response, body) => {
89 + console.log(body);
90 + });
91 + };
92 + } else {
93 +
94 + if(!playingId.includes(userId)) {
95 + request.post(
96 + {
97 + url: TARGET_URL,
98 + headers: {
99 + 'Authorization': `Bearer ${TOKEN}`
100 + },
101 + json: {
102 + "replyToken":replyToken,
103 + "messages":[
104 + {
105 + "type":"text",
106 + "text": "안녕하세요. 끝말잇기봇입니다.\n-표준어 내의 명사만 가능\n\t(표준국어대사전에 근거)\n-한 글자 단어 금지\n-중복 단어 금지\n시작: '/시작', 종료: '/종료' 입력"
107 + }
108 + ]
109 + }
110 + },(error, response, body) => {
111 + console.log(body);
112 + });
113 + } else {
114 + var word = message;
115 + let letter = word.slice(-1);
116 + console.log(letter);
117 +
118 + request.post(
44 { 119 {
45 url: STDICT_URL, 120 url: STDICT_URL,
46 headers: { 121 headers: {
...@@ -56,11 +131,8 @@ function wordchain(replyToken, message) { ...@@ -56,11 +131,8 @@ function wordchain(replyToken, message) {
56 var nextword = parsedData.channel.item[0].word; 131 var nextword = parsedData.channel.item[0].word;
57 var word_definition = parsedData.channel.item[0].sense.definition; 132 var word_definition = parsedData.channel.item[0].sense.definition;
58 133
59 -
60 -
61 -
62 request.post( 134 request.post(
63 - { 135 + {
64 url: TARGET_URL, 136 url: TARGET_URL,
65 headers: { 137 headers: {
66 'Authorization': `Bearer ${TOKEN}` 138 'Authorization': `Bearer ${TOKEN}`
...@@ -70,11 +142,7 @@ function wordchain(replyToken, message) { ...@@ -70,11 +142,7 @@ function wordchain(replyToken, message) {
70 "messages":[ 142 "messages":[
71 { 143 {
72 "type":"text", 144 "type":"text",
73 - "text":nextword 145 + "text":nextword + ': ' + word_definition
74 - },
75 - {
76 - "type":"text",
77 - "text":': ' + word_definition
78 } 146 }
79 ] 147 ]
80 } 148 }
...@@ -83,7 +151,8 @@ function wordchain(replyToken, message) { ...@@ -83,7 +151,8 @@ function wordchain(replyToken, message) {
83 }); 151 });
84 } 152 }
85 }); 153 });
86 - 154 + }
155 + }
87 } 156 }
88 157
89 //SSL 158 //SSL
......