1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- var needle = require('needle');
- const fs = require('fs-extra')
- function stream_multiple(req, res, _urls, stream_dir, index = 0) {
- if (index == 0) {
- // initial state
- }
- let writeStream;
- const uri = _urls[index];
- if (index == undefined) {
- index = 0;
- stream_multiple(req, res, _urls, stream_dir, index);
- } else {
- writeStream = fs.createWriteStream(`${stream_dir}` + `${index}.jpeg`);
- writeStream.on("ready", () => console.log({ msg: `STREAM::WRITE::READY::${index}` }));
- writeStream.on("open", () => console.log({ msg: `STREAM::WRITE::OPEN::${index}` }));
- writeStream.on("finish", () => console.log({ msg: `STREAM::WRITE::DONE::${index}` }));
- writeStream.on('close', () => {
- if (index >= _urls.length - 1) {
- res.redirect('/');
- } else {
- stream_multiple(req, res, _urls, stream_dir, index + 1);
- }
- })
- needle
- .get(uri, function (error, response) {
- if (response.bytes >= 1) {
- // you want to kill our servers
- }
- if (!error && response.statusCode == 200) {
- // good
- } else {
- // then we can retry later
- }
- })
- .pipe(writeStream)
- .on('done', function () {
- // needle
- });
- }
- }
- module.exports = { stream_multiple }
|