From a71d9f5c7e1ba7c2ed3c3d3b96c8ee398baadcda Mon Sep 17 00:00:00 2001 From: Isaac Abadi Date: Sun, 19 Sep 2021 14:44:02 -0400 Subject: [PATCH] Added tests for arg generation and laid some plumbing for better arg simulation in the UI --- backend/downloader.js | 6 +++--- backend/subscriptions.js | 3 ++- backend/test/tests.js | 14 ++++++++++++++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/backend/downloader.js b/backend/downloader.js index ec43b5d..16aaaa8 100644 --- a/backend/downloader.js +++ b/backend/downloader.js @@ -190,7 +190,7 @@ async function collectInfo(download_uid) { options.customFileFolderPath = user_path + path.sep; } - let args = await generateArgs(url, type, options, download['user_uid']); + let args = await exports.generateArgs(url, type, options, download['user_uid']); // get video info prior to download let info = await getVideoInfoByURL(url, args, download_uid); @@ -209,7 +209,7 @@ async function collectInfo(download_uid) { if (category && category['custom_output']) { options.customOutput = category['custom_output']; options.noRelativePath = true; - args = await generateArgs(url, type, options, download['user_uid']); + args = await exports.generateArgs(url, type, options, download['user_uid']); info = await getVideoInfoByURL(url, args, download_uid); } @@ -369,7 +369,7 @@ async function downloadQueuedFile(download_uid) { // helper functions -async function generateArgs(url, type, options, user_uid = null) { +exports.generateArgs = async (url, type, options, user_uid = null) => { const audioFolderPath = config_api.getConfigItem('ytdl_audio_folder_path'); const videoFolderPath = config_api.getConfigItem('ytdl_video_folder_path'); diff --git a/backend/subscriptions.js b/backend/subscriptions.js index 568d06e..90b6873 100644 --- a/backend/subscriptions.js +++ b/backend/subscriptions.js @@ -543,5 +543,6 @@ module.exports = { deleteSubscriptionFile : deleteSubscriptionFile, getVideosForSub : getVideosForSub, initialize : initialize, - updateSubscriptionPropertyMultiple : updateSubscriptionPropertyMultiple + updateSubscriptionPropertyMultiple : updateSubscriptionPropertyMultiple, + generateOptionsForSubscriptionDownload: generateOptionsForSubscriptionDownload } diff --git a/backend/test/tests.js b/backend/test/tests.js index 1824cff..99b79b2 100644 --- a/backend/test/tests.js +++ b/backend/test/tests.js @@ -293,6 +293,7 @@ describe('Downloader', function() { const downloader_api = require('../downloader'); downloader_api.initialize(db_api); const url = 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'; + const sub_id = 'dc834388-3454-41bf-a618-e11cb8c7de1c'; const options = { ui_uid: uuid(), user: 'admin' @@ -325,4 +326,17 @@ describe('Downloader', function() { it('Pause file', async function() { }); + + it('Generate args', async function() { + const args = await downloader_api.generateArgs(url, 'video', options); + console.log(args); + }); + + it('Generate args - subscription', async function() { + subscriptions_api.initialize(db_api, logger); + const sub = await subscriptions_api.getSubscription(sub_id); + const sub_options = subscriptions_api.generateOptionsForSubscriptionDownload(sub, 'admin'); + const args = await downloader_api.generateArgs(url, 'video', sub_options, 'admin'); + console.log(args); + }); });