diff --git a/client/components/Search/Search.vue b/client/components/Search/Search.vue index 196fb8a..e0fbb4d 100644 --- a/client/components/Search/Search.vue +++ b/client/components/Search/Search.vue @@ -680,19 +680,21 @@ class Search { info += `
`; info += ` -
Всего файлов книг:
${stat.filesCount}
+
Всего файлов книг:
${stat.filesCountAll}
+
Из них актуальных:
${stat.filesCount}
+
Помеченных как удаленные:
${stat.filesDelCount}

-
Обработано ссылок на книги:
${stat.bookCountAll}
+
Обработано ссылок на файлы:
${stat.bookCountAll}
Из них актуальных:
${stat.bookCount}
Помеченных как удаленные:
${stat.bookDelCount}
Актуальных без автора:
${stat.noAuthorBookCount}

-
Всего записей об авторах:
${stat.authorCountAll}
-
Записей без соавторов:
${stat.authorCount}
+
Всего имен авторов:
${stat.authorCountAll}
+
Уникальных имен без соавторов:
${stat.authorCount}
С соавторами:
${stat.authorCountAll- stat.authorCount}

Уникальных названий книг:
${stat.titleCount}
-
Уникальных серий:
${stat.seriesCount}
+
Уникальных названий серий:
${stat.seriesCount}
Найдено жанров:
${stat.genreCount}
Найдено языков:
${stat.langCount}
`; diff --git a/server/core/DbCreator.js b/server/core/DbCreator.js index 998bc61..29e43ac 100644 --- a/server/core/DbCreator.js +++ b/server/core/DbCreator.js @@ -464,7 +464,9 @@ class DbCreator { //stats const stats = { - filesCount: 0, + filesCount: 0,//вычислим позднее + filesCountAll: 0,//вычислим позднее + filesDelCount: 0,//вычислим позднее recsLoaded, authorCount, authorCountAll: authorArr.length, @@ -554,10 +556,10 @@ class DbCreator { cacheSize: (config.lowMemoryMode ? 5 : 500), }); - callback({job: 'series optimization', jobMessage: 'Оптимизация', jobStep: 11, progress: 0}); + callback({job: 'optimization', jobMessage: 'Оптимизация', jobStep: 11, progress: 0}); await this.optimizeSeries(db, callback); - callback({job: 'files count', jobMessage: 'Подсчет статистики', jobStep: 12, progress: 0}); + callback({job: 'stats count', jobMessage: 'Подсчет статистики', jobStep: 12, progress: 0}); await this.countStats(db, callback, stats); //чистка памяти, ибо жрет как не в себя @@ -676,22 +678,33 @@ class DbCreator { })(); //подчсет - const countRes = await db.select({table: 'book', count: true, where: ` - const filesSet = new Set(); + const countRes = await db.select({table: 'book', rawResult: true, where: ` + const files = new Set(); + const filesDel = new Set(); - @@iter(@all(), (r) => { + for (const id of @all()) { + const r = @row(id); const file = ${"`${r.folder}/${r.file}.${r.ext}`"}; - if (filesSet.has(file)) { - return false; + if (!r.del) { + files.add(file); } else { - filesSet.add(file); - return true; + filesDel.add(file); } - }); + } + + for (const file of filesDel) + if (files.has(file)) + filesDel.delete(file); + + return {filesCount: files.size, filesDelCount: filesDel.size}; `}); - if (countRes.length) - stats.filesCount = countRes[0].count; + if (countRes.length) { + const res = countRes[0].rawResult; + stats.filesCount = res.filesCount; + stats.filesCountAll = res.filesCount + res.filesDelCount; + stats.filesDelCount = res.filesDelCount; + } countDone = true; }