mirror of
https://gitlab.com/MrFry/mrfrys-node-server
synced 2025-04-01 20:24:18 +02:00
rmduplicates fix
This commit is contained in:
parent
ee30410209
commit
2c031e4d05
2 changed files with 55 additions and 2 deletions
53
src/standaloneUtils/duplicateSubjectsInQdbFix.js
Normal file
53
src/standaloneUtils/duplicateSubjectsInQdbFix.js
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
const fs = require('fs')
|
||||||
|
const path = require('path')
|
||||||
|
|
||||||
|
const arg = process.argv[2]
|
||||||
|
const files = fs.readdirSync(arg)
|
||||||
|
const resdir = './res'
|
||||||
|
|
||||||
|
let duplicateSubjects = 0
|
||||||
|
let questionsInDuplicateSubjects = 0
|
||||||
|
|
||||||
|
function merge(x, y) {
|
||||||
|
return {
|
||||||
|
Name: x.Name,
|
||||||
|
Questions: [...x.Questions, ...y.Questions],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const fixQdb = (dbname) => {
|
||||||
|
console.log(dbname)
|
||||||
|
console.log()
|
||||||
|
const file = JSON.parse(fs.readFileSync(path.join(arg + dbname), 'utf8'))
|
||||||
|
|
||||||
|
const result = {}
|
||||||
|
|
||||||
|
file.forEach((x) => {
|
||||||
|
if (result[x.Name]) {
|
||||||
|
console.log(x.Name, ' is duplicate!')
|
||||||
|
duplicateSubjects += 1
|
||||||
|
result[x.Name] = merge(result[x.Name], x)
|
||||||
|
questionsInDuplicateSubjects += result[x.Name].Questions.length
|
||||||
|
} else {
|
||||||
|
result[x.Name] = x
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const newFile = Object.values(result)
|
||||||
|
|
||||||
|
fs.writeFileSync(path.join(resdir, dbname), JSON.stringify(newFile))
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fs.existsSync(resdir)) {
|
||||||
|
fs.rmSync(resdir, { recursive: true })
|
||||||
|
fs.mkdirSync(resdir)
|
||||||
|
}
|
||||||
|
|
||||||
|
files.forEach((x) => {
|
||||||
|
if (x.includes('json')) {
|
||||||
|
fixQdb(x)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log('Done! Found duplicates:', duplicateSubjects)
|
||||||
|
console.log(questionsInDuplicateSubjects)
|
|
@ -1,11 +1,11 @@
|
||||||
const utils = require('../../dist/utils/utils.js').default // eslint-disable-line
|
const utils = require('../../dist/utils/utils.js').default // eslint-disable-line
|
||||||
const logger = require('../../dist/utils/logger.js').default // eslint-disable-line
|
const logger = require('../../dist/utils/logger.js').default // eslint-disable-line
|
||||||
|
const { doSearch } = require('../../dist/worker/handlers/handleSearch.js') // eslint-disable-line
|
||||||
const {
|
const {
|
||||||
addQuestion,
|
addQuestion,
|
||||||
doSearch,
|
|
||||||
compareQuestionObj,
|
compareQuestionObj,
|
||||||
createQuestion,
|
createQuestion,
|
||||||
} = require('../../dist/utils/classes.js') // eslint-disable-line
|
} = require('../../dist/utils/qdbUtils.js') // eslint-disable-line
|
||||||
const { loadData, writeData } = require('../../dist/utils/actions.js') // eslint-disable-line
|
const { loadData, writeData } = require('../../dist/utils/actions.js') // eslint-disable-line
|
||||||
const fs = require('fs') // eslint-disable-line
|
const fs = require('fs') // eslint-disable-line
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue