listhandler.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. var $ = require("cheerio");
  2. var request = require('request');
  3. var agent = require("socks5-http-client/lib/Agent");
  4. var fs = require('fs');
  5. require('./config.js');
  6. var ListHandler = function(CategoryID,StartPage,callback){
  7. var ListData = {};
  8. var PAGE = StartPage?StartPage:1;
  9. var CID = CategoryID?CategoryID:1;
  10. var total = 0;
  11. var ListTree = [];
  12. getlist();
  13. function getlist(){
  14. var url = ApiURL.list.replace('{CID}',CID).replace('{PAGE}',PAGE);
  15. var options = {
  16. url:url
  17. // agentClass:agent,
  18. // agentOption:{
  19. // socksHost:'127.0.0.1',
  20. // socksPort:1080
  21. // }
  22. };
  23. request(options,function(error,response,body){
  24. if(!error && body){
  25. var oldData = JSON.parse(body);
  26. if(oldData.length>0){
  27. for(var i in oldData){
  28. var ListObj = oldData[i];
  29. ListData[ListObj.id] = {
  30. id:ListObj.id,
  31. name:ListObj.name,
  32. total:ListObj.total_page
  33. };
  34. ListTree.push(ListObj.id);
  35. total++;
  36. }
  37. console.log('PAGE [ '+PAGE+' ] DONE');
  38. PAGE++;
  39. getlist();
  40. }else{
  41. PAGE--;
  42. ListData['total'] = total;
  43. ListData['tree'] = ListTree;
  44. saveTemp();
  45. }
  46. }else{
  47. console.log('List read error: ',CID,PAGE);
  48. }
  49. });
  50. }
  51. function saveTemp(){
  52. fs.writeFileSync('./temp/Category_'+CID+'.json',JSON.stringify(ListData),'UTF-8');
  53. ListLib = ListData;
  54. console.log('Category '+CID+' with '+PAGE+' pages DONE!');
  55. if(callback){
  56. callback.call(this);
  57. }
  58. }
  59. };
  60. module.exports = ListHandler;