mirror of
https://gitlab.com/MrFry/mrfrys-node-server
synced 2025-04-01 20:24:18 +02:00
Seperate dbs
This commit is contained in:
parent
728931d56e
commit
4e34267d44
9 changed files with 149 additions and 82 deletions
|
@ -7,11 +7,15 @@ import {
|
|||
Subject,
|
||||
} from '../types/basicTypes'
|
||||
|
||||
// TODO
|
||||
interface SearchResultQuestion extends Question {
|
||||
match: number
|
||||
}
|
||||
|
||||
export interface SearchResult {
|
||||
result: Array<SearchResultQuestion>
|
||||
dbName: string
|
||||
}
|
||||
|
||||
const searchDataWorkerFile = './src/utils/classes.ts'
|
||||
|
||||
const assert = (val) => {
|
||||
|
@ -217,7 +221,10 @@ function createQuestion(
|
|||
}
|
||||
|
||||
function compareImage(data: QuestionData, data2: QuestionData) {
|
||||
return compareString(data.images.join(' '), data2.images.join(' '))
|
||||
// TODO: img comparing (hashed images vs images)
|
||||
const imgs1 = data.hashedImages ? data.hashedImages : data.images
|
||||
const imgs2 = data2.hashedImages ? data2.hashedImages : data2.images
|
||||
return compareString(imgs1.join(' '), imgs2.join(' '))
|
||||
}
|
||||
|
||||
function compareData(q1: Question, q2: Question) {
|
||||
|
@ -412,23 +419,22 @@ function searchDatas(
|
|||
question: any,
|
||||
subjName: string,
|
||||
questionData?: QuestionData
|
||||
): Promise<Array<Array<SearchResultQuestion>>> {
|
||||
): Promise<Array<SearchResult>> {
|
||||
return Promise.all(
|
||||
data.map((db) => {
|
||||
return searchData(db.data, question, subjName, questionData)
|
||||
data.map((db: QuestionDb) => {
|
||||
return searchData(db, question, subjName, questionData)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
// TODO: remove questionData, make question only Question type
|
||||
// FIXME: remove questionData, make question only Question type
|
||||
function searchData(
|
||||
data: Array<Subject>,
|
||||
qdb: QuestionDb,
|
||||
question: any,
|
||||
subjName: string,
|
||||
questionData?: QuestionData
|
||||
): Promise<Array<SearchResultQuestion>> {
|
||||
): Promise<SearchResult> {
|
||||
return new Promise((resolve, reject) => {
|
||||
assert(data)
|
||||
assert(question)
|
||||
logger.DebugLog('Searching for question', 'qdb search', 1)
|
||||
logger.DebugLog('Question:', 'qdb search', 2)
|
||||
|
@ -447,7 +453,7 @@ function searchData(
|
|||
question = simplifyQuestion(question)
|
||||
|
||||
const worker = workerTs(searchDataWorkerFile, {
|
||||
workerData: { data, subjName, question, questionData },
|
||||
workerData: { data: qdb.data, subjName, question, questionData },
|
||||
})
|
||||
|
||||
worker.on('error', (err) => {
|
||||
|
@ -478,7 +484,10 @@ function searchData(
|
|||
'qdb search',
|
||||
1
|
||||
)
|
||||
resolve(result)
|
||||
resolve({
|
||||
result: result,
|
||||
dbName: qdb.name,
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
@ -494,10 +503,10 @@ function dataToString(data: Array<Subject>): string {
|
|||
// ------------------------------------------------------------------------
|
||||
|
||||
function searchWorker(
|
||||
data: any,
|
||||
subjName: any,
|
||||
question: any,
|
||||
questionData: any
|
||||
data: Array<Subject>,
|
||||
subjName: string,
|
||||
question: Question,
|
||||
questionData?: QuestionData
|
||||
): any {
|
||||
let result = []
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue