mirror of
https://gitlab.com/MrFry/mrfrys-node-server
synced 2025-04-01 20:24:18 +02:00
Added clear questions api
This commit is contained in:
parent
a8d4a35eb8
commit
f651536354
2 changed files with 83 additions and 3 deletions
|
@ -1,4 +1,5 @@
|
|||
import fs from 'fs'
|
||||
import { fork } from 'child_process'
|
||||
|
||||
import logger from '../../../utils/logger'
|
||||
import utils from '../../../utils/utils'
|
||||
|
@ -600,7 +601,7 @@ function setup(data: SubmoduleData): any {
|
|||
|
||||
if (!req.body.questions) {
|
||||
res.json({
|
||||
message: `ask something! { question:'' ,subject:'', location:'' }`,
|
||||
message: `ask something! { questions:'' ,subject:'', location:'' }`,
|
||||
result: [],
|
||||
recievedData: JSON.stringify(req.body),
|
||||
success: false,
|
||||
|
@ -1006,6 +1007,57 @@ function setup(data: SubmoduleData): any {
|
|||
})
|
||||
})
|
||||
|
||||
let questionCleaner = null
|
||||
app.get('/clearQuestions', (req: Request, res) => {
|
||||
// TODO: dont allow multiple instances
|
||||
// TODO: get status of it cleaning
|
||||
logger.LogReq(req)
|
||||
const user: User = req.session.user
|
||||
const status: any = req.query.status
|
||||
|
||||
if (status) {
|
||||
if (!questionCleaner) {
|
||||
res.json({
|
||||
msg: 'question cleaner not running',
|
||||
success: false,
|
||||
})
|
||||
return
|
||||
}
|
||||
questionCleaner.once('message', function (response) {
|
||||
res.json({
|
||||
msg: response,
|
||||
success: true,
|
||||
})
|
||||
})
|
||||
|
||||
questionCleaner.send({ data: 'asd' })
|
||||
return
|
||||
}
|
||||
|
||||
if (questionCleaner) {
|
||||
res.json({
|
||||
msg: 'question cleaner already running',
|
||||
success: false,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
questionCleaner = fork(
|
||||
`${process.cwd()}/src/standaloneUtils/rmDuplicates.js`,
|
||||
['-s', `${process.cwd()}/${questionDbs[0].path}`]
|
||||
)
|
||||
questionCleaner.on('exit', function (code) {
|
||||
console.log('EXIT', code)
|
||||
questionCleaner = null
|
||||
})
|
||||
|
||||
res.json({
|
||||
user: user,
|
||||
success: true,
|
||||
msg: 'OK',
|
||||
})
|
||||
})
|
||||
|
||||
return {
|
||||
dailyAction: () => {
|
||||
backupData(questionDbs)
|
||||
|
|
|
@ -41,7 +41,30 @@ const globalLog = './duplicateRemovingLog/log'
|
|||
utils.CreatePath(logPath)
|
||||
utils.WriteFile('', globalLog)
|
||||
|
||||
const params = process.argv.splice(2)
|
||||
// ----------------------------------------------
|
||||
let currentMaxIndex = -1
|
||||
let currentIndex = -1
|
||||
process.on('message', function () {
|
||||
process.send({
|
||||
currentMaxIndex: currentMaxIndex,
|
||||
currentIndex: currentIndex,
|
||||
})
|
||||
})
|
||||
// ----------------------------------------------
|
||||
|
||||
let params = process.argv.splice(2)
|
||||
let silenced = false
|
||||
if (params.includes('-s')) {
|
||||
silenced = true
|
||||
}
|
||||
params = params.filter((x) => {
|
||||
return !x.startsWith('-')
|
||||
})
|
||||
console.log(params)
|
||||
if (params.length === 0) {
|
||||
console.log('At least 1 parameter required (path to DB)')
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
const pathA = params[0]
|
||||
const pathB = params[1]
|
||||
|
@ -268,6 +291,7 @@ function difference({ dbA, dbB }) {
|
|||
iterateSubjects(dbA, () => {
|
||||
dbLength++
|
||||
})
|
||||
currentMaxIndex = dbLength
|
||||
|
||||
const getResultDbLength = () => {
|
||||
let resultDbLength = 0
|
||||
|
@ -303,6 +327,7 @@ function difference({ dbA, dbB }) {
|
|||
|
||||
printProgressBar(processedQuestions, dbLength)
|
||||
processedQuestions++
|
||||
currentIndex = processedQuestions
|
||||
|
||||
const res = hasRequiredPercent(searchRes, minpercent)
|
||||
|
||||
|
@ -408,6 +433,7 @@ function hr() {
|
|||
|
||||
function log(text) {
|
||||
utils.AppendToFile(text, globalLog)
|
||||
if (silenced) return
|
||||
if (process.stdout.isTTY) {
|
||||
process.stdout.clearLine()
|
||||
process.stdout.cursorTo(0)
|
||||
|
@ -431,7 +457,7 @@ function writeInSameLine(text, returnToLineStart) {
|
|||
}
|
||||
|
||||
function printProgressBar(current, total) {
|
||||
if (!process.stdout.isTTY) {
|
||||
if (!process.stdout.isTTY || silenced) {
|
||||
return
|
||||
}
|
||||
const width = process.stdout.columns - 30
|
||||
|
@ -462,3 +488,5 @@ function printProgressBar(current, total) {
|
|||
function C(color) {
|
||||
return logger.C(color)
|
||||
}
|
||||
|
||||
process.exit()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue