rot1024
10/25/2016 - 8:09 AM

URL一括ダウンロード

URL一括ダウンロード

"use strict";

const fs = require("fs");
const url = require("url");
const request = require("request"); // dependency
const throat = require("throat"); // dependency

const list = fs.readFileSync("list.txt");

Promise.all(list.map(throat(5, uri => dl(uri).then(() => {
  console.log("DONE!  " + uri);
}, err => {
  console.log(err);
  console.log("ERROR! " + uri);
  throw err;
}))))
  .then(() => {
    console.log("done!");
  })
  .catch(err => {
    console.error(err);
  });

function dl(uri) {

  const filename = url.parse(uri).pathname.replace(/.*\//, "");

  return new Promise((resolve, reject) => {
    request(uri)
      .pipe(fs.createWriteStream("images/" + filename))
      .on("close", resolve)
      .on("error", reject);
  });

}