allow overriding success/fail url in diskmaps

This commit is contained in:
zefie
2023-08-31 17:16:18 -04:00
parent 477ad25cd1
commit feee798ad8

View File

@@ -5,10 +5,11 @@ var wtvdl = new WTVDisk(minisrv_config, service_name);
var force_update = (request_headers.query.force == "true") ? true : false; var force_update = (request_headers.query.force == "true") ? true : false;
var no_delete = (request_headers.query.dont_delete_files == "true") ? true : false; var no_delete = (request_headers.query.dont_delete_files == "true") ? true : false;
if (request_headers['wtv-request-type'] == 'download') {
var content_dir = "content/" var content_dir = "content/"
var diskmap_dir = content_dir + "diskmaps/"; var diskmap_dir = content_dir + "diskmaps/";
if (request_headers['wtv-request-type'] == 'download') {
function generateDownloadList(diskmap_group_name, update_list, diskmap_group_data) { function generateDownloadList(diskmap_group_name, update_list, diskmap_group_data) {
wtvdl.reset(); wtvdl.reset();
var files_to_send = 0; var files_to_send = 0;
@@ -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"); if (minisrv_config.config.debug_flags.debug) console.error(" # " + service_name + ":/sync error", "missing query arguments");
} }
} else if (request_headers.query.group && diskmap) { } else if (request_headers.query.group && diskmap) {
var message = request_headers.query.message || "Retrieving files..."; var diskmap_json_file = null;
var main_message = request_headers.query.main_message || "Your receiver is downloading files."; Object.keys(service_vaults).forEach(function (g) {
headers = "200 OK\nContent-Type: text/html\nwtv-expire-all: wtv-disk:"; if (diskmap_json_file != null) return;
data = wtvdl.getSyncPage(message, request_headers.query.group, diskmap, main_message, message, force_update, no_delete); 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);
} }