diff --git a/monsters-info/ckey.json b/monsters-info/ckey.json index 34f3fde0..d2358520 100644 --- a/monsters-info/ckey.json +++ b/monsters-info/ckey.json @@ -1 +1 @@ -[{"code":"ja","ckey":{"card":"d446b5fec86071f60f2dab2603e25924","skill":"736a1e42905a7548a6a1810e20a2ffd7"}},{"code":"en","ckey":{"card":"2dd8f556c7fdef278cd8642632551caa","skill":"06d6b0d185fd62626a7e2d122a263c8d"}},{"code":"ko","ckey":{"card":"52a20a4065bf9fa8189e6106b677356d","skill":"3159dbdf10a8939d9c98f714464d5a85"}}] \ No newline at end of file +[{"code":"ja","ckey":{"card":"d446b5fec86071f60f2dab2603e25924","skill":"736a1e42905a7548a6a1810e20a2ffd7"},"updateTime":1584110808161},{"code":"en","ckey":{"card":"2dd8f556c7fdef278cd8642632551caa","skill":"06d6b0d185fd62626a7e2d122a263c8d"},"updateTime":1584110808161},{"code":"ko","ckey":{"card":"52a20a4065bf9fa8189e6106b677356d","skill":"3159dbdf10a8939d9c98f714464d5a85"},"updateTime":1584110808161}] \ No newline at end of file diff --git a/monsters-info/extractByNode.js b/monsters-info/extractByNode.js index b5fd561c..4780d4b7 100644 --- a/monsters-info/extractByNode.js +++ b/monsters-info/extractByNode.js @@ -2,21 +2,19 @@ const crypto = require('crypto'); const Card = require('./official-API/parseCard'); const Skill = require('./official-API/parseSkill'); +const runDate = new Date(); var officialAPI = [ //来源于官方API { code:"ja", - customName:["cht","chs"], - ckey:{card:null,skill:null} + customName:["cht","chs"] }, { code:"en", - customName:[], - ckey:{card:null,skill:null} + customName:[] }, { code:"ko", - customName:[], - ckey:{card:null,skill:null} + customName:[] } ]; @@ -37,8 +35,8 @@ function sameCard(m1,m2) /* * 正式流程 */ -officialAPI.forEach(function(lang){ - console.log("正在读取官方 " + lang.code + " 信息"); +officialAPI.forEach(function(lang) { + console.log("正在读取官方 %s 信息",lang.code); const cardJson = fs.readFileSync("official-API/" + lang.code +".json", 'utf-8'); //使用同步读取怪物 const cardJsonObj = JSON.parse(cardJson); const oCards = lang.cardOriginal = cardJsonObj.card;//将字符串转换为json对象 @@ -149,7 +147,7 @@ for (let li = 0;li < officialAPI.length; li++) } } -var ckeyObj = officialAPI.map(lang=>{ +var newCkeyObjs = officialAPI.map(lang=>{ const lcode = lang.code; const cardStr = JSON.stringify(lang.cards); const skillStr = JSON.stringify(lang.skills); @@ -180,12 +178,32 @@ var ckeyObj = officialAPI.map(lang=>{ card: cardHash.digest('hex'), skill: skillHash.digest('hex'), }, + updateTime: runDate.getTime(), }; return ckeyOutObj; }) -fs.writeFile('./ckey.json',JSON.stringify(ckeyObj),function(err){ - if(err){ - console.error(err); - } - console.log('ckey.json 导出成功'); -}); \ No newline at end of file +//读取旧的ckeyObj +var ckeyObjs; +fs.readFile('./ckey.json','utf-8',function(err,data){ + if(err) + { //如果读取错误,直接使用全新ckey + ckeyObjs = newCkeyObjs; + } else + { //如果读取正确,则读入JSON,并判断是否和旧有的一致 + ckeyObjs = JSON.parse(data); + ckeyObjs.forEach(ockey=>{ + const newCkey = newCkeyObjs.find(nckey=>nckey.code === ockey.code); + if (newCkey && (ockey.ckey.card != newCkey.ckey.card || ockey.ckey.skill != newCkey.ckey.skill)) + { + ockey = newCkey; + } + }) + } + fs.writeFile('./ckey.json',JSON.stringify(ckeyObjs),function(err){ + if(err){ + console.error(err); + } + console.log('ckey.json 导出成功'); + }); +}); +