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 logger = require('../../dist/utils/logger.js').default // eslint-disable-line
|
||||
const { doSearch } = require('../../dist/worker/handlers/handleSearch.js') // eslint-disable-line
|
||||
const {
|
||||
addQuestion,
|
||||
doSearch,
|
||||
compareQuestionObj,
|
||||
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 fs = require('fs') // eslint-disable-line
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue