Showing
1 changed file
with
61 additions
and
4 deletions
... | @@ -20,6 +20,7 @@ const version = '0.1'; | ... | @@ -20,6 +20,7 @@ const version = '0.1'; |
20 | const dataFileName = 'data.json'; | 20 | const dataFileName = 'data.json'; |
21 | 21 | ||
22 | var fakerData = {}; | 22 | var fakerData = {}; |
23 | +var quizList = []; | ||
23 | 24 | ||
24 | async function checkData() { | 25 | async function checkData() { |
25 | try { | 26 | try { |
... | @@ -55,6 +56,8 @@ async function checkData() { | ... | @@ -55,6 +56,8 @@ async function checkData() { |
55 | } | 56 | } |
56 | } | 57 | } |
57 | 58 | ||
59 | + generateQuiz(); | ||
60 | + | ||
58 | return new Promise(function (resolve, reject) { | 61 | return new Promise(function (resolve, reject) { |
59 | resolve(); | 62 | resolve(); |
60 | }); | 63 | }); |
... | @@ -213,8 +216,56 @@ async function getData() { | ... | @@ -213,8 +216,56 @@ async function getData() { |
213 | }); | 216 | }); |
214 | } | 217 | } |
215 | 218 | ||
219 | +function generateQuiz() { | ||
220 | + quizList = []; | ||
221 | + //#region 최근 LCK 모스트픽 ox | ||
222 | + var mostList = []; | ||
223 | + mostList = fakerData.recentLCK.most; | ||
224 | + var quizO = `${fakerData.name}의 '${fakerData.recentLCK.name}' 모스트 픽은 '${mostList[0].champion}'이다.`; | ||
225 | + var quizX = `${fakerData.name}의 '${fakerData.recentLCK.name}' 모스트 픽은 '${mostList[2].champion}'이다.`; | ||
226 | + var info = `${fakerData.name}는 '${fakerData.recentLCK.name}'에서 '${mostList[0].champion}'을 가장 많이 플레이했습니다. (${mostList[0].played}게임)`; | ||
227 | + generateOX(quizO,quizX,info); | ||
228 | + //#endregion | ||
229 | + | ||
230 | + //#region 최근 LCK 승률 비교 ox | ||
231 | + var lckWinRate = fakerData.recentLCK.comparison_WinRate.split(' ')[0]; | ||
232 | + var recentWinRate = fakerData.recentLCK.comparison_WinRate.split(' ')[1]; | ||
233 | + if (lckWinRate < recentWinRate) { | ||
234 | + quizO = `${fakerData.name}의 '${fakerData.recentLCK.name}' 승률은 LCK 통산 승률보다 높다.`; | ||
235 | + quizX = `${fakerData.name}의 '${fakerData.recentLCK.name}' 승률은 LCK 통산 승률보다 낮다.`; | ||
236 | + } else { | ||
237 | + quizO = `${fakerData.name}의 '${fakerData.recentLCK.name}' 승률은 LCK 통산 승률보다 낮다.`; | ||
238 | + quizX = `${fakerData.name}의 '${fakerData.recentLCK.name}' 승률은 LCK 통산 승률보다 높다.`; | ||
239 | + } | ||
240 | + info = `${fakerData.recentLCK.name}' 승률 : ${recentWinRate}\nLCK 통산 승률 : ${lckWinRate}`; | ||
241 | + generateOX(quizO,quizX,info); | ||
242 | + //#endregion | ||
243 | +} | ||
244 | + | ||
245 | +function generateOX(quizO, quizX, moreInfo) { | ||
246 | + var quiz; | ||
247 | + var ans; | ||
248 | + var info; | ||
249 | + info = moreInfo; | ||
250 | + if (Math.random() > 0.5) { | ||
251 | + quiz = quizO; | ||
252 | + ans = 'o'; | ||
253 | + } else { | ||
254 | + quiz = quizX; | ||
255 | + ans = 'x'; | ||
256 | + } | ||
257 | + quiz = '[OX퀴즈] ' + quiz; | ||
258 | + quizList.push( | ||
259 | + { | ||
260 | + quiz: quiz, | ||
261 | + ans: ans, | ||
262 | + info: info | ||
263 | + } | ||
264 | + ); | ||
265 | +} | ||
266 | + | ||
216 | app.use(bodyParser.json()); | 267 | app.use(bodyParser.json()); |
217 | -app.post('/hook', function (req, res) { | 268 | +app.post('/hook', async function (req, res) { |
218 | var eventObj = req.body.events[0]; | 269 | var eventObj = req.body.events[0]; |
219 | var source = eventObj.source; | 270 | var source = eventObj.source; |
220 | var message = eventObj.message; | 271 | var message = eventObj.message; |
... | @@ -225,12 +276,18 @@ app.post('/hook', function (req, res) { | ... | @@ -225,12 +276,18 @@ app.post('/hook', function (req, res) { |
225 | console.log('[request source] ', eventObj.source); | 276 | console.log('[request source] ', eventObj.source); |
226 | console.log('[request message]', eventObj.message); | 277 | console.log('[request message]', eventObj.message); |
227 | 278 | ||
228 | - sendMessage(eventObj.replyToken, eventObj.message.text); | 279 | + if (eventObj.message.text == '시작') { |
280 | + await checkData(); | ||
281 | + sendQuiz(eventObj.replyToken); | ||
282 | + } | ||
229 | 283 | ||
230 | res.sendStatus(200); | 284 | res.sendStatus(200); |
231 | }); | 285 | }); |
232 | 286 | ||
233 | -function sendMessage(replyToken, message) { | 287 | +function sendQuiz(replyToken, message) { |
288 | + var randomQuiz = quizList[Math.floor(Math.random()*quizList.length)]; | ||
289 | + var quizText = randomQuiz.quiz; | ||
290 | + | ||
234 | request.post( | 291 | request.post( |
235 | { | 292 | { |
236 | url: TARGET_URL, | 293 | url: TARGET_URL, |
... | @@ -242,7 +299,7 @@ function sendMessage(replyToken, message) { | ... | @@ -242,7 +299,7 @@ function sendMessage(replyToken, message) { |
242 | "messages":[ | 299 | "messages":[ |
243 | { | 300 | { |
244 | "type":"text", | 301 | "type":"text", |
245 | - "text":"test" | 302 | + "text":quizText |
246 | } | 303 | } |
247 | ] | 304 | ] |
248 | } | 305 | } | ... | ... |
-
Please register or login to post a comment