var $ = require("cheerio"); var request = require('request'); var agent = require("socks5-http-client/lib/Agent"); var fs = require('fs'); require('./config.js'); var ListHandler = function(CategoryID,StartPage,callback){ var ListData = {}; var PAGE = StartPage?StartPage:1; var CID = CategoryID?CategoryID:1; var total = 0; var ListTree = []; getlist(); function getlist(){ var url = ApiURL.list.replace('{CID}',CID).replace('{PAGE}',PAGE); var options = { url:url // agentClass:agent, // agentOption:{ // socksHost:'127.0.0.1', // socksPort:1080 // } }; request(options,function(error,response,body){ if(!error && body){ var oldData = JSON.parse(body); if(oldData.length>0){ for(var i in oldData){ var ListObj = oldData[i]; ListData[ListObj.id] = { id:ListObj.id, name:ListObj.name, total:ListObj.total_page }; ListTree.push(ListObj.id); total++; } console.log('PAGE [ '+PAGE+' ] DONE'); PAGE++; getlist(); }else{ PAGE--; ListData['total'] = total; ListData['tree'] = ListTree; saveTemp(); } }else{ console.log('List read error: ',CID,PAGE); } }); } function saveTemp(){ fs.writeFileSync('./temp/Category_'+CID+'.json',JSON.stringify(ListData),'UTF-8'); ListLib = ListData; console.log('Category '+CID+' with '+PAGE+' pages DONE!'); if(callback){ callback.call(this); } } }; module.exports = ListHandler;