양신희

app.js와 router 구현중

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": {
......
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