Showing
3 changed files
with
59 additions
and
152 deletions
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/main')(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){ | 1 | +module.exports = function (app) { |
2 | 2 | ||
3 | -var request = require("request"); | 3 | + var request = require("request"); |
4 | -var urlenconde = require('urlencode'); | 4 | + var urlenconde = require('urlencode'); |
5 | -var apikey = "RGAPI-df870784-f399-4104-bfbb-1b209aeb597f"//api | 5 | + var apikey = "RGAPI-899abd44-2f7c-4e2d-981e-7cad9e50d1cb"//api |
6 | 6 | ||
7 | -var profileIconId; //아이콘 번호 | 7 | + app.get('/', function (req, res) { |
8 | -var revisionDate; //수정날짜 | ||
9 | -var id; //소환사ID | ||
10 | -var accountId; //계정Id | ||
11 | -var name; //소환사 이름 | ||
12 | -var summonerLevel; //소환사 레벨 | ||
13 | - | ||
14 | -var startIndex; | ||
15 | -var endIndex; | ||
16 | -var totalGames; | ||
17 | -var matches; //경기정보 | ||
18 | - | ||
19 | - app.get('/', function(req, res) { | ||
20 | res.render('main', { title: 'R U TROLL?' }); | 8 | res.render('main', { title: 'R U TROLL?' }); |
21 | }); | 9 | }); |
22 | 10 | ||
23 | - app.get('/search/:username/', function(req, res){ | 11 | + app.get('/search/:username/', function (req, res) { |
24 | //롤 api url | 12 | //롤 api url |
25 | - name = req.params.username; | 13 | + const summonerName = req.params.username; |
26 | - var nameUrl = "https://kr.api.riotgames.com/lol/summoner/v3/summoners/by-name/" + urlenconde(name)+"?api_key="+ apikey; | 14 | + var nameUrl = `https://kr.api.riotgames.com/tft/summoner/v1/summoners/by-name/${summonerName}?api_key=${apikey}` |
27 | - request(nameUrl,function(error,response,body){ | 15 | + request(nameUrl, function (error, response, body) { |
28 | - var info_summoner_json = JSON.parse(body); | ||
29 | - | ||
30 | - accountId = info_summoner_json["accountId"]; | ||
31 | - id = info_summoner_json["id"]; | ||
32 | - summoner = info_summoner_json["name"]; | ||
33 | - profileIconId = info_summoner_json["profileIconId"]; | ||
34 | - summonerLevel = info_summoner_json["summonerLevel"]; | ||
35 | - revisionDate = info_summoner_json["revisionDate"]; | ||
36 | - | ||
37 | - var rankedUrl = "https://kr.api.pvp.net/api/lol/kr/v2.5/league/by-summoner/"+ urlenconde(id)+ "?api_key=" + apikey; | ||
38 | - var champUrl = "https://kr.api.pvp.net/api/lol/kr/v1.3/stats/by-summoner/" + urlenconde(id) + "/ranked?api_key=" + apikey; | ||
39 | - request(champUrl,function(error,response,body){ | ||
40 | - var info_champ_json = JSON.parse(body); | ||
41 | - var champions = info_champ_json["champions"]; | ||
42 | - var champ_point = new Array(); | ||
43 | - var champ_id = new Array(); | ||
44 | - var champ_name = new Array(); | ||
45 | - var champ_pic = new Array(); | ||
46 | - var champions_length = Object.keys(champions).length; | ||
47 | - | ||
48 | - for(var i=0; i < champions_length; i++){ | ||
49 | - champ_point[i] = (champions[i]["stats"]["totalSessionsWon"]/champions[i]["stats"]["totalSessionsPlayed"]*200) | ||
50 | - + ((champions[i]["stats"]["totalAssists"]+champions[i]["stats"]["totalChampionKills"])/champions[i]["stats"]["totalDeathsPerSession"]*100) | ||
51 | - + (champions[i]["stats"]["totalSessionsPlayed"]*3); | ||
52 | - champ_id[i] = champions[i]["id"]; | ||
53 | - } | ||
54 | - | ||
55 | - var staticUrl = "https://global.api.pvp.net/api/lol/static-data/kr/v1.2/champion/?api_key=" + apikey; | ||
56 | - request(staticUrl,function(error,response,body){ | ||
57 | - var info_static_champ_json = JSON.parse(body); | ||
58 | - var champion = info_static_champ_json["data"]; | ||
59 | - for(var i=0; i < champ_id.length; i++){ | ||
60 | - for(js in champion){ | ||
61 | - for(j in champion[js]){ | ||
62 | - if(champion[js]["id"] == champ_id[i]){ | ||
63 | - champ_name[i] = champion[js]["key"]; | ||
64 | - champ_pic[i] = "https://opgg-static.akamaized.net/images/lol/champion/"+champ_name[i]+".png?image=c_scale,w_46"; | ||
65 | - } | ||
66 | - } | ||
67 | - } | ||
68 | - } | ||
69 | - champ_name[champ_name.length] = "total"; | ||
70 | - var temp_id; | ||
71 | - var temp_name; | ||
72 | - var temp_point; | ||
73 | - var temp_pic; | ||
74 | - for(var i=0; i < champ_id.length-1; i++){ | ||
75 | - for(var j=i+1;j <champ_id.length-1; j++) | ||
76 | - if(champ_point[i] > champ_point[j]){ | ||
77 | - temp_id = champ_id[i]; | ||
78 | - temp_name = champ_name[i]; | ||
79 | - temp_point = champ_point[i]; | ||
80 | - temp_pic = champ_pic[i]; | ||
81 | - champ_id[i] = champ_id[j] | ||
82 | - champ_name[i] = champ_name[j]; | ||
83 | - champ_point[i] = champ_point[j]; | ||
84 | - champ_pic[i] = champ_pic[j]; | ||
85 | - champ_id[j] = temp_id | ||
86 | - champ_name[j] = temp_name; | ||
87 | - champ_point[j] = temp_point; | ||
88 | - champ_pic[j] = temp_pic; | ||
89 | - } | ||
90 | - } | ||
91 | 16 | ||
92 | - res.render('index', { title: req.params.username , | 17 | + var info_summoner_json = JSON.parse(body); |
93 | - c_id: champ_id, | 18 | + console.log('summoner', body); |
94 | - c_name: champ_name, | 19 | + if (info_summoner_json.status?.status_code) { |
95 | - c_point: champ_point, | 20 | + return res.render('index', { |
96 | - c_pic: champ_pic, | 21 | + title: req.params.username, |
97 | - c_summoner: summoner | 22 | + error_message: info_summoner_json.status?.message |
98 | }); | 23 | }); |
24 | + } | ||
25 | + const summonerId = info_summoner_json["id"]; | ||
26 | + const summoner = info_summoner_json["name"]; | ||
27 | + const leagueUrl = `https://kr.api.riotgames.com/tft/league/v1/entries/by-summoner/${summonerId}?api_key=${apikey}`; | ||
28 | + request(leagueUrl, function (error, response, body) { | ||
29 | + const info_league_json = JSON.parse(body); | ||
30 | + console.log('league', body); | ||
31 | + res.render('index', { | ||
32 | + title: req.params.username, | ||
33 | + error_message: false, | ||
34 | + c_summoner: summoner, | ||
35 | + c_leagueList: info_league_json | ||
99 | }); | 36 | }); |
100 | }); | 37 | }); |
101 | }); | 38 | }); | ... | ... |
... | @@ -35,77 +35,47 @@ | ... | @@ -35,77 +35,47 @@ |
35 | </div> | 35 | </div> |
36 | </div> | 36 | </div> |
37 | 37 | ||
38 | - | ||
39 | - | ||
40 | - | ||
41 | <br></br> | 38 | <br></br> |
39 | + <% if (error_message) { %> | ||
40 | + <h2><%= error_message %></h2> | ||
41 | + <% } else { %> | ||
42 | <font size=10em> | 42 | <font size=10em> |
43 | <strong> | 43 | <strong> |
44 | <%= c_summoner + "\n"%> | 44 | <%= c_summoner + "\n"%> |
45 | </strong> | 45 | </strong> |
46 | </font> | 46 | </font> |
47 | - | 47 | + <table class="table"> |
48 | - <table class="basic"> | 48 | + <thead> |
49 | + <tr> | ||
50 | + <th>Tier</th> | ||
51 | + <th>Win</th> | ||
52 | + <th>Lose</th> | ||
53 | + <th>승률</th> | ||
54 | + <th>캐리력</th> | ||
55 | + </tr> | ||
56 | + </thead> | ||
57 | + <% if (c_leagueList.length>0) { %> | ||
49 | <tbody> | 58 | <tbody> |
50 | - <tr><td> <img src= <%=c_imgtier%> width=120, height=120></td></tr> | 59 | + <% |
51 | - <tr><td><%= "Tier : " + c_tier + " " + c_rank + " / " + c_leaguePoint + "점"%></td></tr> | 60 | + c_leagueList.forEach(function(league){ %> |
52 | - <tr><td><%= "Win : " + c_wins + " / Lose : " + c_losses%></td></tr> | 61 | + <tr> |
53 | - <tr><td><%= "승률 : " + ((c_wins/(c_wins+c_losses))*100).toFixed(2) + "%" %></td></tr> | 62 | + <td><%= league.tier + " " + league.rank + " / " + league.leaguePoints + "점"%></td> |
54 | - <tr><td><%= "캐리력 : " + (c_wins/c_losses*2).toFixed(2) %></td></tr> | 63 | + <td><%= league.wins %></td> |
64 | + <td><%= league.losses %></td> | ||
65 | + <td><%= ((league.wins/(league.wins+league.losses))*100).toFixed(2) + "%" %></td> | ||
66 | + <td><%= (league.wins/league.losses*2).toFixed(2) %></td> | ||
67 | + </tr> | ||
68 | + <% }); %> | ||
69 | + </tbody> | ||
70 | + <% } else { %> | ||
71 | + <tbody> | ||
72 | + <tr > | ||
73 | + <td colspan="5" style="text-align: center;">no league</td> | ||
74 | + </tr> | ||
55 | </tbody> | 75 | </tbody> |
56 | - </table> | ||
57 | - | ||
58 | - | ||
59 | - <br></br> | ||
60 | - | ||
61 | - <div class="center"> | ||
62 | - <strong> | ||
63 | - <%= "로테이션 챔피언: " %> | ||
64 | - </strong> | ||
65 | - <% for (var i=0; i<c_rotation.length-1; i++){ %> | ||
66 | - <img src= <%=c_rotation[i]%> width=50, height=50> | ||
67 | <% } %> | 76 | <% } %> |
68 | - </div> | 77 | + </table> |
69 | - | ||
70 | - <br></br> | ||
71 | - | ||
72 | - </div> | ||
73 | - <div class="center"> | ||
74 | - <strong> | ||
75 | - <%= "추측 MMR:" %> | ||
76 | - <%if (c_tier=="SILVER") {%> | ||
77 | - <%="1200~1500"%> | ||
78 | - <%}%> | ||
79 | - <%if (c_tier=="GOLD") {%> | ||
80 | - <%="1500~1800"%> | ||
81 | - <%}%> | ||
82 | - <%if (c_tier=="PLATINUM") {%> | ||
83 | - <%="1800~2100"%> | ||
84 | - <%}%> | ||
85 | - <%if (c_tier=="DIAMOND") {%> | ||
86 | - <%="2100~2400"%> | ||
87 | - <%}%> | ||
88 | - <%if (c_tier=="MASTER") {%> | ||
89 | - <%="2400~2600"%> | ||
90 | - <%}%> | ||
91 | - <%if (c_tier=="GRANDMASTER") {%> | ||
92 | - <%="2600~2800"%> | ||
93 | - <%}%> | ||
94 | - <%if (c_tier=="CHALLENGER") {%> | ||
95 | - <%=">3000"%> | ||
96 | - <%}%> | ||
97 | - </strong> | ||
98 | - </div> | ||
99 | - <% for (var i=0; i<c_id.length-1; i++){ %> | ||
100 | - <div class="champImage"> | ||
101 | - <div class="center"> | ||
102 | - <img src= <%=c_pic[i]%> width=50, height=50> | ||
103 | - <%= c_name[i] %> | ||
104 | - <%= "point: " + (1000000/c_point[i]).toFixed(2) %> | ||
105 | <% } %> | 78 | <% } %> |
106 | </div> | 79 | </div> |
107 | - | ||
108 | - | ||
109 | -</div> | ||
110 | </body> | 80 | </body> |
111 | </html> | 81 | </html> | ... | ... |
-
Please register or login to post a comment