From 0d5fd4791a0b81524e2f39f7bad2bf426fb25749 Mon Sep 17 00:00:00 2001 From: Stanislav Popov Date: Sat, 13 Mar 2021 12:44:04 +0500 Subject: [PATCH] feat(json): save scan options for rescan --- src/actions/saveAsJson.js | 9 ++++++++- src/index.js | 3 ++- src/scrap-site.js | 2 +- src/server.js | 1 + 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/actions/saveAsJson.js b/src/actions/saveAsJson.js index 6c5f230..6f7e997 100644 --- a/src/actions/saveAsJson.js +++ b/src/actions/saveAsJson.js @@ -7,7 +7,8 @@ const columns = require('../presets/columns'); const defaultField = 'url'; // return json object -module.exports = async (csvPath, jsonPath, lang, preset, defaultFilter) => { +// TODO: too much arguments +module.exports = async (csvPath, jsonPath, lang, preset, defaultFilter, url, args) => { // read csv to workbook const data = {}; @@ -35,6 +36,12 @@ module.exports = async (csvPath, jsonPath, lang, preset, defaultFilter) => { // columns data.columns = buildColumns(columns, preset); + data.scan = { + url: url, + args: args, + version: require('../../package.json').version, + } + // write const raw = JSON.stringify(data); fs.writeFileSync(jsonPath, raw); diff --git a/src/index.js b/src/index.js index cb25d3d..2d30757 100644 --- a/src/index.js +++ b/src/index.js @@ -32,7 +32,7 @@ async function start() { } if (program.json) { - await saveAsJson(csvPath, jsonPath, program.lang, program.preset); + await saveAsJson(csvPath, jsonPath, program.lang, program.preset, false, program.urls[0], args); if (program.upload) webPath = await uploadJson(jsonPath); @@ -52,6 +52,7 @@ async function start() { } const opts = program.getOptions(); + opts.args = process.argv.slice(2); program.outBrief(opts); const sites = program.urls; diff --git a/src/scrap-site.js b/src/scrap-site.js index c559e3c..a359946 100644 --- a/src/scrap-site.js +++ b/src/scrap-site.js @@ -591,7 +591,7 @@ module.exports = async (baseUrl, options = {}) => { } if (options.json) { - await saveAsJson(csvPath, jsonPath, options.lang, options.preset, options.defaultFilter); + await saveAsJson(csvPath, jsonPath, options.lang, options.preset, options.defaultFilter, baseUrl, options.args); if (!options.removeJson) console.log('Saved to ' + jsonPath); // user plugins diff --git a/src/server.js b/src/server.js index 4aa5143..e3fc97a 100644 --- a/src/server.js +++ b/src/server.js @@ -108,6 +108,7 @@ async function onScan(url, args, socket) { await program.postParse(); const opts = program.getOptions(); + opts.args = args; opts.webService = true; opts.consoleValidate = false; // not needed opts.socket = socket;