Улучшение фильтра

This commit is contained in:
Book Pauk
2022-10-03 16:50:51 +07:00
parent 904e3e6c2f
commit 53873910c2

View File

@@ -70,11 +70,17 @@ class DbCreator {
callback({recsLoaded});
let chunkNum = 0;
//фильтр по авторам
//фильтр
const inpxFilter = await this.loadInpxFilter();
let filterAuthor = () => true;
let filter = () => true;
if (inpxFilter) {
filterAuthor = (author) => {
let recFilter = () => true;
if (inpxFilter.filter)
recFilter = new Function(`'use strict'; return ${inpxFilter.filter}`)();
filter = (rec) => {
let author = rec.author;
if (!author)
author = emptyFieldValue;
@@ -92,7 +98,9 @@ class DbCreator {
}
}
return (!inpxFilter.includeSet || inpxFilter.includeSet.has(author)) && !excluded
return recFilter(rec)
&& (!inpxFilter.includeSet || inpxFilter.includeSet.has(author))
&& !excluded
;
};
}
@@ -124,8 +132,8 @@ class DbCreator {
const parsedCallback = async(chunk) => {
let filtered = false;
for (const rec of chunk) {
//сначала фильтр по авторам
if (!filterAuthor(rec.author)) {
//сначала фильтр
if (!filter(rec)) {
rec.id = 0;
filtered = true;
continue;