index.js 5.71 KB
module.exports = function(app){
var cheerio = require('cheerio');

var request = require("request");
var urlenconde = require('urlencode');
var api_key = "RGAPI-39fcab88-55d3-4769-8328-82b26537b9b4";


// //js 전송
// var express = require('express');
// app.use("/view", express.static(__dirname + '../lib/fullcalendar.css'));
// app.use("/view", express.static(__dirname + '../lib/fullcalendar.print.css'));
// app.use("/view", express.static(__dirname + '../lib/moment.min.js'));
// app.use("/view", express.static(__dirname + '../lib/jquery.min.js'));
// app.use("/view", express.static(__dirname + '../lib/fullcalendar.min.js'));



//정보
// $userid = $get_id[$username]['id']; // ID
// $nick = $get_id[$username]['name']; // 닉네임
// $level = $get_id[$username]['summonerLevel']; // 레벨
// $profileIcon = $get_id[$username]['profileIconId']; // 프로필아이콘번호
var userid;
var name;
var profileIconId;
var revisionDate;
var id;
var accountId;
var summonerLevel;
var formattedTime = new Array();;
var formattedTime2 = new Array();;
var color = new Array();

var print1 = new Array();;
var print2 = new Array();;

  app.get('/', function(req, res) {
  	  res.render('index', { title: '또 게임헤' });
  });

  app.get('/search/:username/', function(req, res){
    //롤 api url
    name = req.params.username;

      //입력받은 닉네임의 사용자 정보 요청 api
      var url ="https://kr.api.riotgames.com/lol/summoner/v3/summoners/by-name/"+urlenconde(name)+"?api_key="+ api_key ;

      request( url,function(error,response,body){
      var obj = JSON.parse(body);


      accountId = obj["accountId"];
      id = obj["id"];
      summoner = obj["name"];
      profileIconId = obj["profileIconId"];
      summonerLevel = obj["summonerLevel"];
      revisionDate = obj["revisionDate"];

     //  //최근 게임 정보 요청 api
     //  var currnetGame;
     //  currnetGameUrl = "https://kr.api.riotgames.com/lol/match/v3/matchlists/by-account/" +accountId +"?api_key="+ api_key ;
     //  //var date = new Date(1127919625*1000); //유닉스 시간으로 반환 반환
     //   var info_champ_json;
     //   var champions;
     //
     //  request(currnetGameUrl , function(error,response,body){
     //     info_champ_json = JSON.parse(body);
     //     champions = info_champ_json["matches"];
     //
     //     var champions_length = Object.keys(champions).length;
     //     for(var i=0; i < champions_length; i++){
     //       formattedTime[i] = champions[i]["timestamp"];
     //       t = new Date(formattedTime[i]);
     //      var month = t.getMonth();
     //      var day = t.getDay();
     //      formattedTime[i] = month + '-' + day ;
     //       // console.log(month );
     //   }
     // });

      var i = 0;

       var opgg = "http://www.op.gg/summoner/userName=" + name;
       request(opgg, function (err, res, html) {
            if (!err) {
                var $ = cheerio.load(html);

                $("div.TimeStamp").each(function (i) {
                  // do something
                  var data = $(this).text();
                  data = data.slice(0,10);
                  formattedTime[i] = data; i++;
                  //console.log(data );
                  //값 형식 //2017-11-29 23:56:23
                })

                $("div.GameLength").each(function (i) {
                  // do something
                  var data = $(this).text();
                  data = data.slice(0,2);
                  formattedTime2[i] = data;
                  //console.log( data );
                  //값 형식 //15m 15s

                })
            }
        });

        var c = 0;
        var k = 0;//중복 x
        print1[0] = formattedTime[0];
        print2[0] = formattedTime2[0];

        for(var p = 0; p<19;p++){
          if(formattedTime[p] == formattedTime[p+1]){
            k = 1;
            print1[c] = formattedTime[p+1];
            print2[c] = Number(print2[c]) + Number(formattedTime2[p+1]);
            // console.log(print1[c]);
            // console.log(print2[c]);

            //console.log(formattedTime2[p+1]);
          }else {
            c++;
            print2[c] = "";
            if(k != 0){
              print1[c] = formattedTime[p+1];
              print2[c] = Number(formattedTime2[p+1]);
              // console.log(print1[c]);
              // console.log(print2[c]);

            }
            k = 0;
          }
        }

        for ( var p = 0 ; p < print1.length ; p++) {
          print1[p] = "'" + print1[p] +  "'";

        }

          //검정 250분 이상
          //빨강 200분 미만
          //주황 150분미만
          //노랑 100분 미만
          //초록 40분 미만

        for ( var p = 0 ; p < print2.length ; p++) {

            if( Number(print2[p]) <= 40 && Number(print2[p]) > 0){
              color[p] = "A";}
            else if( Number(print2[p]) <= 100 && Number(print2[p]) > 40){
              color[p] = "B"; }
            else if( Number(print2[p]) <= 150 && Number(print2[p]) >  100){
              color[p] = "C";}
            else if( Number(print2[p]) <= 200 && Number(print2[p]) >  150){
              color[p] = "D";}
            else if( Number(print2[p]) <= 250 && Number(print2[p]) >  1000){
              color[p] = "E";}
            else{
              color[p] = "F"; }

          //console.log(color[p]);
        }



            res.render('index2', {  title: '또게임해?',
              name: req.params.username ,
              _id :id,
              _profileIconId : profileIconId,
              _summonerLevel : summonerLevel,//레벨

              _revisionDate : revisionDate,
              //_time : date// 최근 게임
              _day :print1,
              _time :print2,
              _color : color
              });

      });
    });

};