17 Commits
1.0.3 ... 1.0.6

Author SHA1 Message Date
Book Pauk
48eecf7b4c Merge branch 'release/1.0.6' 2022-10-17 23:32:59 +07:00
Book Pauk
97ca49571c 1.0.6 2022-10-17 23:32:36 +07:00
Book Pauk
d9cc0ffa23 Исправлен баг "Malicious entry" - ругался на невалидные имена файлов при извлечении из zip-архива 2022-10-17 23:16:27 +07:00
Book Pauk
de73eec019 Merge tag '1.0.5' into develop
1.0.5
2022-10-17 20:10:15 +07:00
Book Pauk
34311780d2 Merge branch 'release/1.0.5' 2022-10-17 20:10:08 +07:00
Book Pauk
f7e49e62b9 1.0.5 2022-10-17 20:09:52 +07:00
Book Pauk
8281798596 Ускорение выборки из author 2022-10-17 20:08:11 +07:00
Book Pauk
d3917bbc5c Поправлена опечатка 2022-10-17 00:10:27 +07:00
Book Pauk
c7d4522ee9 Merge tag '1.0.4' into develop
1.0.4
2022-10-16 23:22:38 +07:00
Book Pauk
a019adae33 Merge branch 'release/1.0.4' 2022-10-16 23:22:25 +07:00
Book Pauk
90d67b8880 1.0.4 2022-10-16 23:21:59 +07:00
Book Pauk
727a44986d Исправлены цели сборки релиза 2022-10-16 23:20:54 +07:00
Book Pauk
ae8ad29322 Поправлена опечатка 2022-10-16 23:15:50 +07:00
Book Pauk
a9637d1cbd Поправка описания параметров config.json 2022-10-16 22:58:55 +07:00
Book Pauk
f3bc0d2a42 Поправка описания параметров config.json 2022-10-16 22:57:12 +07:00
Book Pauk
65ea6d3d9a Небольшая доработка periodicCleanCache 2022-10-16 22:55:15 +07:00
Book Pauk
4e2760d39e Merge tag '1.0.3' into develop
1.0.3
2022-10-16 18:43:54 +07:00
6 changed files with 18 additions and 10 deletions

View File

@@ -20,7 +20,7 @@ inpx-web
* [Параметры командной строки](#cli) * [Параметры командной строки](#cli)
* [Конфигурация](#config) * [Конфигурация](#config)
* [Удаленная библиотека](#remotelib) * [Удаленная библиотека](#remotelib)
* [Фильтр по аторам и книгам](#filter) * [Фильтр по авторам и книгам](#filter)
* [Настройка https с помощью nginx](#https) * [Настройка https с помощью nginx](#https)
* [Сборка проекта](#build) * [Сборка проекта](#build)
* [Разработка](#development) * [Разработка](#development)
@@ -70,7 +70,7 @@ Options:
// пароль для ограничения доступа к веб-интерфейсу сервера // пароль для ограничения доступа к веб-интерфейсу сервера
"accessPassword": "", "accessPassword": "",
// содержимое кнопки-ссылки (читать), если не задано - кнопка (читать) не показывается // содержимое кнопки-ссылки "(читать)", если не задано - кнопка "(читать)" не показывается
// пример: "https://omnireader.ru/#/reader?url=${DOWNLOAD_LINK}" // пример: "https://omnireader.ru/#/reader?url=${DOWNLOAD_LINK}"
// на место ${DOWNLOAD_LINK} будет подставлена ссылка на скачивание файла книги // на место ${DOWNLOAD_LINK} будет подставлена ссылка на скачивание файла книги
"bookReadLink": "", "bookReadLink": "",
@@ -86,10 +86,12 @@ Options:
"queryCacheEnabled": true, "queryCacheEnabled": true,
// периодичность чистки кеша запросов на сервере, в минутах // периодичность чистки кеша запросов на сервере, в минутах
// 0 - отключить чистку
"cacheCleanInterval": 60, "cacheCleanInterval": 60,
// периодичность проверки изменений .inpx-файла // периодичность проверки изменений .inpx-файла, в минутах
// если файл изменился, поисковая БД будет автоматически пересоздана // если файл изменился, поисковая БД будет автоматически пересоздана
// 0 - отключить проверку
"inpxCheckInterval": 60, "inpxCheckInterval": 60,
// включить(true)/выключить(false) режим работы с малым количеством физической памяти на машине // включить(true)/выключить(false) режим работы с малым количеством физической памяти на машине
@@ -140,13 +142,13 @@ Options:
``` ```
Если сервер работает по протоколу `http://`, то указываем протокол `ws://`, а для `https://` соответственно `wss://`. Если сервер работает по протоколу `http://`, то указываем протокол `ws://`, а для `https://` соответственно `wss://`.
Пароль не обязателен, но необходим в случае, если сервер тоже "смотрит" в интернет, для ограничения доступа к его веб-интерфесу. Пароль не обязателен, но необходим в случае, если сервер тоже "смотрит" в интернет, для ограничения доступа к его веб-интерфейсу.
При указании `"remoteLib": {...}` настройки командной строки --inpx и --lib-dir игнорируются, При указании `"remoteLib": {...}` настройки командной строки --inpx и --lib-dir игнорируются,
т.к. файлы .inpx-индекса и библиотеки используются удаленно. т.к. файлы .inpx-индекса и библиотеки используются удаленно.
<a id="filter" /> <a id="filter" />
### Фильтр по аторам и книгам ### Фильтр по авторам и книгам
При создании поисковой БД во время загрузки и парсинга .inpx-файла, имеется возможность При создании поисковой БД во время загрузки и парсинга .inpx-файла, имеется возможность
отфильтровать авторов и книги, задав определенные критерии. Для этого небходимо создать отфильтровать авторов и книги, задав определенные критерии. Для этого небходимо создать

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "inpx-web", "name": "inpx-web",
"version": "1.0.3", "version": "1.0.6",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "inpx-web", "name": "inpx-web",
"version": "1.0.3", "version": "1.0.6",
"hasInstallScript": true, "hasInstallScript": true,
"license": "CC0-1.0", "license": "CC0-1.0",
"dependencies": { "dependencies": {

View File

@@ -1,6 +1,6 @@
{ {
"name": "inpx-web", "name": "inpx-web",
"version": "1.0.3", "version": "1.0.6",
"author": "Book Pauk <bookpauk@gmail.com>", "author": "Book Pauk <bookpauk@gmail.com>",
"license": "CC0-1.0", "license": "CC0-1.0",
"repository": "bookpauk/inpx-web", "repository": "bookpauk/inpx-web",
@@ -13,7 +13,8 @@
"build:linux": "npm run build:client && node build/prepkg.js linux && pkg -t node16-linux-x64 -C GZip --options max-old-space-size=4096,expose-gc -o dist/linux/inpx-web .", "build:linux": "npm run build:client && node build/prepkg.js linux && pkg -t node16-linux-x64 -C GZip --options max-old-space-size=4096,expose-gc -o dist/linux/inpx-web .",
"build:win": "npm run build:client && node build/prepkg.js win && pkg -t node16-win-x64 -C GZip --options max-old-space-size=4096,expose-gc -o dist/win/inpx-web .", "build:win": "npm run build:client && node build/prepkg.js win && pkg -t node16-win-x64 -C GZip --options max-old-space-size=4096,expose-gc -o dist/win/inpx-web .",
"build:client-dev": "webpack --config build/webpack.dev.config.js", "build:client-dev": "webpack --config build/webpack.dev.config.js",
"release": "npm run build:linux && npm run build:client && node build/release.js", "build:all": "npm run build:linux && npm run build:win",
"release": "npm run build:all && node build/release.js",
"postinstall": "npm run build:client-dev" "postinstall": "npm run build:client-dev"
}, },
"bin": "server/index.js", "bin": "server/index.js",

View File

@@ -317,6 +317,8 @@ class DbSearcher {
async periodicCleanCache() { async periodicCleanCache() {
this.timer = null; this.timer = null;
const cleanInterval = this.config.cacheCleanInterval*60*1000; const cleanInterval = this.config.cacheCleanInterval*60*1000;
if (!cleanInterval)
return;
try { try {
const db = this.db; const db = this.db;

View File

@@ -172,6 +172,9 @@ class WebWorker {
//открываем все таблицы //открываем все таблицы
await db.openAll(); await db.openAll();
//переоткроем таблицу 'author' с бОльшим размером кеша блоков, для ускорения выборки
await db.close({table: 'author'});
await db.open({table: 'author', cacheSize: 100});
this.dbSearcher = new DbSearcher(config, db); this.dbSearcher = new DbSearcher(config, db);

View File

@@ -14,7 +14,7 @@ class ZipReader {
if (this.zip) if (this.zip)
throw new Error('Zip file is already open'); throw new Error('Zip file is already open');
const zip = new StreamZip.async({file: zipFile}); const zip = new StreamZip.async({file: zipFile, skipEntryNameValidation: true});
if (zipEntries) if (zipEntries)
this.zipEntries = await zip.entries(); this.zipEntries = await zip.entries();