From 8107e3f49ef959061d7fe0e04ef2f6eda01df354 Mon Sep 17 00:00:00 2001 From: liam4 Date: Wed, 21 Jun 2017 19:04:48 +0000 Subject: Ugh!! --- src/downloaders.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src/downloaders.js') diff --git a/src/downloaders.js b/src/downloaders.js index fa1f337..2b193eb 100644 --- a/src/downloaders.js +++ b/src/downloaders.js @@ -1,3 +1,5 @@ +'use strict' + const fs = require('fs') const fetch = require('node-fetch') const promisifyProcess = require('./promisify-process') @@ -47,8 +49,26 @@ function makeLocalDownloader() { } } +function makePowerfulDownloader(downloader, maxAttempts = 5) { + // This should totally be named better.. + + return async function recursive(arg, attempts = 0) { + try { + return await downloader(arg) + } catch(err) { + if (attempts < maxAttempts) { + console.warn('Failed - attempting again:', arg) + return await recursive(arg, attempts + 1) + } else { + throw err + } + } + } +} + module.exports = { makeHTTPDownloader, makeYouTubeDownloader, - makeLocalDownloader + makeLocalDownloader, + makePowerfulDownloader } -- cgit 1.3.0-6-gf8a5 From 84a48215f19d271cfce88439a1300817f0666e85 Mon Sep 17 00:00:00 2001 From: liam4 Date: Wed, 21 Jun 2017 17:10:26 -0300 Subject: Various updates.. maybe finished?? --- src/downloaders.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/downloaders.js') diff --git a/src/downloaders.js b/src/downloaders.js index 2b193eb..8fa830c 100644 --- a/src/downloaders.js +++ b/src/downloaders.js @@ -70,5 +70,17 @@ module.exports = { makeHTTPDownloader, makeYouTubeDownloader, makeLocalDownloader, - makePowerfulDownloader + makePowerfulDownloader, + + getDownloader: downloaderType => { + if (downloaderType === 'http') { + return makeHTTPDownloader() + } else if (downloaderType === 'youtube') { + return makeYouTubeDownloader() + } else if (downloaderType === 'local') { + return makeLocalDownloader() + } else { + return null + } + } } -- cgit 1.3.0-6-gf8a5