{"version":3,"sources":["jsdelivr-header.js","/npm/listal@0.1.10/listal.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;ACJA,IAeI,MAfA,GAAK,QAAQ,MACb,KAAO,QAAQ,iBAAiB,KAChC,KAAO,QAAQ,QACf,IAAM,QAAQ,OACd,KAAO,QAAQ,YAChB,MAAM,iMACN,OAAO,CAAC,MACR,QAAQ,IAAK,UACb,MAAM,IAAK,aACX,MAAM,IAAK,OACX,KAIC,SAAW,KAAK,EAAE,MAAM,KAI1B,MADmC,IAAjC,SAAS,SAAS,OAAS,GACrB,SAAS,SAAS,OAAS,GAE3B,SAAS,SAAS,OAAS,GAErC,IAAI,YAAc,KAAK,EAAI,mBACvB,eAAiB,KAAK,EAAI,IAAM,MAEpC,QAAQ,IAAK,4BACb,QAAQ,IAAK,iBAAmB,KAAK,GACrC,QAAQ,IAAK,8BAAgC,eAAiB,MAG9D,IACE,MAAQ,GAAG,UAAU,KAAK,EAC5B,CACA,MAAO,GACL,GAAG,UAAU,KAAK,EACpB,CAEA,IACE,MAAQ,GAAG,UAAU,eACvB,CACA,MAAO,GACL,GAAG,UAAU,eACf,CAaA,IAXA,IAAI,iBAAmB,yDACpB,QAAQ,QAAQ,OAEf,eAAiB,6CAEjB,EAAI,EACJ,oBAAsB,EACtB,iBAAmB,EACnB,qBAAuB,EACvB,SAAW,GAEN,EAAI,EAAI,EAAI,oBAAsB,IAAQ,cAWnD,SAAS,cAEP,IAAI,EAAa,YAAY,QAAQ,QAAS,KAChC,KAAK,IAAI,EAAY,eAE3B,GAAG,SAAS,SAAS,GAC3B,QAAQ,IAAI,cAAgB,EAAE,QAChC,GAEF,CAEA,SAAS,cAAc,GAErB,QAAQ,IAAI,gBAAkB,EAAI,IAAI,MAEtC,EAAI,GAAG,QAAQ,SAAS,GAEtB,IADA,MAAQ,eAAe,KAAK,GACZ,MAAT,OACL,aAAa,iBAAiB,QAAQ,MAAM,MAAM,IAAK,MAAM,IAC7D,MAAQ,eAAe,KAAK,EAEhC,GACF,CAEA,SAAS,aAAa,EAAU,GAE9B,IAAI,EAAiB,KAAK,EAAI,IAAM,MAAQ,IAAM,EAAK,OAE3C,KADD,WAAa,EAAkB,IAAM,GACzB,SAAS,EAAK,EAAQ,GAC3C,GAAI,EAAK,MAAM,EACV,QAAQ,IAAI,EAAW,kBAAoB,KAChD,iBACsB,UAAY,GAAG,aACvC,GACF,CA3CA,aAAY,WACN,sBAAwB,mBAC1B,QAAQ,IAAI,iDAAmD,iBAAmB,0BAA4B,OAC9G,QAAQ,KAAK,IAEf,qBAAuB,gBACzB,GAAG","file":"/npm/listal@0.1.10/listal.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/listal@0.1.10/listal.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","#! /usr/bin/env node\n\nvar fs = require('fs');\nvar exec = require('child_process').exec\nvar http = require('http')\nvar url = require('url')\nvar argv = require('optimist')\n  .usage('Usage: listall.js -u url\\n\\nDo not append the pictures path in the end\\n\\OK: listal -u http://www.listal.com/movie/inception\\nNot OK: listal -u http://www.listal.com/movie/inception/pictures')\n  .demand(['u'])\n  .default('o', 'target')\n  .alias('o', 'outputDir')\n  .alias('u', 'url')\n  .argv\n\n\n// getId for url\nvar urlParts = argv.u.split('/')\n  , urlID\n\nif (urlParts[urlParts.length - 1] == \"\")\n  urlID = urlParts[urlParts.length - 2]\nelse\n  urlID = urlParts[urlParts.length - 1]\n\nvar urlTemplate = argv.u + \"/pictures//$page\"\n  , baseTargetPath = argv.o + '/' + urlID\n\nconsole.log (\"### Listal scanner ###\\n\")\nconsole.log (\"Using url\\t\\t:\" + argv.u)\nconsole.log (\"Dumping contents into \\t\\t:\" + baseTargetPath + \"\\n\")\n\n\ntry {\n  stats = fs.lstatSync(argv.o)\n}\ncatch (e) {\n  fs.mkdirSync(argv.o)\n}\n\ntry {\n  stats = fs.lstatSync(baseTargetPath)\n}\ncatch (e) {\n  fs.mkdirSync(baseTargetPath)\n}\n\nvar downloadTemplate = \"http://ilarge.listal.com/image/$id/10000full-$name.jpg\"\n  .replace('$name',urlID)\n\nvar picturePattern = /http:\\/\\/www.listal.com\\/viewimage\\/(\\d+)/g\n\nvar i = 1\n  , concurrentPageLimit = 2\n  , imagesDownloaded = 0\n  , lastImagesDownloaded = 0\n  , pageSize = 20\n\nfor (var j = 0 ; j < concurrentPageLimit ; j++ ) { getNextPage()}\n\nsetInterval(function() {\n  if (lastImagesDownloaded == imagesDownloaded) {\n    console.log(\"No images downloaded for 5 seconds, quitting. \" + imagesDownloaded + \" images downloaded for \" + urlID)\n    process.exit(0)\n  }\n  lastImagesDownloaded = imagesDownloaded\n}, 5000)\n\n\nfunction getNextPage() {\n\n  var currentURL = urlTemplate.replace('$page', i++)\n  var request = http.get(currentURL, processResult)\n\n  request.on('error', function(e) {\n    console.log(\"Got error: \" + e.message)\n  })\n\n}\n\nfunction processResult(res) {\n\n  console.log(\"Fetched page:\" + res.req.path)\n\n  res.on(\"data\", function(chunk) {\n    match = picturePattern.exec(chunk)\n    while (match != null) {\n      downloadFile(downloadTemplate.replace('$id',match[1]), match[1])\n      match = picturePattern.exec(chunk)\n    }\n  })\n}\n\nfunction downloadFile(file_url, id) {\n\n  var targetFileName = argv.o + '/' + urlID + '/' + id + '.jpg'\n  var curl = 'curl -o ' + targetFileName  + ' ' + file_url\n  var child = exec(curl, function(err, stdout, stderr) {\n    if (err) throw err\n    else console.log(file_url + ' downloaded to ' + targetFileName)\n    imagesDownloaded++\n    if(imagesDownloaded % pageSize == 0) getNextPage()\n  })\n}"]}