Browse Source

修改怪物信息内文件位置

tags/v1.0
枫谷剑仙 7 years ago
parent
commit
bbb7960d51
5 changed files with 86 additions and 39 deletions
  1. +2
    -1
      .gitignore
  2. +29
    -38
      monsters-info/extractByNode.js
  3. +48
    -0
      monsters-info/extract_CHT.js
  4. +0
    -0
      monsters-info/official-API/test.html
  5. +7
    -0
      monsters-info/提取中文数据.bat

+ 2
- 1
.gitignore View File

@@ -1 +1,2 @@
monsters-info/Download-pad.skyozora.com
/monsters-info/Download-pad.skyozora.com
/monsters-info/opencc

+ 29
- 38
monsters-info/extractByNode.js View File

@@ -1,40 +1,31 @@
var fs = require('fs');
var officialAPI = ["ja","en","ko"]; //来源于官方API
var custom = ["cht","chs"]; //来源于自定义文件
console.log('正在读取日文怪物信息');
var ja_json = fs.readFileSync("./ja.json", 'utf-8'); //使用同步读取
var ja = JSON.parse(ja_json);//将字符串转换为json对象
var msja = ja.card;
console.log('正在读取英文怪物信息');
var en_json = fs.readFileSync("./en.json", 'utf-8'); //使用同步读取
var en = JSON.parse(en_json);//将字符串转换为json对象
var msen = en.card;
console.log('正在读取韩文怪物信息');
var ko_json = fs.readFileSync("./ko.json", 'utf-8'); //使用同步读取
var ko = JSON.parse(ko_json);//将字符串转换为json对象
var msko = ko.card;
var mArr = [];
var cards = officialAPI.map(function(code){
console.log("正在读取官方 " + code + " 信息");
var json = fs.readFileSync("official-API/" + code +".json", 'utf-8'); //使用同步读取
var card = JSON.parse(json).card;//将字符串转换为json对象
return card;
})
for (var mi=0;mi<msja.length;mi++)
var mainCard = cards[0]; //数据的主要card
var mArr = []; //储存输出内容
for (var mi=0;mi<mainCard.length;mi++)
{
var m = msja[mi],m2 = msen[mi],m3 = msko[mi];
var m = mainCard[mi];
if (m[0] != mi) //id超了,都是些怪物了
{
break;
}else
{
if (m2[0] != m[0]){m2 = null;} //ID不一致时则没有内容
if (m3[0] != m[0]){m3 = null;} //ID不一致时则没有内容
//名字
var nameObj = {
ja:m[1],
//en:((m2 && !/^\*+/.test(m2[1]))?m2[1]:""), //没有数据,或者名字是星号都为空
//ko:((m3 && !/^\*+/.test(m3[1]))?m3[1]:""),
}
if (m2 && !/^\*+/.test(m2[1]))
nameObj["en"] = m2[1];
if (m3 && !/^\*+/.test(m3[1]))
nameObj["ko"] = m3[1];
var nameObj = {};
officialAPI.forEach(function(code,idx){
var _m = cards[idx][mi];
if (_m && !/^\*+/.test(_m[1])) //没有数据,或者名字是星号,则为空
nameObj[code] = _m[1];
})
//类型
var type = [m[5]];
@@ -65,18 +56,18 @@ for (var mi=0;mi<msja.length;mi++)
}
}
var cards_c = custom.map(function(code){
console.log("正在读取自定义 " + code + " 信息");
var json = fs.readFileSync("custom/" + code +".json", 'utf-8'); //使用同步读取
var card = JSON.parse(json);//将字符串转换为json对象
return card;
})
console.log('正在读取繁体中文怪物信息');
var CHTtext = fs.readFileSync("CHT.json", 'utf-8'); //使用同步读取
console.log('正在读取简体中文怪物信息');
var CHStext = fs.readFileSync("CHS.json", 'utf-8'); //使用同步读取
var CHT = JSON.parse(CHTtext);//将字符串转换为json对象
var CHS = JSON.parse(CHStext);//将字符串转换为json对象
CHT.forEach(function(cm,idx){
var m = mArr[cm.id];
m.name["cht"] = cm.name;
m.name["chs"] = CHS[idx].name;
cards_c.forEach(function(card,cidx){ //每个文件循环
card.forEach(function(cm,idx){ //每个文件内的名字循环
var m = mArr[cm.id];
m.name[custom[cidx]] = cm.name;
});
});
var str = JSON.stringify(mArr);


+ 48
- 0
monsters-info/extract_CHT.js View File

@@ -0,0 +1,48 @@
var fs = require('fs');
var sourceFolder = "Download-pad.skyozora.com/pad.skyozora.com";
var outJSON = "custom/CHT.json";
var path = require('path');//解析需要遍历的文件夹
//根据文件路径读取文件,返回文件列表
fs.readdir(sourceFolder,function(err,files){
if(err){
console.warn(err);
}else{
//遍历读取到的文件列表
var monArr = [];
files.forEach(function(filename){
var searchID = /^(\d+)\.html$/i.exec(filename);
if (searchID)
{
var filepath = path.join(sourceFolder, filename);//合并当前文件的路径
var htmlText = fs.readFileSync(filepath, 'utf-8'); //使用同步读取
var searchName = /<h2 .+>\s*?([\s\S]+)\s*?<\/h2>/igm.exec(htmlText);
try
{
var m = {
id:searchID[1],
name:searchName[1].replace("\n",""),
}
monArr.push(m);
if (monArr.length % 100 == 0)
{
console.log("已读取 " + monArr.length + " 个网页");
}
}catch(e)
{
console.log(filename,e)
}
}
});
monArr.sort(function(a,b){
return a.id - b.id;
})
var str = JSON.stringify(monArr);
fs.writeFile(outJSON,str,function(err){
if(err){
console.error(err);
}
console.log("---繁体中文导出成功,共 " + monArr.length + " 个名称---");
})
}
});

monsters-info/test.html → monsters-info/official-API/test.html View File


+ 7
- 0
monsters-info/提取中文数据.bat View File

@@ -0,0 +1,7 @@
@echo off
echo 开始提取网页数据
node.exe extract_CHT.js
echo 正在将繁体中文转换为简体中文
opencc\opencc.exe -i custom\CHT.json -o custom\CHS.json -c opencc\t2s.json
echo 转换完成
pause

Loading…
Cancel
Save