diff --git a/monsters-info/extract_CHT.js b/monsters-info/extract_CHT.js index dfd7a314..784a12cd 100644 --- a/monsters-info/extract_CHT.js +++ b/monsters-info/extract_CHT.js @@ -3,46 +3,57 @@ 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 = /

\s*?([\s\S]+)\s*?<\/h2>/igm.exec(htmlText); - try +fs.access(outJSON,function(err){ + var monArr; + if (err) + { + monArr = []; + }else + { + var monArr = JSON.parse(fs.readFileSync(outJSON, 'utf-8'));//读取繁体中文数据避免重复工作 + } + + //根据文件路径读取文件,返回文件列表 + fs.readdir(sourceFolder,function(err,files){ + if(err){ + console.warn(err); + }else{ + //遍历读取到的文件列表 + files.forEach(function(filename){ + var searchID = /^(\d+)\.html$/i.exec(filename); + if (searchID && !monArr.some(function(cn){return cn.id == searchID[1];})) { - var m = { - id:searchID[1], - name:searchName[1].replace("\n",""), - } - monArr.push(m); - if (monArr.length % 100 == 0) + var filepath = path.join(sourceFolder, filename);//合并当前文件的路径 + var htmlText = fs.readFileSync(filepath, 'utf-8'); //使用同步读取 + var searchName = /

\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("已读取 " + monArr.length + " 个网页"); + console.log(filename,e) } - }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 + " 个名称---"); - }) - } -}); \ No newline at end of file + }); + 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 + " 个名称---"); + }) + } + }); +}) +