From feee798ad8d5dc1e6ce04cabd13ae52166c98bf4 Mon Sep 17 00:00:00 2001 From: zefie Date: Thu, 31 Aug 2023 17:16:18 -0400 Subject: [PATCH] allow overriding success/fail url in diskmaps --- .../includes/ServiceVault/wtv-disk/sync.js | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-disk/sync.js b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-disk/sync.js index 2f4386cd..bc7878ba 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-disk/sync.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-disk/sync.js @@ -5,9 +5,10 @@ var wtvdl = new WTVDisk(minisrv_config, service_name); var force_update = (request_headers.query.force == "true") ? true : false; var no_delete = (request_headers.query.dont_delete_files == "true") ? true : false; +var content_dir = "content/" +var diskmap_dir = content_dir + "diskmaps/"; + if (request_headers['wtv-request-type'] == 'download') { - var content_dir = "content/" - var diskmap_dir = content_dir + "diskmaps/"; function generateDownloadList(diskmap_group_name, update_list, diskmap_group_data) { wtvdl.reset(); @@ -316,8 +317,21 @@ if (request_headers['wtv-request-type'] == 'download') { if (minisrv_config.config.debug_flags.debug) console.error(" # " + service_name + ":/sync error", "missing query arguments"); } } else if (request_headers.query.group && diskmap) { - var message = request_headers.query.message || "Retrieving files..."; - var main_message = request_headers.query.main_message || "Your receiver is downloading files."; - headers = "200 OK\nContent-Type: text/html\nwtv-expire-all: wtv-disk:"; - data = wtvdl.getSyncPage(message, request_headers.query.group, diskmap, main_message, message, force_update, no_delete); + var diskmap_json_file = null; + Object.keys(service_vaults).forEach(function (g) { + if (diskmap_json_file != null) return; + diskmap_json_file = service_vaults[g] + "/" + service_name + "/" + diskmap_dir + diskmap + ".json"; + if (!fs.existsSync(diskmap_json_file)) diskmap_json_file = null; + }); + var diskmap_data = JSON.parse(fs.readFileSync(diskmap_json_file).toString()); + if (!diskmap_data[request_headers.query.group]) { + throw ("Invalid diskmap data (group does not match)"); + } + diskmap_data = diskmap_data[request_headers.query.group]; + var message = request_headers.query.message || diskmap_data.message || "Retrieving files..."; + var main_message = request_headers.query.main_message || diskmap_data.main_message || "Your receiver is downloading files."; + var success_url = request_headers.query.success_url || diskmap_data.success_url || null; + var fail_url = request_headers.query.fail_url || diskmap_data.fail_url || null; + headers = "200 OK\nContent-Type: text/html\nwtv-expire-all: wtv-disk:\nwtv-noback-all: wtv-disk:"; + data = wtvdl.getSyncPage(message, request_headers.query.group, diskmap, main_message, message, force_update, no_delete, success_url, fail_url); } \ No newline at end of file