Showing
55 changed files
with
39 additions
and
4 deletions
... | @@ -5,6 +5,7 @@ const axios = require('axios').default; | ... | @@ -5,6 +5,7 @@ const axios = require('axios').default; |
5 | const bodyParser = require('body-parser'); | 5 | const bodyParser = require('body-parser'); |
6 | 6 | ||
7 | app.use(bodyParser.json()); | 7 | app.use(bodyParser.json()); |
8 | +app.use('/images', express.static('images')); | ||
8 | 9 | ||
9 | const channelToken = 'Bearer ZVI571ynUAVT0U44734ziyjVtStYiUi2UA4txCgVUvugv5YQwToMDgE991Sd4UbsZtJpBhXEtQKX/YkvQVx0PgH9F7qy75eUR0iKMwz33RXD5BG8JuFZ67FqR/GXZQNSk+kXHMBVnCQPeeNqTNn5MgdB04t89/1O/w1cDnyilFU='; | 10 | const channelToken = 'Bearer ZVI571ynUAVT0U44734ziyjVtStYiUi2UA4txCgVUvugv5YQwToMDgE991Sd4UbsZtJpBhXEtQKX/YkvQVx0PgH9F7qy75eUR0iKMwz33RXD5BG8JuFZ67FqR/GXZQNSk+kXHMBVnCQPeeNqTNn5MgdB04t89/1O/w1cDnyilFU='; |
10 | 11 | ||
... | @@ -59,15 +60,49 @@ function onMessage(message, replyToken) { | ... | @@ -59,15 +60,49 @@ function onMessage(message, replyToken) { |
59 | } | 60 | } |
60 | 61 | ||
61 | function recommendItem(charAlias, replyToken) { | 62 | function recommendItem(charAlias, replyToken) { |
62 | - let sql = 'SELECT n.`alias`, i.`name` FROM `character_aliases` a JOIN `character_items` c ON a.`character_id`=c.`character_id` JOIN `character_aliases` n ON c.`character_id`=n.`character_id` JOIN `items` i ON c.`item`=i.`id` WHERE a.`alias`=? AND n.`is_name`=1 ORDER BY c.`count` DESC LIMIT 0,5'; | 63 | + let sql = 'SELECT n.`alias`, i.`id`, i.`name` FROM `character_aliases` a JOIN `character_items` c ON a.`character_id`=c.`character_id` JOIN `character_aliases` n ON c.`character_id`=n.`character_id` JOIN `items` i ON c.`item`=i.`id` WHERE a.`alias`=? AND n.`is_name`=1 ORDER BY c.`count` DESC LIMIT 0,5'; |
63 | pool.query(sql, [charAlias]).then(function([results]) { | 64 | pool.query(sql, [charAlias]).then(function([results]) { |
64 | let reply; | 65 | let reply; |
65 | if(results.length == 0) | 66 | if(results.length == 0) |
66 | - reply = '데이터가 없습니다.'; | 67 | + reply = {type: 'text', text: '데이터가 없습니다.'}; |
67 | else | 68 | else |
68 | - reply = `${results[0].alias}의 추천 아이템은 ${results.map(e => e.name).join(', ')} 입니다.`; | 69 | + reply = { |
70 | + type: 'flex', | ||
71 | + altText: `${results[0].alias}의 추천 아이템은 ${results.map(e => e.name).join(', ')} 입니다.`, | ||
72 | + contents: { | ||
73 | + type: 'bubble', | ||
74 | + size: 'kilo', | ||
75 | + body: { | ||
76 | + type: 'box', | ||
77 | + layout: 'vertical', | ||
78 | + alignItems: 'flex-start', | ||
79 | + contents: [ | ||
80 | + {type: 'text', text: `${results[0].alias}의 추천 아이템`} | ||
81 | + ].concat(results.map(e => ({ | ||
82 | + type: 'box', | ||
83 | + layout: 'horizontal', | ||
84 | + alignItems: 'center', | ||
85 | + justifyContent: 'flex-start', | ||
86 | + spacing: 'md', | ||
87 | + contents: [ | ||
88 | + { | ||
89 | + type: 'image', | ||
90 | + url: `https://jongro3.ga/images/items/${e.id.toString().padStart(2, '0')}.png`, | ||
91 | + size: 'xxs', | ||
92 | + flex: 0 | ||
93 | + }, | ||
94 | + { | ||
95 | + type: 'text', | ||
96 | + text: e.name, | ||
97 | + flex: 0 | ||
98 | + } | ||
99 | + ] | ||
100 | + }))) | ||
101 | + } | ||
102 | + } | ||
103 | + }; | ||
69 | 104 | ||
70 | - replyMessage(replyToken, [{type: 'text', text: reply}]); | 105 | + replyMessage(replyToken, [reply]); |
71 | }); | 106 | }); |
72 | } | 107 | } |
73 | 108 | ... | ... |
images/items/01.png
0 → 100644

6.75 KB
images/items/02.png
0 → 100644

6.99 KB
images/items/03.png
0 → 100644

8.6 KB
images/items/04.png
0 → 100644

6.51 KB
images/items/05.png
0 → 100644

7.18 KB
images/items/06.png
0 → 100644

7.61 KB
images/items/07.png
0 → 100644

5.57 KB
images/items/08.png
0 → 100644

5.83 KB
images/items/09.png
0 → 100644

6.99 KB
images/items/11.png
0 → 100644

6.62 KB
images/items/12.png
0 → 100644

7.3 KB
images/items/13.png
0 → 100644

7.32 KB
images/items/14.png
0 → 100644

7.12 KB
images/items/15.png
0 → 100644

6.81 KB
images/items/16.png
0 → 100644

8.08 KB
images/items/17.png
0 → 100644

6.65 KB
images/items/18.png
0 → 100644

7.76 KB
images/items/19.png
0 → 100644

7.72 KB
images/items/22.png
0 → 100644

7.22 KB
images/items/23.png
0 → 100644

6.36 KB
images/items/24.png
0 → 100644

7.47 KB
images/items/25.png
0 → 100644

6.92 KB
images/items/26.png
0 → 100644

6.07 KB
images/items/27.png
0 → 100644

6.4 KB
images/items/28.png
0 → 100644

6.86 KB
images/items/29.png
0 → 100644

6.16 KB
images/items/33.png
0 → 100644

6.22 KB
images/items/34.png
0 → 100644

7.54 KB
images/items/35.png
0 → 100644

8.61 KB
images/items/36.png
0 → 100644

6.79 KB
images/items/37.png
0 → 100644

6.97 KB
images/items/38.png
0 → 100644

7.32 KB
images/items/39.png
0 → 100644

6.19 KB
images/items/44.png
0 → 100644

7.07 KB
images/items/45.png
0 → 100644

6.22 KB
images/items/46.png
0 → 100644

5.93 KB
images/items/47.png
0 → 100644

8.57 KB
images/items/48.png
0 → 100644

6.7 KB
images/items/49.png
0 → 100644

6.44 KB
images/items/55.png
0 → 100644

7.35 KB
images/items/56.png
0 → 100644

6.44 KB
images/items/57.png
0 → 100644

7.6 KB
images/items/58.png
0 → 100644

7.74 KB
images/items/59.png
0 → 100644

7.44 KB
images/items/66.png
0 → 100644

6.19 KB
images/items/67.png
0 → 100644

7.21 KB
images/items/68.png
0 → 100644

6.58 KB
images/items/69.png
0 → 100644

6.8 KB
images/items/77.png
0 → 100644

9.24 KB
images/items/78.png
0 → 100644

6.7 KB
images/items/79.png
0 → 100644

7.08 KB
images/items/88.png
0 → 100644

8.14 KB
images/items/89.png
0 → 100644

6.72 KB
images/items/99.png
0 → 100644

5.92 KB
-
Please register or login to post a comment