황성연

mytest.js 추가

1 var express = require('express'); 1 var express = require('express');
2 var app = express(); 2 var app = express();
3 -var router = require('./router/Test')(app); 3 +var router = require('./router/mytest')(app);
4 var bodyParser = require('body-parser'); 4 var bodyParser = require('body-parser');
5 5
6 app.set('views', __dirname + '/views'); 6 app.set('views', __dirname + '/views');
......
1 +module.exports = function(app){
2 +
3 + var request = require("request");
4 + var urlenconde = require('urlencode');
5 + var apikey = "RGAPI-b69c36b5-e5c6-4698-af93-4be17fc8a7e4"//api
6 +
7 + var profileIconId; //아이콘 번호
8 + var revisionDate; //수정날짜
9 + var id; //소환사ID
10 + var accountId; //계정Id
11 + var name; //소환사 이름
12 + var summonerLevel; //소환사
13 + var rotation_champ = new Array();
14 + var rotation_champ_newbie = new Array();
15 +
16 + app.get('/', function(req, res) {
17 + res.render('main', { title: 'R U TROLL?' });
18 + });
19 +
20 + app.get('/search/:username/', function(req, res, next){
21 + //롤 api url
22 + name = req.params.username;
23 + var nameUrl = "https://kr.api.riotgames.com/lol/summoner/v4/summoners/by-name/" + urlenconde(name)+"?api_key="+ apikey;
24 + request(nameUrl,function(error,response,body){
25 +
26 + // 요청에 대한 응답이 성공적으로 왔는지 검사.
27 + // status code가 200이 아니면 오류가 있었던 것으로 간주하고 함수 종료.
28 + console.log('response code ', response.statusCode);
29 + if (response.statusCode != 200) {
30 + console.log('Error with response code22 ', response.statusCode);
31 + res.end();
32 + return;
33 + }
34 +
35 + var info_summoner_json = JSON.parse(body);
36 +
37 + accountId = info_summoner_json["accountId"];
38 + id = info_summoner_json["id"];
39 + summoner = info_summoner_json["name"];
40 + profileIconId = info_summoner_json["profileIconId"];
41 + summonerLevel = info_summoner_json["summonerLevel"];
42 + revisionDate = info_summoner_json["revisionDate"];
43 + console.log(info_summoner_json);
44 +
45 + var champUrl = "https://kr.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-summoner/" + urlenconde(id) + "?api_key=" + apikey;
46 + request(champUrl,function(error,response,body){
47 + var info_champ_json = JSON.parse(body);
48 + var champ_point = new Array();
49 + var champ_id = new Array();
50 + var champ_name = new Array();
51 + var rotation_name = new Array();
52 + var rotation_name_newbie = new Array();
53 + var champ_pic = new Array();
54 + var rotation_pic =new Array();
55 + var rotation_pic_newbie = new Array();
56 + var champions_length = Object.keys(info_champ_json).length;
57 +
58 + // status code가 200이 아니면 종료.
59 + if (info_champ_json["status"] != undefined) {
60 + if (info_champ_json["status"]["status_code"] != 200) {
61 + console.log('Error with response code11 ', info_champ_json["status"]["status_code"]);
62 + res.end();
63 + return;
64 + }
65 + }
66 +
67 + for(var i=0; i < champions_length; i++){
68 + champ_point[i] = (info_champ_json[i]["championPoints"]);
69 + champ_id[i] = info_champ_json[i]["championId"];
70 +
71 + }
72 + var rotationUrl = "https://kr.api.riotgames.com/lol/platform/v3/champion-rotations?api_key="+apikey;
73 + request(rotationUrl,function(error,response,body){
74 + var info_rotation = JSON.parse(body);
75 + var keys = Object.keys(info_rotation);
76 + for(var k =0; k < info_rotation[keys[0]].length;k++)
77 + {
78 + rotation_champ[k] = info_rotation[keys[0]][k];
79 + console.log("rotation_champ:"+rotation_champ[k]);
80 + console.log("로테길이:"+rotation_champ.length);
81 + }
82 + for(var k =0; k < info_rotation[keys[1]].length;k++)
83 + {
84 + rotation_champ_newbie[k] = info_rotation[keys[1]][k];
85 + console.log("rotation_champ:"+rotation_champ_newbie[k]);
86 + console.log("로테길이:"+rotation_champ_newbie.length);
87 + }
88 +
89 +
90 +
91 +
92 +
93 + var staticUrl = "http://ddragon.leagueoflegends.com/cdn/10.11.1/data/en_US/champion.json";
94 + request(staticUrl,function(error,response,body) {
95 + var info_static_champ_json = JSON.parse(body);
96 + console.log(info_static_champ_json);
97 + var champion = info_static_champ_json["data"];
98 + for(var i=0; i < champ_id.length; i++){
99 + for(js in champion){
100 + for(j in champion[js]){
101 + if(champion[js]["key"] == champ_id[i]){
102 + champ_name[i] = champion[js]["id"];
103 + champ_pic[i] = "http://ddragon.leagueoflegends.com/cdn/10.11.1/img/champion/"+champ_name[i]+".png";
104 +
105 + }
106 + }
107 + }
108 + }
109 + for(var i=0; i < champ_id.length; i++){
110 + for(js in champion){
111 + for(j in champion[js]){
112 + if(champion[js]["key"] == rotation_champ[i]){
113 + rotation_name[i] = champion[js]["id"];
114 + rotation_pic[i] = "http://ddragon.leagueoflegends.com/cdn/10.11.1/img/champion/"+rotation_name[i]+".png";
115 + }
116 + if(champion[js]["key"] == rotation_champ_newbie[i]){
117 + rotation_name_newbie[i] = champion[js]["id"]
118 + rotation_pic_newbie[i] = "http://ddragon.leagueoflegends.com/cdn/10.11.1/img/champion/"+rotation_name_newbie[i]+".png";
119 + }
120 + }
121 + }
122 + }
123 + console.log(rotation_name);
124 +
125 + console.log("챔프길이:"+champ_pic.length);
126 +
127 + var userLeagueUrl = "https://kr.api.riotgames.com/lol/league/v4/entries/by-summoner/"+ urlenconde(id)+"?api_key=" + apikey;
128 + request(userLeagueUrl,function(error,response,body){
129 + var info_user_league_json = JSON.parse(body);
130 + //console.log("userLeagueUrl:", userLeagueUrl);
131 + if(info_user_league_json[0] != null){
132 + var leagueId = info_user_league_json[0]["leagueId"];
133 + var wins = info_user_league_json[0]["wins"];
134 + var losses = info_user_league_json[0]["losses"];
135 + var leagueName = info_user_league_json[0]["leagueName"]
136 + var tier = info_user_league_json[0]["tier"];
137 + var rank = info_user_league_json[0]["rank"];
138 + var leaguePoints = info_user_league_json[0]["leaguePoints"];
139 + var img_tier;
140 + if(tier == "MASTER"){
141 + img_tier = "https://i.imgur.com/nvQjonh.png";
142 + }else if(tier == "CHALLENGER"){
143 + img_tier = "https://i.imgur.com/sbK1Edj.png";
144 + }else if(tier == "DIAMOND"){
145 + img_tier = "https://i.imgur.com/5VBu8PF.png"
146 + }else if(tier == "PLATINUM"){
147 + img_tier = "https://i.imgur.com/Eqi6858.png"
148 + }else if(tier == "GRANDMASTER"){
149 + img_tier = "https://i.imgur.com/mcEhz1o.png"
150 + }else if(tier == "GOLD"){
151 + img_tier = "https://i.imgur.com/Ec4hPuO.png"
152 + }else if(tier == "SILVER"){
153 + img_tier = "https://i.imgur.com/GKnPu7s.png"
154 + }else if(tier == "BRONZE"){
155 + img_tier ="https://i.imgur.com/TPZVXIr.png"
156 + }else{
157 + img_tier = "https://i.imgur.com/kcdoC4r.png"
158 + }
159 + }
160 + champ_name[champ_name.length] = "total";
161 + var temp_id;
162 + var temp_name;
163 + var temp_point;
164 + var temp_pic;
165 + for(var i=0; i < champ_id.length-1; i++){
166 + for(var j=i+1;j <champ_id.length-1; j++)
167 + if(champ_point[i] > champ_point[j]){
168 + temp_id = champ_id[i];
169 + temp_name = champ_name[i];
170 + temp_point = champ_point[i];
171 + temp_pic = champ_pic[i];
172 + champ_id[i] = champ_id[j]
173 + champ_name[i] = champ_name[j];
174 + champ_point[i] = champ_point[j];
175 + champ_pic[i] = champ_pic[j];
176 + champ_id[j] = temp_id
177 + champ_name[j] = temp_name;
178 + champ_point[j] = temp_point;
179 + champ_pic[j] = temp_pic;
180 + }
181 + }
182 + const defaultMMR = [
183 + {"mmr" : 900, "tier" : "iron", "rank": 4},
184 + {"mmr" : 950, "tier" : "iron", "rank": 3},
185 + {"mmr" : 1000, "tier" : "iron", "rank": 2},
186 + {"mmr" : 1050, "tier" : "iron", "rank": 1},
187 + { "mmr" : 1100, "tier" : "bronze", "rank": 4 },
188 + { "mmr" : 1150, "tier" : "bronze", "rank": 3 },
189 + { "mmr" : 1200, "tier" : "bronze", "rank": 2 },
190 + { "mmr" : 1250, "tier" : "bronze", "rank": 1 },
191 + { "mmr" : 1300, "tier" : "silver", "rank": 4 },
192 + { "mmr" : 1350, "tier" : "silver", "rank": 3 },
193 + { "mmr" : 1400, "tier" : "silver", "rank": 2 },
194 + { "mmr" : 1450, "tier" : "silver", "rank": 1 },
195 + { "mmr" : 1500, "tier" : "gold", "rank": 4 },
196 + { "mmr" : 1550, "tier" : "gold", "rank": 3 },
197 + { "mmr" : 1600, "tier" : "gold", "rank": 2 },
198 + { "mmr" : 1650, "tier" : "gold", "rank": 1 },
199 + { "mmr" : 1700, "tier" : "platinum", "rank": 4 },
200 + { "mmr" : 1750, "tier" : "platinum", "rank": 3 },
201 + { "mmr" : 1800, "tier" : "platinum", "rank": 2 },
202 + { "mmr" : 1850, "tier" : "platinum", "rank": 1 },
203 + { "mmr" : 1900, "tier" : "diamond", "rank": 4 },
204 + { "mmr" : 1950, "tier" : "diamond", "rank": 3 },
205 + { "mmr" : 2000, "tier" : "diamond", "rank": 2 },
206 + { "mmr" : 2050, "tier" : "diamond", "rank": 1 },
207 + { "mmr" : 2100, "tier" : "master", "rank": 1 },
208 + { "mmr" : 2700, "tier" : "challenger", "rank": 1 },
209 + ]
210 +
211 +
212 + var spectatorUrl = "https://kr.api.riotgames.com/lol/spectator/v4/active-games/by-summoner/" + urlenconde(id) + "?api_key=" + apikey;
213 + request(spectatorUrl,function(error,response,body) {
214 + var spectator_json = JSON.parse(body);
215 + var flag = true;
216 + console.log(spectator_json);
217 + var spec_bannedChamp = spectator_json.bannedChampions;
218 + var spec_gameId = spectator_json.gameId;
219 + var spec_gameLength = spectator_json.gameLength;
220 + var spec_gameMode = spectator_json.gameMode;
221 + var spec_QueueId = spectator_json.gameQueueConfigId;
222 + var spec_mapId = spectator_json.mapId;
223 + var spec_participants = spectator_json.participants;
224 +
225 +
226 +
227 +
228 +
229 + res.render('index', { title: req.params.username ,
230 + c_id: champ_id,
231 + c_name: champ_name,
232 + c_point: champ_point,
233 + c_pic: champ_pic,
234 + c_rotation : rotation_pic,
235 + c_rotation_newbie : rotation_pic_newbie,
236 + c_summoner: summoner,
237 + c_wins: wins,
238 + c_losses: losses,
239 + c_tier: tier,
240 + c_imgtier: img_tier,
241 + c_rank: rank,
242 + c_leaguePoint: leaguePoints
243 + });
244 + });
245 + });
246 + });
247 + });
248 + });
249 + });
250 + });
251 + };
252 +
...\ No newline at end of file ...\ No newline at end of file