From 86acdec2f52e4134ed4e1fefb86a18b22dd89715 Mon Sep 17 00:00:00 2001 From: mrfry Date: Tue, 19 Oct 2021 10:09:14 +0200 Subject: [PATCH] Added manualSearch script --- src/standaloneUtils/manualSearch.js | 93 +++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 src/standaloneUtils/manualSearch.js diff --git a/src/standaloneUtils/manualSearch.js b/src/standaloneUtils/manualSearch.js new file mode 100644 index 0000000..a3b6aef --- /dev/null +++ b/src/standaloneUtils/manualSearch.js @@ -0,0 +1,93 @@ +const utils = require('../../dist/utils/utils.js').default // eslint-disable-line +const logger = require('../../dist/utils/logger.js').default // eslint-disable-line +const { doSearch } = require('../../dist/utils/classes.js') // eslint-disable-line +const { loadData } = require('../../dist/utils/actions.js') // eslint-disable-line +const fs = require('fs') // eslint-disable-line + +const minpercent = 95 +const logPath = './duplicateRemovingLog/' +const globalLog = './duplicateRemovingLog/log' +utils.CreatePath(logPath) +utils.WriteFile('', globalLog) + +const params = process.argv.splice(2) +const path = params[0] +const question = params[1] +const answer = params[2] + +// --------------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------------- + +console.time('SEARCH') +const searchRes = search({ + qdb: loadData(path), + subjName: 'Elektronika', + question: { + Q: question, + A: answer, + data: { + type: 'simple', + }, + }, + searchTillMatchPercent: 80, +}) +hr() +console.log('Search result') +hr() +showSearchResult(searchRes) +hr() +console.timeEnd('SEARCH') +log( + `Searched for question: "${C('green')}${question}${C()}" answer: "${C( + 'green' + )}${answer || ''}${C()}" in "${C('cyan')}${path}${C()}"` +) +hr() + +// --------------------------------------------------------------------------------- +// logging and tools +// --------------------------------------------------------------------------------- + +function showSearchResult(res) { + res.forEach((x) => { + console.log(`${C('green')}Q:${C()}`, x.q.Q) + console.log(`${C('green')}A:${C()}`, x.q.A) + console.log(`${C('green')}match:${C()}`, x.match) + console.log() + }) + console.log(`Result length: ${C('green')}${res.length}${C()}`) +} + +function search({ qdb, subjName, question, searchInAllIfNoResult }) { + return doSearch( + qdb, + subjName, + question, + null, + minpercent, + searchInAllIfNoResult + ) +} + +function hr() { + let res = '' + for (let i = 0; i < process.stdout.columns; i++) { + res += '=' + } + log(`${C('cyan')}${res}${C()}`) +} + +function log(text) { + utils.AppendToFile(text, globalLog) + if (process.stdout.isTTY) { + process.stdout.clearLine() + process.stdout.cursorTo(0) + } + + console.log(text) +} + +function C(color) { + return logger.C(color) +}