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