mrfrys-node-server/src/standaloneUtils/manualSearch.js
2021-10-19 10:09:14 +02:00

93 lines
2.3 KiB
JavaScript

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)
}