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;