Showing
4 changed files
with
122 additions
and
3 deletions
1 | var express = require('express'); | 1 | var express = require('express'); |
2 | var app = express(); | 2 | var app = express(); |
3 | -var router = require('./router/main')(app); | 3 | +var urlenconde = require('urlencode'); |
4 | +var router = require('./router/index')(app); | ||
4 | var bodyParser = require('body-parser'); | 5 | var bodyParser = require('body-parser'); |
5 | 6 | ||
6 | app.set('views', __dirname + '/views'); | 7 | app.set('views', __dirname + '/views'); | ... | ... |
1 | { | 1 | { |
2 | - "requires": true, | 2 | + "name": "Chess", |
3 | + "version": "1.0.0", | ||
3 | "lockfileVersion": 1, | 4 | "lockfileVersion": 1, |
5 | + "requires": true, | ||
4 | "dependencies": { | 6 | "dependencies": { |
5 | "accepts": { | 7 | "accepts": { |
6 | "version": "1.3.7", | 8 | "version": "1.3.7", |
... | @@ -503,6 +505,11 @@ | ... | @@ -503,6 +505,11 @@ |
503 | "verror": "1.10.0" | 505 | "verror": "1.10.0" |
504 | } | 506 | } |
505 | }, | 507 | }, |
508 | + "math": { | ||
509 | + "version": "0.0.3", | ||
510 | + "resolved": "https://registry.npmjs.org/math/-/math-0.0.3.tgz", | ||
511 | + "integrity": "sha1-hbAg/VTOELJqvqv81+H0vbxGRw8=" | ||
512 | + }, | ||
506 | "media-typer": { | 513 | "media-typer": { |
507 | "version": "0.3.0", | 514 | "version": "0.3.0", |
508 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", | 515 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", |
... | @@ -806,6 +813,14 @@ | ... | @@ -806,6 +813,14 @@ |
806 | "punycode": "^2.1.0" | 813 | "punycode": "^2.1.0" |
807 | } | 814 | } |
808 | }, | 815 | }, |
816 | + "urlencode": { | ||
817 | + "version": "1.1.0", | ||
818 | + "resolved": "https://registry.npmjs.org/urlencode/-/urlencode-1.1.0.tgz", | ||
819 | + "integrity": "sha1-HyuibwE8hfATP3o61v8nMK33y7c=", | ||
820 | + "requires": { | ||
821 | + "iconv-lite": "~0.4.11" | ||
822 | + } | ||
823 | + }, | ||
809 | "utils-merge": { | 824 | "utils-merge": { |
810 | "version": "1.0.1", | 825 | "version": "1.0.1", |
811 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", | 826 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", | ... | ... |
... | @@ -6,8 +6,10 @@ | ... | @@ -6,8 +6,10 @@ |
6 | "dependencies": { | 6 | "dependencies": { |
7 | "ejs": "^3.1.3", | 7 | "ejs": "^3.1.3", |
8 | "express": "^4.17.1", | 8 | "express": "^4.17.1", |
9 | + "math": "0.0.3", | ||
9 | "request": "^2.88.2", | 10 | "request": "^2.88.2", |
10 | - "router": "^1.3.5" | 11 | + "router": "^1.3.5", |
12 | + "urlencode": "^1.1.0" | ||
11 | }, | 13 | }, |
12 | "devDependencies": {}, | 14 | "devDependencies": {}, |
13 | "scripts": { | 15 | "scripts": { | ... | ... |
Chess/router/index.js
0 → 100644
1 | +module.exports = function(app) | ||
2 | +{ | ||
3 | + var request = require("request"); | ||
4 | + var urlenconde = require('urlencode'); | ||
5 | + var apikey = "RGAPI-6c3f9604-21ff-4f23-a1c1-ab0138773f16"; | ||
6 | + | ||
7 | + var id; //소환사ID | ||
8 | + var accountId; //계정ID | ||
9 | + var puuid; //특정ID | ||
10 | + var name; //소환사이름 | ||
11 | + var profileIconId; //소환사아이콘ID | ||
12 | + var summonerLevel; //소환사 레벨 | ||
13 | + var revisionDate; //수정날짜 | ||
14 | + var winning_rate; //승률 | ||
15 | + | ||
16 | + var leagueId; //리그ID | ||
17 | + var tier = ""; //티어 | ||
18 | + var rank = "Unranked"; //랭크 | ||
19 | + var wins = 0; //이긴 수 | ||
20 | + var losses = 0; //진 수 | ||
21 | + var leaguePoints = league_json['leaguePoints']; | ||
22 | + app.get('/', function(req,res) { | ||
23 | + res.render('main', {title: 'Chess'}); | ||
24 | + }); | ||
25 | + | ||
26 | + app.get('search/:username/', function(req,res,next){ | ||
27 | + name = req.params.username; | ||
28 | + var summonerUrl = "https://kr.api.riotgames.comGET /tft/summoner/v1/summoners/by-name/" + urlenconde(name) + '?api_key=' + apikey; | ||
29 | + request(summonerUrl,function(err,res,body){ | ||
30 | + console.log(res.statusCode); | ||
31 | + if(res.statusCode != 200) { | ||
32 | + console.log("Error ", res.statusCode); | ||
33 | + res.setEncoding(); | ||
34 | + return; | ||
35 | + } | ||
36 | + | ||
37 | + var summoner_json = JSON.parse(body); | ||
38 | + | ||
39 | + id = summoner_json['id']; | ||
40 | + accountId = summoner_json['accountId']; | ||
41 | + puuid = summoner_json['puuid']; | ||
42 | + name = summoner_json['name']; | ||
43 | + profileIconId = summoner_json['profileIconId']; | ||
44 | + summonerLevel = summoner_json['summonerLevel']; | ||
45 | + revisionDate = summoner_json['revisionDate']; | ||
46 | + | ||
47 | + var leagueUrl = "https://kr.api.riotgames.com/tft/league/v1/entries/by-summoner/" + urlenconde(id) + '?api_key=' + apikey; | ||
48 | + request(leagueUrl, function(err,res,body){ | ||
49 | + league_json = JSON.parse(body); | ||
50 | + leagueId = league_json[0]['leagueId']; | ||
51 | + tier = league_json[0]['tier']; | ||
52 | + rank = league_json[0]['rank']; | ||
53 | + wins = league_json[0]['wins']; | ||
54 | + losses = league_json[0]['losses']; | ||
55 | + leaguePoints = league_json[0]['leaguePoints']; | ||
56 | + winning_rate = Math.round((wins/(wins + losses)) *100); | ||
57 | + var img_tier; | ||
58 | + if(tier == "Challenger") { | ||
59 | + img_tier = './images/Emblem/Challenger_Emblem.png'; | ||
60 | + }else if(tier == "Grandmaster") { | ||
61 | + img_tier = './images/Emblem/Grandmaster_Emblem.png'; | ||
62 | + }else if(tier == "Master") { | ||
63 | + img_tier = './images/Emblem/Master_Emblem.png'; | ||
64 | + }else if(tier == "Diamond") { | ||
65 | + img_tier = './images/Emblem/Diamond_Emblem.png'; | ||
66 | + }else if(tier == "Platinum") { | ||
67 | + img_tier = './images/Emblem/Platinum_Emblem.png'; | ||
68 | + }else if(tier == "Glod") { | ||
69 | + img_tier = './images/Emblem/Glod_Emblem.png'; | ||
70 | + }else if(tier == "Silver") { | ||
71 | + img_tier = './images/Emblem/Silver_Emblem.png'; | ||
72 | + }else if(tier == "Bronze") { | ||
73 | + img_tier = './images/Emblem/Bronze_Emblem.png'; | ||
74 | + }else if(tier == "Iron") { | ||
75 | + img_tier = './images/Emblem/Iron_Emblem.png'; | ||
76 | + }else { | ||
77 | + img_tier = './images/Emblem/Unranked.png'; | ||
78 | + } | ||
79 | + | ||
80 | + var matchUrl = "https://asia.api.riotgames.com/tft/match/v1/matches/by-puuid/" + urlenconde(puuid) + "/ids?count="+(wins+losses)+"&api_key="+apikey; | ||
81 | + request(matchUrl, function(err,res,body){ | ||
82 | + var match_json = JSON.parse(body); | ||
83 | + | ||
84 | + var matchId = new Array(); | ||
85 | + var participants = new Array(); //참가자 | ||
86 | + var placement = new Array(); //참가자 순위 | ||
87 | + var time_eliminated = new Array(); //참가자 참여시간 | ||
88 | + var traits = new Array(new Array()); //시너지 | ||
89 | + var traits_num = new Array(new Array()); //시너지갯수 | ||
90 | + var units = new Array(new Array()); //챔피언 | ||
91 | + var units_tier = new Array(new Array()); //챔피언 레벨 | ||
92 | + var units_item = new Array(new Array()); //챔피언 아이템 | ||
93 | + | ||
94 | + }); | ||
95 | + | ||
96 | + }); | ||
97 | + | ||
98 | + }); | ||
99 | + | ||
100 | + }); | ||
101 | +} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment