mirror of
https://gitlab.com/MrFry/mrfrys-node-server
synced 2025-04-01 20:24:18 +02:00
prettier 4 tabwidth
This commit is contained in:
parent
00ec614f1d
commit
96b413a365
42 changed files with 7034 additions and 6905 deletions
|
@ -1,6 +1,6 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
trailingComma: 'es5',
|
trailingComma: 'es5',
|
||||||
tabWidth: 2,
|
tabWidth: 4,
|
||||||
semi: false,
|
semi: false,
|
||||||
singleQuote: true,
|
singleQuote: true,
|
||||||
arrowParens: 'always',
|
arrowParens: 'always',
|
||||||
|
|
|
@ -81,7 +81,9 @@ export default function (options: Options): any {
|
||||||
logger.LogStat(
|
logger.LogStat(
|
||||||
req.url,
|
req.url,
|
||||||
hostname,
|
hostname,
|
||||||
req.session && req.session.user ? req.session.user.id : 'NOUSER'
|
req.session && req.session.user
|
||||||
|
? req.session.user.id
|
||||||
|
: 'NOUSER'
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -178,7 +178,9 @@ function setup(data: SubmoduleData): void {
|
||||||
}
|
}
|
||||||
dbtools.Insert(msgDB, 'msgs', msgObj)
|
dbtools.Insert(msgDB, 'msgs', msgObj)
|
||||||
if (userid !== parseInt(reciever)) {
|
if (userid !== parseInt(reciever)) {
|
||||||
io.sockets.in(reciever.toString()).emit('chat message', msgObj)
|
io.sockets
|
||||||
|
.in(reciever.toString())
|
||||||
|
.emit('chat message', msgObj)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -234,7 +236,9 @@ function setup(data: SubmoduleData): void {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
app.post('/postfeedback', function (req: Request<{ content: string }>, res) {
|
app.post(
|
||||||
|
'/postfeedback',
|
||||||
|
function (req: Request<{ content: string }>, res) {
|
||||||
logger.LogReq(req)
|
logger.LogReq(req)
|
||||||
const user: User = req.session.user
|
const user: User = req.session.user
|
||||||
const { content } = req.body
|
const { content } = req.body
|
||||||
|
@ -255,7 +259,8 @@ function setup(data: SubmoduleData): void {
|
||||||
|
|
||||||
res.json({ success: true })
|
res.json({ success: true })
|
||||||
io.sockets.in('1').emit('chat message', msgObj)
|
io.sockets.in('1').emit('chat message', msgObj)
|
||||||
})
|
}
|
||||||
|
)
|
||||||
|
|
||||||
app.get('/hasNewMsg', (req: Request, res) => {
|
app.get('/hasNewMsg', (req: Request, res) => {
|
||||||
const user: User = req.session.user
|
const user: User = req.session.user
|
||||||
|
|
|
@ -116,11 +116,11 @@ function addReaction(
|
||||||
}
|
}
|
||||||
if (isDelete) {
|
if (isDelete) {
|
||||||
if (obj[index].reacts[reaction]) {
|
if (obj[index].reacts[reaction]) {
|
||||||
obj[index].reacts[reaction] = obj[index].reacts[reaction].filter(
|
obj[index].reacts[reaction] = obj[index].reacts[
|
||||||
(currUid: number) => {
|
reaction
|
||||||
|
].filter((currUid: number) => {
|
||||||
return uid !== currUid
|
return uid !== currUid
|
||||||
}
|
})
|
||||||
)
|
|
||||||
if (obj[index].reacts[reaction].length === 0) {
|
if (obj[index].reacts[reaction].length === 0) {
|
||||||
delete obj[index].reacts[reaction]
|
delete obj[index].reacts[reaction]
|
||||||
}
|
}
|
||||||
|
@ -184,7 +184,8 @@ function getPostData(
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(data: SubmoduleData): void {
|
function setup(data: SubmoduleData): void {
|
||||||
const { app, /* userDB, url, */ publicdirs /*, moduleSpecificData */ } = data
|
const { app, /* userDB, url, */ publicdirs /*, moduleSpecificData */ } =
|
||||||
|
data
|
||||||
|
|
||||||
const publicDir = publicdirs[0]
|
const publicDir = publicdirs[0]
|
||||||
|
|
||||||
|
@ -209,7 +210,9 @@ function setup(data: SubmoduleData): void {
|
||||||
const { forumPath, contents } = getForumData(forumName, forumDir)
|
const { forumPath, contents } = getForumData(forumName, forumDir)
|
||||||
|
|
||||||
const from = req.query.from || Object.keys(contents).reverse()[0]
|
const from = req.query.from || Object.keys(contents).reverse()[0]
|
||||||
const count = parseInt(req.query.count ? req.query.count.toString() : '5')
|
const count = parseInt(
|
||||||
|
req.query.count ? req.query.count.toString() : '5'
|
||||||
|
)
|
||||||
const getContent = req.query.getContent
|
const getContent = req.query.getContent
|
||||||
|
|
||||||
let entries = {}
|
let entries = {}
|
||||||
|
@ -414,7 +417,10 @@ function setup(data: SubmoduleData): void {
|
||||||
if (contents[postKey] && contents[postKey].user === user.id) {
|
if (contents[postKey] && contents[postKey].user === user.id) {
|
||||||
utils.deleteFile(forumPath + '/' + postKey)
|
utils.deleteFile(forumPath + '/' + postKey)
|
||||||
delete contents[postKey]
|
delete contents[postKey]
|
||||||
utils.WriteFile(JSON.stringify(contents, null, 2), contentFilePath)
|
utils.WriteFile(
|
||||||
|
JSON.stringify(contents, null, 2),
|
||||||
|
contentFilePath
|
||||||
|
)
|
||||||
|
|
||||||
res.json({ success: true, deletedId: postKey })
|
res.json({ success: true, deletedId: postKey })
|
||||||
} else {
|
} else {
|
||||||
|
@ -466,7 +472,11 @@ function setup(data: SubmoduleData): void {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const { postPath, postData } = getPostData(postKey, contents, forumPath)
|
const { postPath, postData } = getPostData(
|
||||||
|
postKey,
|
||||||
|
contents,
|
||||||
|
forumPath
|
||||||
|
)
|
||||||
if (!postData) {
|
if (!postData) {
|
||||||
res.json({
|
res.json({
|
||||||
success: false,
|
success: false,
|
||||||
|
@ -488,7 +498,11 @@ function setup(data: SubmoduleData): void {
|
||||||
addComment(postData.comments, path, comment)
|
addComment(postData.comments, path, comment)
|
||||||
} else if (type === 'delete') {
|
} else if (type === 'delete') {
|
||||||
if (postData.comments) {
|
if (postData.comments) {
|
||||||
const success = deleteComment(postData.comments, path, user.id)
|
const success = deleteComment(
|
||||||
|
postData.comments,
|
||||||
|
path,
|
||||||
|
user.id
|
||||||
|
)
|
||||||
if (!success) {
|
if (!success) {
|
||||||
res.json({
|
res.json({
|
||||||
success: false,
|
success: false,
|
||||||
|
@ -542,7 +556,11 @@ function setup(data: SubmoduleData): void {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const { postPath, postData } = getPostData(postKey, contents, forumPath)
|
const { postPath, postData } = getPostData(
|
||||||
|
postKey,
|
||||||
|
contents,
|
||||||
|
forumPath
|
||||||
|
)
|
||||||
if (!postData) {
|
if (!postData) {
|
||||||
res.json({
|
res.json({
|
||||||
success: false,
|
success: false,
|
||||||
|
@ -554,11 +572,11 @@ function setup(data: SubmoduleData): void {
|
||||||
if (postData) {
|
if (postData) {
|
||||||
if (isDelete) {
|
if (isDelete) {
|
||||||
if (postData.reacts) {
|
if (postData.reacts) {
|
||||||
postData.reacts[reaction] = postData.reacts[reaction].filter(
|
postData.reacts[reaction] = postData.reacts[
|
||||||
(uid) => {
|
reaction
|
||||||
|
].filter((uid) => {
|
||||||
return uid !== user.id
|
return uid !== user.id
|
||||||
}
|
})
|
||||||
)
|
|
||||||
if (postData.reacts[reaction].length === 0) {
|
if (postData.reacts[reaction].length === 0) {
|
||||||
delete postData.reacts[reaction]
|
delete postData.reacts[reaction]
|
||||||
}
|
}
|
||||||
|
@ -568,7 +586,9 @@ function setup(data: SubmoduleData): void {
|
||||||
postData.reacts = { [reaction]: [user.id] }
|
postData.reacts = { [reaction]: [user.id] }
|
||||||
} else {
|
} else {
|
||||||
if (Array.isArray(postData.reacts[reaction])) {
|
if (Array.isArray(postData.reacts[reaction])) {
|
||||||
if (!postData.reacts[reaction].includes(user.id)) {
|
if (
|
||||||
|
!postData.reacts[reaction].includes(user.id)
|
||||||
|
) {
|
||||||
postData.reacts[reaction].push(user.id)
|
postData.reacts[reaction].push(user.id)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -244,9 +244,11 @@ function getResult(data: {
|
||||||
).filter((x) => {
|
).filter((x) => {
|
||||||
return !searchIn.includes(x)
|
return !searchIn.includes(x)
|
||||||
})
|
})
|
||||||
searchInDbs(question, subj, searchInMore, testUrl).then((res) => {
|
searchInDbs(question, subj, searchInMore, testUrl).then(
|
||||||
|
(res) => {
|
||||||
resolve(res)
|
resolve(res)
|
||||||
})
|
}
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
resolve(res)
|
resolve(res)
|
||||||
}
|
}
|
||||||
|
@ -587,7 +589,13 @@ function setup(data: SubmoduleData): Submodule {
|
||||||
if (suitedQuestionDbs.length === 0) {
|
if (suitedQuestionDbs.length === 0) {
|
||||||
if (!dbExists(location, questionDbs)) {
|
if (!dbExists(location, questionDbs)) {
|
||||||
suitedQuestionDbs.push(
|
suitedQuestionDbs.push(
|
||||||
getNewQdb(location, maxIndex, dbsFile, publicDir, questionDbs)
|
getNewQdb(
|
||||||
|
location,
|
||||||
|
maxIndex,
|
||||||
|
dbsFile,
|
||||||
|
publicDir,
|
||||||
|
questionDbs
|
||||||
|
)
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
logger.Log(
|
logger.Log(
|
||||||
|
@ -608,9 +616,12 @@ function setup(data: SubmoduleData): Submodule {
|
||||||
.then((resultArray: Array<Result>) => {
|
.then((resultArray: Array<Result>) => {
|
||||||
logResult(req.body, resultArray, user.id, dryRun)
|
logResult(req.body, resultArray, user.id, dryRun)
|
||||||
|
|
||||||
const totalNewQuestions = resultArray.reduce((acc, sres) => {
|
const totalNewQuestions = resultArray.reduce(
|
||||||
|
(acc, sres) => {
|
||||||
return acc + sres.newQuestions.length
|
return acc + sres.newQuestions.length
|
||||||
}, 0)
|
},
|
||||||
|
0
|
||||||
|
)
|
||||||
|
|
||||||
res.json({
|
res.json({
|
||||||
success: resultArray.length > 0,
|
success: resultArray.length > 0,
|
||||||
|
@ -670,16 +681,15 @@ function setup(data: SubmoduleData): Submodule {
|
||||||
writeAskData(req.body)
|
writeAskData(req.body)
|
||||||
|
|
||||||
// every question in a different thread
|
// every question in a different thread
|
||||||
const resultPromises: Promise<DbSearchResult>[] = req.body.questions.map(
|
const resultPromises: Promise<DbSearchResult>[] =
|
||||||
(question: Question) => {
|
req.body.questions.map((question: Question) => {
|
||||||
return getResult({
|
return getResult({
|
||||||
question: question,
|
question: question,
|
||||||
subj: subj,
|
subj: subj,
|
||||||
testUrl: testUrl,
|
testUrl: testUrl,
|
||||||
questionDbs: questionDbs,
|
questionDbs: questionDbs,
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
)
|
|
||||||
|
|
||||||
Promise.all(resultPromises).then((results: DbSearchResult[]) => {
|
Promise.all(resultPromises).then((results: DbSearchResult[]) => {
|
||||||
const response = results.map((result: DbSearchResult) => {
|
const response = results.map((result: DbSearchResult) => {
|
||||||
|
@ -943,7 +953,10 @@ function setup(data: SubmoduleData): Submodule {
|
||||||
`${date}: User ${user.id} deleted a question from '${subjName}' (index: ${index})`,
|
`${date}: User ${user.id} deleted a question from '${subjName}' (index: ${index})`,
|
||||||
dataEditsLog
|
dataEditsLog
|
||||||
)
|
)
|
||||||
utils.AppendToFile(JSON.stringify(deletedQuestion, null, 2), dataEditsLog)
|
utils.AppendToFile(
|
||||||
|
JSON.stringify(deletedQuestion, null, 2),
|
||||||
|
dataEditsLog
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (editType === 'edit') {
|
if (editType === 'edit') {
|
||||||
|
|
|
@ -107,7 +107,10 @@ function setup(data: SubmoduleData): void {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Log(`Vote from #${user.id}: ${key}: ${val}`, logger.GetColor('blue'))
|
logger.Log(
|
||||||
|
`Vote from #${user.id}: ${key}: ${val}`,
|
||||||
|
logger.GetColor('blue')
|
||||||
|
)
|
||||||
res.render('votethank', {
|
res.render('votethank', {
|
||||||
result: prevVote ? 'already voted' : 'success',
|
result: prevVote ? 'already voted' : 'success',
|
||||||
prevVote: prevVote,
|
prevVote: prevVote,
|
||||||
|
|
|
@ -90,9 +90,16 @@ function setup(data: SubmoduleData): void {
|
||||||
} else {
|
} else {
|
||||||
result[userId] = {
|
result[userId] = {
|
||||||
count: uidRes.count + userStat.count,
|
count: uidRes.count + userStat.count,
|
||||||
newQuestions: uidRes.newQuestions + userStat.newQuestions,
|
newQuestions:
|
||||||
allQuestions: uidRes.allQuestions + userStat.allQuestions,
|
uidRes.newQuestions +
|
||||||
subjs: mergeObjSum(uidRes.subjs, userStat.subjs),
|
userStat.newQuestions,
|
||||||
|
allQuestions:
|
||||||
|
uidRes.allQuestions +
|
||||||
|
userStat.allQuestions,
|
||||||
|
subjs: mergeObjSum(
|
||||||
|
uidRes.subjs,
|
||||||
|
userStat.subjs
|
||||||
|
),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -65,7 +65,9 @@ function listDir(publicDir: string, subdir: string, userFilesDir: string) {
|
||||||
date: stat.mtime.getTime(),
|
date: stat.mtime.getTime(),
|
||||||
user: users && users[file] ? users[file].uid : -1,
|
user: users && users[file] ? users[file].uid : -1,
|
||||||
views:
|
views:
|
||||||
users && users[file] && users[file].views ? users[file].views : 0,
|
users && users[file] && users[file].views
|
||||||
|
? users[file].views
|
||||||
|
: 0,
|
||||||
upvotes:
|
upvotes:
|
||||||
users && users[file] && users[file].upvotes
|
users && users[file] && users[file].upvotes
|
||||||
? users[file].upvotes
|
? users[file].upvotes
|
||||||
|
@ -95,7 +97,8 @@ function setup(data: SubmoduleData): void {
|
||||||
const x = safePath.split('/')
|
const x = safePath.split('/')
|
||||||
const dir = x[2]
|
const dir = x[2]
|
||||||
const fname = x.pop()
|
const fname = x.pop()
|
||||||
const dataFilePath = userFilesDir + '/' + dir + '/' + dataFileName
|
const dataFilePath =
|
||||||
|
userFilesDir + '/' + dir + '/' + dataFileName
|
||||||
|
|
||||||
const data = utils.ReadJSON(dataFilePath)
|
const data = utils.ReadJSON(dataFilePath)
|
||||||
|
|
||||||
|
@ -250,7 +253,8 @@ function setup(data: SubmoduleData): void {
|
||||||
logger.GetColor('blue')
|
logger.GetColor('blue')
|
||||||
)
|
)
|
||||||
|
|
||||||
const usersFile = userFilesDir + '/' + safeDir + '/' + dataFileName
|
const usersFile =
|
||||||
|
userFilesDir + '/' + safeDir + '/' + dataFileName
|
||||||
const users = utils.ReadJSON(usersFile)
|
const users = utils.ReadJSON(usersFile)
|
||||||
users[body.fileName] = { uid: user.id }
|
users[body.fileName] = { uid: user.id }
|
||||||
utils.WriteFile(JSON.stringify(users), usersFile)
|
utils.WriteFile(JSON.stringify(users), usersFile)
|
||||||
|
|
|
@ -163,7 +163,8 @@ function setup(data: SubmoduleData): Submodule {
|
||||||
})
|
})
|
||||||
.sort((a: Session, b: Session) => {
|
.sort((a: Session, b: Session) => {
|
||||||
return (
|
return (
|
||||||
new Date(a.lastAccess).getTime() - new Date(b.lastAccess).getTime()
|
new Date(a.lastAccess).getTime() -
|
||||||
|
new Date(b.lastAccess).getTime()
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,10 @@ function GetApp(): ModuleType {
|
||||||
auth({
|
auth({
|
||||||
userDB: userDB,
|
userDB: userDB,
|
||||||
jsonResponse: false,
|
jsonResponse: false,
|
||||||
exceptions: ['/favicon.ico', '/img/frylabs-logo_large_transparent.png'],
|
exceptions: [
|
||||||
|
'/favicon.ico',
|
||||||
|
'/img/frylabs-logo_large_transparent.png',
|
||||||
|
],
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
app.use((req: Request, _res, next) => {
|
app.use((req: Request, _res, next) => {
|
||||||
|
@ -180,7 +183,11 @@ function GetApp(): ModuleType {
|
||||||
if (!redirect.nolog) {
|
if (!redirect.nolog) {
|
||||||
logger.LogReq(req)
|
logger.LogReq(req)
|
||||||
}
|
}
|
||||||
logger.DebugLog(`Qmining module ${redirect.from} redirect`, 'infos', 1)
|
logger.DebugLog(
|
||||||
|
`Qmining module ${redirect.from} redirect`,
|
||||||
|
'infos',
|
||||||
|
1
|
||||||
|
)
|
||||||
|
|
||||||
let target = redirect.to
|
let target = redirect.to
|
||||||
if (!redirect.to.includes('https://')) {
|
if (!redirect.to.includes('https://')) {
|
||||||
|
|
|
@ -3,7 +3,7 @@ const fs = require('fs')
|
||||||
const params = process.argv
|
const params = process.argv
|
||||||
const file = params[2]
|
const file = params[2]
|
||||||
|
|
||||||
const data = fs.readFileSync(file,'utf8').split('\n')
|
const data = fs.readFileSync(file, 'utf8').split('\n')
|
||||||
console.log(data)
|
console.log(data)
|
||||||
|
|
||||||
console.log("TODO: remove 'Q: ' and 'A: '")
|
console.log("TODO: remove 'Q: ' and 'A: '")
|
||||||
|
@ -15,7 +15,7 @@ const res = data.reduce((acc, val) => {
|
||||||
if (formattedVal.startsWith('#')) return acc
|
if (formattedVal.startsWith('#')) return acc
|
||||||
if (formattedVal.startsWith('Q')) {
|
if (formattedVal.startsWith('Q')) {
|
||||||
currVal = {
|
currVal = {
|
||||||
Q: formattedVal
|
Q: formattedVal,
|
||||||
}
|
}
|
||||||
return acc
|
return acc
|
||||||
}
|
}
|
||||||
|
@ -26,9 +26,9 @@ const res = data.reduce((acc, val) => {
|
||||||
{
|
{
|
||||||
...currVal,
|
...currVal,
|
||||||
data: {
|
data: {
|
||||||
type: 'simple'
|
type: 'simple',
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -82,16 +82,22 @@ if (stat.isDirectory()) {
|
||||||
clearPossibleAnswers(pathA, db)
|
clearPossibleAnswers(pathA, db)
|
||||||
|
|
||||||
log(
|
log(
|
||||||
`Cleared possible questions from ${C('green')}${pathA}${C()} based on ${C(
|
`Cleared possible questions from ${C(
|
||||||
'green'
|
'green'
|
||||||
)}${pathB}${C()} db`
|
)}${pathA}${C()} based on ${C('green')}${pathB}${C()} db`
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
log(
|
log(
|
||||||
`Removing possible question duplicates from ${C('green')}${pathA}${C()}`
|
`Removing possible question duplicates from ${C(
|
||||||
|
'green'
|
||||||
|
)}${pathA}${C()}`
|
||||||
)
|
)
|
||||||
removePossibleAnswersDuplicates(pathA)
|
removePossibleAnswersDuplicates(pathA)
|
||||||
log(`Removed possible question duplicates from ${C('green')}${pathA}${C()}`)
|
log(
|
||||||
|
`Removed possible question duplicates from ${C(
|
||||||
|
'green'
|
||||||
|
)}${pathA}${C()}`
|
||||||
|
)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
console.time('load')
|
console.time('load')
|
||||||
|
@ -309,9 +315,11 @@ function difference({ dbA, dbB }) {
|
||||||
|
|
||||||
hr()
|
hr()
|
||||||
log(
|
log(
|
||||||
`${C('blue')}${i + 1} / ${dbA.length}: ${C('green')}${subj.Name}, ${C(
|
`${C('blue')}${i + 1} / ${dbA.length}: ${C('green')}${
|
||||||
'blue'
|
subj.Name
|
||||||
)}${subj.Questions.length}${C('green')} questions${C()}`
|
}, ${C('blue')}${subj.Questions.length}${C(
|
||||||
|
'green'
|
||||||
|
)} questions${C()}`
|
||||||
)
|
)
|
||||||
|
|
||||||
printProgressBar(i + 1, dbA.length)
|
printProgressBar(i + 1, dbA.length)
|
||||||
|
|
|
@ -201,18 +201,20 @@ function processIncomingRequestUsingDb(
|
||||||
.then((results: Array<WorkerResult>) => {
|
.then((results: Array<WorkerResult>) => {
|
||||||
const allQuestions: Question[] = [] // all new questions here that do not have result
|
const allQuestions: Question[] = [] // all new questions here that do not have result
|
||||||
results.forEach((result: WorkerResult, i) => {
|
results.forEach((result: WorkerResult, i) => {
|
||||||
const add = (result.result as SearchResultQuestion[]).every(
|
const add = (
|
||||||
(res: SearchResultQuestion) => {
|
result.result as SearchResultQuestion[]
|
||||||
|
).every((res: SearchResultQuestion) => {
|
||||||
return res.match < minMatchAmmountToAdd
|
return res.match < minMatchAmmountToAdd
|
||||||
}
|
})
|
||||||
)
|
|
||||||
if (add && !result.error) {
|
if (add && !result.error) {
|
||||||
allQuestions.push(recievedQuestions[i])
|
allQuestions.push(recievedQuestions[i])
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const subjName = getSubjNameWithoutYear(recievedData.subj)
|
const subjName = getSubjNameWithoutYear(
|
||||||
|
recievedData.subj
|
||||||
|
)
|
||||||
if (allQuestions.length > 0) {
|
if (allQuestions.length > 0) {
|
||||||
addQuestionsToDb(allQuestions, subjName, qdb)
|
addQuestionsToDb(allQuestions, subjName, qdb)
|
||||||
|
|
||||||
|
@ -224,7 +226,11 @@ function processIncomingRequestUsingDb(
|
||||||
)
|
)
|
||||||
if (currWrites >= writeAfter && !dryRun) {
|
if (currWrites >= writeAfter && !dryRun) {
|
||||||
currWrites = 0
|
currWrites = 0
|
||||||
logger.DebugLog('Writing data.json', 'isadding', 1)
|
logger.DebugLog(
|
||||||
|
'Writing data.json',
|
||||||
|
'isadding',
|
||||||
|
1
|
||||||
|
)
|
||||||
writeData(qdb.data, qdb.path)
|
writeData(qdb.data, qdb.path)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -239,7 +245,11 @@ function processIncomingRequestUsingDb(
|
||||||
logger.DebugLog('New Questions:', 'isadding', 2)
|
logger.DebugLog('New Questions:', 'isadding', 2)
|
||||||
logger.DebugLog(allQuestions, 'isadding', 2)
|
logger.DebugLog(allQuestions, 'isadding', 2)
|
||||||
|
|
||||||
logger.DebugLog('ProcessIncomingRequest done', 'isadding', 1)
|
logger.DebugLog(
|
||||||
|
'ProcessIncomingRequest done',
|
||||||
|
'isadding',
|
||||||
|
1
|
||||||
|
)
|
||||||
resolve({
|
resolve({
|
||||||
newQuestions: allQuestions,
|
newQuestions: allQuestions,
|
||||||
subjName: recievedData.subj,
|
subjName: recievedData.subj,
|
||||||
|
@ -254,7 +264,9 @@ function processIncomingRequestUsingDb(
|
||||||
logger.GetColor('redbg')
|
logger.GetColor('redbg')
|
||||||
)
|
)
|
||||||
reject(
|
reject(
|
||||||
new Error('Error while processing processData worker result!')
|
new Error(
|
||||||
|
'Error while processing processData worker result!'
|
||||||
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -337,7 +349,8 @@ function runCleanWorker(
|
||||||
msgAllWorker({
|
msgAllWorker({
|
||||||
type: 'rmQuestions',
|
type: 'rmQuestions',
|
||||||
data: {
|
data: {
|
||||||
questionIndexesToRemove: questionIndexesToRemove as number[][],
|
questionIndexesToRemove:
|
||||||
|
questionIndexesToRemove as number[][],
|
||||||
subjIndex: subjIndex,
|
subjIndex: subjIndex,
|
||||||
qdbIndex: qdb.index,
|
qdbIndex: qdb.index,
|
||||||
recievedQuestions: recievedQuesitons,
|
recievedQuestions: recievedQuesitons,
|
||||||
|
@ -545,7 +558,10 @@ export function backupData(questionDbs: Array<QuestionDb>): void {
|
||||||
// logger.Log(`Backing up ${data.name}...`)
|
// logger.Log(`Backing up ${data.name}...`)
|
||||||
writeData(
|
writeData(
|
||||||
data.data,
|
data.data,
|
||||||
`${path}${data.name}_${utils.GetDateString(undefined, true)}.json`
|
`${path}${data.name}_${utils.GetDateString(
|
||||||
|
undefined,
|
||||||
|
true
|
||||||
|
)}.json`
|
||||||
)
|
)
|
||||||
// logger.Log('Done')
|
// logger.Log('Done')
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
|
@ -166,7 +166,9 @@ function compareString(
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
|
|
||||||
let percent = Math.round(parseFloat(((match / s1a.length) * 100).toFixed(2)))
|
let percent = Math.round(
|
||||||
|
parseFloat(((match / s1a.length) * 100).toFixed(2))
|
||||||
|
)
|
||||||
const lengthDifference = Math.abs(s2a.length - s1a.length)
|
const lengthDifference = Math.abs(s2a.length - s1a.length)
|
||||||
percent -= lengthDifference * lengthDiffMultiplier
|
percent -= lengthDifference * lengthDiffMultiplier
|
||||||
if (percent < 0) {
|
if (percent < 0) {
|
||||||
|
@ -627,15 +629,20 @@ function setNoPossibleAnswersPenalties(
|
||||||
const updated = results.map((result) => {
|
const updated = results.map((result) => {
|
||||||
const matchCount = Array.isArray(result.q.data.possibleAnswers)
|
const matchCount = Array.isArray(result.q.data.possibleAnswers)
|
||||||
? result.q.data.possibleAnswers.filter((resultPossibleAnswer) => {
|
? result.q.data.possibleAnswers.filter((resultPossibleAnswer) => {
|
||||||
return questionPossibleAnswers.some((questionPossibleAnswer) => {
|
return questionPossibleAnswers.some(
|
||||||
if (questionPossibleAnswer.val && resultPossibleAnswer.val) {
|
(questionPossibleAnswer) => {
|
||||||
|
if (
|
||||||
|
questionPossibleAnswer.val &&
|
||||||
|
resultPossibleAnswer.val
|
||||||
|
) {
|
||||||
return questionPossibleAnswer.val.includes(
|
return questionPossibleAnswer.val.includes(
|
||||||
resultPossibleAnswer.val
|
resultPossibleAnswer.val
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
|
)
|
||||||
}).length
|
}).length
|
||||||
: 0
|
: 0
|
||||||
|
|
||||||
|
@ -648,7 +655,9 @@ function setNoPossibleAnswersPenalties(
|
||||||
match: result.match - noPossibleAnswerMatchPenalty,
|
match: result.match - noPossibleAnswerMatchPenalty,
|
||||||
detailedMatch: {
|
detailedMatch: {
|
||||||
...result.detailedMatch,
|
...result.detailedMatch,
|
||||||
qMatch: result.detailedMatch.qMatch - noPossibleAnswerMatchPenalty,
|
qMatch:
|
||||||
|
result.detailedMatch.qMatch -
|
||||||
|
noPossibleAnswerMatchPenalty,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -781,7 +790,8 @@ function handleWorkerData() {
|
||||||
// }done!`
|
// }done!`
|
||||||
// )
|
// )
|
||||||
} else if (msg.type === 'dbEdit') {
|
} else if (msg.type === 'dbEdit') {
|
||||||
const { dbIndex, edits }: { dbIndex: number; edits: Edits } = msg.data
|
const { dbIndex, edits }: { dbIndex: number; edits: Edits } =
|
||||||
|
msg.data
|
||||||
const { resultDb } = editDb(qdbs[dbIndex], edits)
|
const { resultDb } = editDb(qdbs[dbIndex], edits)
|
||||||
qdbs[dbIndex] = resultDb
|
qdbs[dbIndex] = resultDb
|
||||||
logger.DebugLog(`Worker db edit ${workerIndex}`, 'worker update', 1)
|
logger.DebugLog(`Worker db edit ${workerIndex}`, 'worker update', 1)
|
||||||
|
@ -811,7 +821,10 @@ function handleWorkerData() {
|
||||||
added = true
|
added = true
|
||||||
return {
|
return {
|
||||||
Name: subj.Name,
|
Name: subj.Name,
|
||||||
Questions: [...subj.Questions, ...newQuestions],
|
Questions: [
|
||||||
|
...subj.Questions,
|
||||||
|
...newQuestions,
|
||||||
|
],
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return subj
|
return subj
|
||||||
|
@ -841,7 +854,11 @@ function handleWorkerData() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
logger.DebugLog(`Worker new question ${workerIndex}`, 'worker update', 1)
|
logger.DebugLog(
|
||||||
|
`Worker new question ${workerIndex}`,
|
||||||
|
'worker update',
|
||||||
|
1
|
||||||
|
)
|
||||||
|
|
||||||
parentPort.postMessage({
|
parentPort.postMessage({
|
||||||
msg: `From thread #${workerIndex}: update done`,
|
msg: `From thread #${workerIndex}: update done`,
|
||||||
|
@ -930,7 +947,8 @@ export function cleanDb(
|
||||||
|
|
||||||
if (
|
if (
|
||||||
res > minMatchToNotSearchOtherSubjects &&
|
res > minMatchToNotSearchOtherSubjects &&
|
||||||
(!question.data.date || question.data.date < overwriteFromDate)
|
(!question.data.date ||
|
||||||
|
question.data.date < overwriteFromDate)
|
||||||
) {
|
) {
|
||||||
return [...acc, i]
|
return [...acc, i]
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,7 +108,11 @@ function LogReq(
|
||||||
if (req.url.includes('lred')) {
|
if (req.url.includes('lred')) {
|
||||||
dl += C('red')
|
dl += C('red')
|
||||||
}
|
}
|
||||||
if (req.session && req.session.user && !shouldLog(req.session.user.id, noLogIds)) {
|
if (
|
||||||
|
req.session &&
|
||||||
|
req.session.user &&
|
||||||
|
!shouldLog(req.session.user.id, noLogIds)
|
||||||
|
) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,21 +193,30 @@ function Load(): void {
|
||||||
try {
|
try {
|
||||||
uvData = JSON.parse(utils.ReadFile(uStatsFile))
|
uvData = JSON.parse(utils.ReadFile(uStatsFile))
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
Log('Error at loading logs! (@ first run its normal)', GetColor('redbg'))
|
Log(
|
||||||
|
'Error at loading logs! (@ first run its normal)',
|
||||||
|
GetColor('redbg')
|
||||||
|
)
|
||||||
console.error(err)
|
console.error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
udvData = JSON.parse(utils.ReadFile(uvStatsFile))
|
udvData = JSON.parse(utils.ReadFile(uvStatsFile))
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
Log('Error at loading logs! (@ first run its normal)', GetColor('redbg'))
|
Log(
|
||||||
|
'Error at loading logs! (@ first run its normal)',
|
||||||
|
GetColor('redbg')
|
||||||
|
)
|
||||||
console.error(err)
|
console.error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
vData = utils.ReadJSON(statFile)
|
vData = utils.ReadJSON(statFile)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
Log('Error at loading logs! (@ first run its normal)', GetColor('redbg'))
|
Log(
|
||||||
|
'Error at loading logs! (@ first run its normal)',
|
||||||
|
GetColor('redbg')
|
||||||
|
)
|
||||||
console.error(err)
|
console.error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -332,7 +345,10 @@ function Save() {
|
||||||
utils.WriteFile(JSON.stringify(dvData), vStatFile)
|
utils.WriteFile(JSON.stringify(dvData), vStatFile)
|
||||||
// Log("Stats wrote.");
|
// Log("Stats wrote.");
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
Log('Error at writing visit logs! (more in stderr)', GetColor('redbg'))
|
Log(
|
||||||
|
'Error at writing visit logs! (more in stderr)',
|
||||||
|
GetColor('redbg')
|
||||||
|
)
|
||||||
console.error(err)
|
console.error(err)
|
||||||
}
|
}
|
||||||
writes = 0
|
writes = 0
|
||||||
|
|
|
@ -251,7 +251,10 @@ function uploadFile(
|
||||||
|
|
||||||
file.mv(fileDestination, (err: Error) => {
|
file.mv(fileDestination, (err: Error) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
logger.Log(`Unable to upload file!`, logger.GetColor('redbg'))
|
logger.Log(
|
||||||
|
`Unable to upload file!`,
|
||||||
|
logger.GetColor('redbg')
|
||||||
|
)
|
||||||
console.error(err)
|
console.error(err)
|
||||||
reject(err)
|
reject(err)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -35,7 +35,13 @@ interface WorkerObj {
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TaskObject {
|
export interface TaskObject {
|
||||||
type: 'work' | 'dbEdit' | 'newQuestions' | 'newdb' | 'dbClean' | 'rmQuestions'
|
type:
|
||||||
|
| 'work'
|
||||||
|
| 'dbEdit'
|
||||||
|
| 'newQuestions'
|
||||||
|
| 'newdb'
|
||||||
|
| 'dbClean'
|
||||||
|
| 'rmQuestions'
|
||||||
data:
|
data:
|
||||||
| {
|
| {
|
||||||
searchIn: number[]
|
searchIn: number[]
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 281d0e00ce054d46444f377876786b913b8c1a08
|
Subproject commit ed507dc39f5d34703e53585a75a0138e70bcee3a
|
Loading…
Add table
Add a link
Reference in a new issue