김환

merge

...@@ -5,6 +5,7 @@ var urlenconde = require('urlencode'); ...@@ -5,6 +5,7 @@ var urlenconde = require('urlencode');
5 var apikey = "RGAPI-0c7096fc-2511-4654-a889-40879eae0370"//api 5 var apikey = "RGAPI-0c7096fc-2511-4654-a889-40879eae0370"//api
6 6
7 7
8 +
8 var profileIconId; //아이콘 번호 9 var profileIconId; //아이콘 번호
9 var revisionDate; //수정날짜 10 var revisionDate; //수정날짜
10 var id; //소환사ID 11 var id; //소환사ID
...@@ -16,7 +17,66 @@ var rotation_champ = new Array(); ...@@ -16,7 +17,66 @@ var rotation_champ = new Array();
16 app.get('/', function(req, res) { 17 app.get('/', function(req, res) {
17 res.render('main', { title: 'R U TROLL?' }); 18 res.render('main', { title: 'R U TROLL?' });
18 }); 19 });
20 + app.get('/data/:championname',function(req,res,net){
21 + var champ_name=req.params.championname;
22 + var champUrl = "https://kr.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-summoner/" + urlenconde(id) + "?api_key=" + apikey;
23 + request(champUrl,function(error,response,body){
24 + var info_champ_json = JSON.parse(body);
25 +
26 + var champ_id = new Array();
27 +
28 + var champions_length = Object.keys(info_champ_json).length;
29 + var staticUrl = "http://ddragon.leagueoflegends.com/cdn/10.23.1/data/ko_KR/champion.json";
30 + var title;
31 + var blub;
32 + var champ_stats=new Array();
33 + var champ_pic;
34 + var champ_kor;
35 + request(staticUrl,function(error,response,body){
36 + var info_static_champ_json = JSON.parse(body);
37 + var champion = info_static_champ_json["data"];
38 + for(js in champion){
39 + for(j in champion[js]){
40 + if(champion[js]["id"]==champ_name){
41 + title=champion[js]["title"];
42 + blub=champion[js]["blurb"];
43 + champ_kor=champion[js]["name"];
44 + champ_pic = "http://ddragon.leagueoflegends.com/cdn/10.23.1/img/champion/"+champ_name+".png";
45 + champ_stats[0]=champion[js]["stats"]["hp"];
46 + champ_stats[1]=champion[js]["stats"]["hpperlevel"];
47 + champ_stats[2]=champion[js]["stats"]["mp"];
48 + champ_stats[3]=champion[js]["stats"]["mpperlevel"];
49 + champ_stats[4]=champion[js]["stats"]["movespeed"];
50 + champ_stats[5]=champion[js]["stats"]["armor"];
51 + champ_stats[6]=champion[js]["stats"]["armorperlevel"];
52 + champ_stats[7]=champion[js]["stats"]["spellblock"];
53 + champ_stats[8]=champion[js]["stats"]["spellblockperlevel"];
54 + champ_stats[9]=champion[js]["stats"]["attackrange"];
55 + champ_stats[10]=champion[js]["stats"]["hpregen"];
56 + champ_stats[11]=champion[js]["stats"]["hpregenperlevel"];
57 + champ_stats[12]=champion[js]["stats"]["mpregen"];
58 + champ_stats[13]=champion[js]["stats"]["mpregenperlevel"];
59 + champ_stats[14]=champion[js]["stats"]["crit"];
60 + champ_stats[15]=champion[js]["stats"]["critperlevel"];
61 + champ_stats[16]=champion[js]["stats"]["attackdamage"];
62 + champ_stats[17]=champion[js]["stats"]["attackdamageperlevel"];
63 + champ_stats[18]=champion[js]["stats"]["attackspeedperlevel"];
64 + champ_stats[19]=champion[js]["stats"]["attackspeed"];
65 +
66 + }
67 + }
68 + }
19 69
70 + res.render('data',{
71 + c_blb:blub,
72 + c_title:title,
73 + c_stats:champ_stats,
74 + c_pic:champ_pic,
75 + c_name:champ_kor
76 + })
77 + })
78 + })
79 + })
20 app.get('/search/:username/', function(req, res, next){ 80 app.get('/search/:username/', function(req, res, next){
21 //롤 api url 81 //롤 api url
22 name = req.params.username; 82 name = req.params.username;
...@@ -34,22 +94,28 @@ var rotation_champ = new Array(); ...@@ -34,22 +94,28 @@ var rotation_champ = new Array();
34 94
35 var info_summoner_json = JSON.parse(body); 95 var info_summoner_json = JSON.parse(body);
36 96
37 - accountId = info_summoner_json["accountId"]; // GZC51rstNY47-cmgcap94mfLe7JNjF1fz3dGAdwS6pEo 97 + accountId = info_summoner_json["accountId"];
38 - id = info_summoner_json["id"]; // T6cI_Zn5LEqyPuhCZz1do0Y-IJztJX1I1mvcQZRt9YKygA 98 + id = info_summoner_json["id"];
39 - summoner = info_summoner_json["name"]; // 환하다 추야 99 + summoner = info_summoner_json["name"];
40 - profileIconId = info_summoner_json["profileIconId"]; // 980 100 + profileIconId = info_summoner_json["profileIconId"];
41 - summonerLevel = info_summoner_json["summonerLevel"]; // 250 101 + summonerLevel = info_summoner_json["summonerLevel"];
42 - revisionDate = info_summoner_json["revisionDate"]; // 1605519790000 102 + revisionDate = info_summoner_json["revisionDate"];
43 - 103 + var profileUrl="http://ddragon.leagueoflegends.com/cdn/10.23.1/img/profileicon/";
104 + request(profileUrl,function(error,response,body){
105 + var profileIcon;
106 + profileIcon="http://ddragon.leagueoflegends.com/cdn/10.23.1/img/profileicon/"+profileIconId+".png";
107 +
44 var champUrl = "https://kr.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-summoner/" + urlenconde(id) + "?api_key=" + apikey; 108 var champUrl = "https://kr.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-summoner/" + urlenconde(id) + "?api_key=" + apikey;
45 request(champUrl,function(error,response,body){ 109 request(champUrl,function(error,response,body){
46 var info_champ_json = JSON.parse(body); 110 var info_champ_json = JSON.parse(body);
47 var champ_point = new Array(); 111 var champ_point = new Array();
48 var champ_id = new Array(); 112 var champ_id = new Array();
49 var champ_name = new Array(); 113 var champ_name = new Array();
114 + var champ_korname=new Array();
50 var rotation_name = new Array(); 115 var rotation_name = new Array();
51 var champ_pic = new Array(); 116 var champ_pic = new Array();
52 var rotation_pic =new Array(); 117 var rotation_pic =new Array();
118 + var champ_level=new Array();//숙련도 레벨
53 var champions_length = Object.keys(info_champ_json).length; 119 var champions_length = Object.keys(info_champ_json).length;
54 120
55 //console.log("\n\ninfo_champ_json\n\n", info_champ_json); 121 //console.log("\n\ninfo_champ_json\n\n", info_champ_json);
...@@ -66,7 +132,7 @@ var rotation_champ = new Array(); ...@@ -66,7 +132,7 @@ var rotation_champ = new Array();
66 for(var i=0; i < champions_length; i++){ 132 for(var i=0; i < champions_length; i++){
67 champ_point[i] = (info_champ_json[i]["championPoints"]); 133 champ_point[i] = (info_champ_json[i]["championPoints"]);
68 champ_id[i] = info_champ_json[i]["championId"]; 134 champ_id[i] = info_champ_json[i]["championId"];
69 - 135 + champ_level[i]=info_champ_json[i]["championLevel"]
70 } 136 }
71 var rotationUrl = "https://kr.api.riotgames.com/lol/platform/v3/champion-rotations?api_key="+apikey; 137 var rotationUrl = "https://kr.api.riotgames.com/lol/platform/v3/champion-rotations?api_key="+apikey;
72 request(rotationUrl,function(error,response,body){ 138 request(rotationUrl,function(error,response,body){
...@@ -81,9 +147,9 @@ var rotation_champ = new Array(); ...@@ -81,9 +147,9 @@ var rotation_champ = new Array();
81 147
82 148
83 149
84 - 150 +
85 - 151 +
86 - var staticUrl = "http://ddragon.leagueoflegends.com/cdn/10.23.1/data/en_US/champion.json"; 152 + var staticUrl = "http://ddragon.leagueoflegends.com/cdn/10.23.1/data/ko_KR/champion.json";
87 request(staticUrl,function(error,response,body){ 153 request(staticUrl,function(error,response,body){
88 var info_static_champ_json = JSON.parse(body); 154 var info_static_champ_json = JSON.parse(body);
89 var champion = info_static_champ_json["data"]; 155 var champion = info_static_champ_json["data"];
...@@ -92,6 +158,7 @@ var rotation_champ = new Array(); ...@@ -92,6 +158,7 @@ var rotation_champ = new Array();
92 for(j in champion[js]){ 158 for(j in champion[js]){
93 if(champion[js]["key"] == champ_id[i]){ 159 if(champion[js]["key"] == champ_id[i]){
94 champ_name[i] = champion[js]["id"]; 160 champ_name[i] = champion[js]["id"];
161 + champ_korname[i]=champion[js]["name"];
95 champ_pic[i] = "http://ddragon.leagueoflegends.com/cdn/10.23.1/img/champion/"+champ_name[i]+".png"; 162 champ_pic[i] = "http://ddragon.leagueoflegends.com/cdn/10.23.1/img/champion/"+champ_name[i]+".png";
96 163
97 } 164 }
...@@ -180,17 +247,21 @@ var rotation_champ = new Array(); ...@@ -180,17 +247,21 @@ var rotation_champ = new Array();
180 var temp_name; 247 var temp_name;
181 var temp_point; 248 var temp_point;
182 var temp_pic; 249 var temp_pic;
250 + var temp_chamlev;
183 for(var i=0; i < champ_id.length-1; i++){//챔피언 포인트 순으로 sorting 251 for(var i=0; i < champ_id.length-1; i++){//챔피언 포인트 순으로 sorting
184 for(var j=i+1;j <champ_id.length-1; j++) 252 for(var j=i+1;j <champ_id.length-1; j++)
185 if(champ_point[i] < champ_point[j]){ 253 if(champ_point[i] < champ_point[j]){
254 + temp_chamlev=champ_level[i];
186 temp_id = champ_id[i]; 255 temp_id = champ_id[i];
187 temp_name = champ_name[i]; 256 temp_name = champ_name[i];
188 temp_point = champ_point[i]; 257 temp_point = champ_point[i];
189 temp_pic = champ_pic[i]; 258 temp_pic = champ_pic[i];
259 + champ_level[i]=champ_level[j];
190 champ_id[i] = champ_id[j] 260 champ_id[i] = champ_id[j]
191 champ_name[i] = champ_name[j]; 261 champ_name[i] = champ_name[j];
192 champ_point[i] = champ_point[j]; 262 champ_point[i] = champ_point[j];
193 champ_pic[i] = champ_pic[j]; 263 champ_pic[i] = champ_pic[j];
264 + champ_level[j]=champ_level[i];
194 champ_id[j] = temp_id 265 champ_id[j] = temp_id
195 champ_name[j] = temp_name; 266 champ_name[j] = temp_name;
196 champ_point[j] = temp_point; 267 champ_point[j] = temp_point;
...@@ -229,8 +300,12 @@ var rotation_champ = new Array(); ...@@ -229,8 +300,12 @@ var rotation_champ = new Array();
229 300
230 301
231 res.render('index', { title: req.params.username ,//데이터를 ejs로 넘길 때 사용 302 res.render('index', { title: req.params.username ,//데이터를 ejs로 넘길 때 사용
303 + c_lev: champ_level,
304 + c_summonerlev: summonerLevel,
305 + c_profile: profileIcon,
232 c_id: champ_id, 306 c_id: champ_id,
233 c_name: champ_name, 307 c_name: champ_name,
308 + c_korname: champ_korname,
234 c_point: champ_point, 309 c_point: champ_point,
235 c_pic: champ_pic, 310 c_pic: champ_pic,
236 c_rotation : rotation_pic, 311 c_rotation : rotation_pic,
...@@ -252,6 +327,7 @@ var rotation_champ = new Array(); ...@@ -252,6 +327,7 @@ var rotation_champ = new Array();
252 }); 327 });
253 }); 328 });
254 }); 329 });
330 +});
255 }); 331 });
256 }); 332 });
257 }; 333 };
......
1 +<!DOCTYPE html>
2 +<html>
3 + <head>
4 + <meta charset="utf-8">
5 +
6 + <link rel="icon" href = "FindMelogo.png">
7 + <link rel="stylesheet" href="css/style.css">
8 + <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
9 + <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css">
10 + <script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
11 + <style> @import url("http://fonts.googleapis.com/earlyaccess/nanumgothic.css");</style>
12 + <script>
13 +
14 + </script>
15 + </head>
16 + <body>
17 +
18 +
19 +
20 +
21 + <img src= <%=c_pic%> width=300, height=300>
22 + <font size=10em>
23 + <strong>
24 + <%= c_title +"\n"%>
25 + <%= c_name + "\n"%>
26 +
27 + </strong>
28 + </font>
29 +
30 +
31 + <font size=5em>
32 + <table border="5" bordercolor="blue">
33 + <tbody>
34 +
35 +
36 +
37 +
38 +
39 + <tr>
40 + <td> <%= "체력 : "+c_stats[0]+"+ lev*" + c_stats[1]%></td>
41 + <td> <%= "마력 : "+c_stats[2]+"+ lev*" + c_stats[3]%></td>
42 + </tr>
43 +
44 +
45 + <tr>
46 + <td> <%= "체력자연회복량 : "+c_stats[10]+"+ lev*" + c_stats[11]%></td>
47 + <td> <%= "마력자연회복량 : "+c_stats[12]+"+ lev*" + c_stats[13]%></td>
48 + </tr>
49 +
50 + <tr>
51 + <td> <%= "방어력 : "+c_stats[5]+"+ lev*" + c_stats[6]%></td>
52 + <td> <%= "마법방어력 : "+c_stats[7]+"+ lev*" + c_stats[8]%></td>
53 + </tr>
54 +
55 + <tr>
56 + <td> <%= "공격력 : "+c_stats[16]+"+ lev*" + c_stats[17]%></td>
57 + <td> <%= "공격속도 : "+c_stats[19]+"+ lev*" + c_stats[18]+"%"%></td>
58 + </tr>
59 +
60 + <tr>
61 + <td> <%= "이동속도 : "+c_stats[4]%></td>
62 +
63 + <td> <%= "사정거리 : "+c_stats[9]%></td>
64 + </tr>
65 +
66 +
67 + <tr><td> <%= "치명타 : "+c_stats[14]+"+ lev*" + c_stats[15]%></td>
68 + <td> </td>
69 + </tr>
70 +
71 +
72 + <br></br>
73 +
74 +
75 +
76 +
77 + </tbody>
78 + </table>
79 + <br></br>
80 + <p>
81 + <%= c_blb %>
82 + </p>
83 + </font>
84 +
85 +
86 +
87 +
88 +
89 +</body>
90 +</html>
...@@ -12,18 +12,19 @@ ...@@ -12,18 +12,19 @@
12 12
13 <script> 13 <script>
14 $(document).ready(function(){ 14 $(document).ready(function(){
15 - 15 +
16 16
17 $("button#searchButton").click(function(){ 17 $("button#searchButton").click(function(){
18 var name = $("input").val(); 18 var name = $("input").val();
19 location.href = "http://localhost:3000/search/" + name; 19 location.href = "http://localhost:3000/search/" + name;
20 }) 20 })
21 +
21 }); 22 });
22 </script> 23 </script>
23 </head> 24 </head>
24 <body> 25 <body>
25 26
26 - 27 +
27 <div class="imgOpacity"> 28 <div class="imgOpacity">
28 <div class="center"> 29 <div class="center">
29 <img src= "/FindMelogo.png" width = 150, height = 150/> 30 <img src= "/FindMelogo.png" width = 150, height = 150/>
...@@ -127,11 +128,21 @@ ...@@ -127,11 +128,21 @@
127 <% for (var i=0; i<6; i++){ %> 128 <% for (var i=0; i<6; i++){ %>
128 <div class="champImage"> 129 <div class="champImage">
129 <div class="center"> 130 <div class="center">
130 - <img src= <%=c_pic[i]%> width=50, height=50> 131 +
131 - <%= c_name[i] %> 132 + <input type="image" src=<%=c_pic[i]%> onClick="location.href='http://localhost:3000/data/'+ '<%=c_name[i]%>'">
132 - <%= "point: " + c_point[i] %> 133 +
134 +
135 + <B>
136 + <%= c_korname[i] %>
137 + </B>
138 + <%= "point: " + c_point[i]+ " \tchampion level: " + c_lev[i] %>
139 +
133 <% } %> 140 <% } %>
134 </div> 141 </div>
135 </div> 142 </div>
143 +
144 +
145 +</div>
146 +</font>
136 </body> 147 </body>
137 </html> 148 </html>
......
...@@ -11,16 +11,18 @@ ...@@ -11,16 +11,18 @@
11 <style> @import url("http://fonts.googleapis.com/earlyaccess/nanumgothic.css");</style> 11 <style> @import url("http://fonts.googleapis.com/earlyaccess/nanumgothic.css");</style>
12 <script> 12 <script>
13 $(document).ready(function(){ 13 $(document).ready(function(){
14 - 14 +
15 - 15 +
16 $("button#searchButton").click(function(){ 16 $("button#searchButton").click(function(){
17 var name = $("input").val(); 17 var name = $("input").val();
18 location.href = "http://localhost:3000/search/" + name; 18 location.href = "http://localhost:3000/search/" + name;
19 }) 19 })
20 +
20 }); 21 });
21 </script> 22 </script>
22 </head> 23 </head>
23 <body> 24 <body>
25 +
24 <div class="imgOpacity"> 26 <div class="imgOpacity">
25 <div class="center"> 27 <div class="center">
26 <img src= "FindMelogo.png" width = 300, height = 300/> 28 <img src= "FindMelogo.png" width = 300, height = 300/>
......