item.js 7.66 KB
const express = require('express');
const app = express();
const logger = require('morgan');
const bodyParser = require('body-parser');
const apiRouter = express.Router();
const moment = require('moment');
require('moment-timezone');
const fs = require('fs');

const itemRawData = fs.readFileSync('Data/Json/items.json');
const itemData = JSON.parse(itemRawData);

exports.basicItemFunction = function(req,res){
    var responseBody = {};
    const itemName = req.body["action"]["params"]["basic_item_name"];
    moment.tz.setDefault(req.body["userRequest"]["timezone"]);
    console.log(moment().format('YYYY-MM-DD HH:mm:ss'));
    console.log(itemName);
    if (itemName == undefined){
        var itemList = "";
        for (var i = 0; i < itemData.length; ++i){
            if (itemData[i].type == "basic"){
                itemList += (itemData[i].name + '\n');
            }
        };
        responseBody = {
            "version": "2.0",
            "template": {
                "outputs": [
                    {
                        "simpleText": {
                            "text": "원하시는 아이템 이름을 입력하시면 해당 아이템에 대한 정보를 확인할 수 있습니다!\n\n현재 존재하는 완성 아이템 목록 :\n" + itemList
        
                        }
                    }
                ]
            }
        }
        res.status(200).send(responseBody);
    }

    else{
        var index = 0;
        for (index; index < itemData.length; ++index){
            if(itemData[index].name == itemName){
                break;
            }
          };
    
        itemPictureNum = "0" + itemData[index].id;
        

        console.log(itemData[index].effect);  


        var itemCombination = "";
        for (var i in itemData[index].combination){
            let left = itemData[index].combination[i].toString().substr(0,1);
            let right = itemData[index].combination[i].toString().substr(1,2);
            for (var j = 0; j < itemData.length; ++j){
                if (itemData[j].id == left){
                    itemCombination += (itemData[j].name + " + ");
                }
            }
            for (var j = 0; j < itemData.length; ++j){
                if (itemData[j].id == right){
                    itemCombination += (itemData[j].name + " = ");
                }
            }
            for (var j = 0; j < itemData.length; ++j){
                if (itemData[j].id == itemData[index].combination[i]){
                    itemCombination += (itemData[j].name + '\n');
                }
            }
        }
        
      responseBody = {
        "version": "2.0",
        "template": {
          "outputs": [
            {
              "basicCard": {
                "title": itemName,
                "description": "효과 : " + itemData[index].effect + '\n' + "조합가능한 아이템 : \n" + itemCombination,
                "thumbnail": {
                  "imageUrl": "http://tft-helper.tk:23023/static/items/" + itemPictureNum + ".png"
                },
                "buttons": [
                    {
                      "action":  "block",
                      "label": "아이템 목록으로 돌아가기",
                      "blockId": "5ee0d73f127dbe0001aa6647"
                    }
                ]   
              }
            }
          ]
        }
      }
      res.status(200).send(responseBody);
    }
}

exports.completedItemFunction = function(req,res){
    var responseBody = {};
    const itemName = req.body["action"]["params"]["completed_item_name"];
    console.log(itemName);
    if (itemName == undefined){
        var itemList = "";
        for (var i = 0; i < itemData.length; ++i){
            if (itemData[i].type == "completed"){
                itemList += (itemData[i].name + '\n');
            }
        };
        responseBody = {
            "version": "2.0",
            "template": {
                "outputs": [
                    {
                        "simpleText": {
                            "text": "원하시는 아이템 이름을 입력하시면 해당 아이템에 대한 정보를 확인할 수 있습니다!\n\n현재 존재하는 완성 아이템 목록 :\n" + itemList    
        
                        }
                    }
                ]
            }
        }
        res.status(200).send(responseBody);
    }
    else{
        var index = 0;
        for (index; index < itemData.length; ++index){
            if(itemData[index].name == itemName){
                break;
            }
          };
        const itemPictureNum = itemData[index].id;
        var itemCombination = (itemName + " = "); 
        let left = itemData[index].material[0];
        let right = itemData[index].material[1];

        for (var i = 0; i < itemData.length; ++i){
            if (itemData[i].id == left){
                itemCombination += (itemData[i].name + " + ");
            }
            if (itemData[i].id == right){
                itemCombination += (itemData[i].name);
            }
        }

        responseBody = {
            "version": "2.0",
            "template": {
              "outputs": [
                {
                  "basicCard": {
                    "title": itemName,
                    "description": "효과 : " + itemData[index].effect + '\n' + "조합식 : \n" + itemCombination,
                    "thumbnail": {
                      "imageUrl": "http://tft-helper.tk:23023/static/items/" + itemPictureNum + ".png"
                    },
                    "buttons": [
                        {
                          "action":  "block",
                          "label": "아이템 목록으로 돌아가기",
                          "blockId": "5ee0d73f127dbe0001aa6647"
                        }
                    ]   
                  }
                }
              ]
            }
          }
          res.status(200).send(responseBody);
    }
}

exports.consumableItemFunction = function(req,res){
    var responseBody = {};
    const itemName = req.body["action"]["params"]["consumable_item_name"];
    console.log(itemName);
    if (itemName == undefined){
        responseBody = {
            "version": "2.0",
            "template": {
                "outputs": [
                    {
                        "simpleText": {
                            "text": "원하시는 아이템 이름을 입력하시면 해당 아이템에 대한 정보를 확인할 수 있습니다!\n\n현재 존재하는 완성 아이템 목록 :\n니코의 도움"
        
                        }
                    }
                ]
            }
        }
        res.status(200).send(responseBody);
    }

    else{
        var index = 0;
        for (index; index < itemData.length; ++index){
            if(itemData[index].name == itemName){
                break;
            }
          };
        const itemPictureNum = itemData[index].id;

        responseBody = {
            "version": "2.0",
            "template": {
              "outputs": [
                {
                  "basicCard": {
                    "title": itemName,
                    "description": "효과 : " + itemData[index].effect,
                    "thumbnail": {
                      "imageUrl": "http://tft-helper.tk:23023/static/items/" + itemPictureNum + ".png"
                    },
                    "buttons": [
                        {
                          "action":  "block",
                          "label": "아이템 목록으로 돌아가기",
                          "blockId": "5ee0d73f127dbe0001aa6647"
                        }
                    ]   
                  }
                }
              ]
            }
          }
          res.status(200).send(responseBody);
    }
};