Skip to content

Commit 7fe0bce

Browse files
committed
Merge branch 'release/1.4.0'
2 parents 90c3faa + b8589ea commit 7fe0bce

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+3317
-2216
lines changed

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
1.4.0 / 2022-12-07
2+
------------------
3+
- Добавлена возможность расширенного поиска (раздел "</>"). Поиск не оптимизирован и может сильно нагружать сервер.
4+
Отключить можно в конфиге, параметр extendedSearch
5+
- Улучшение поддержки reverse-proxy, в конфиг добавлены параметры server.root и opds.root для встраивания inpx-web в уже существующий веб-сервер
6+
- В настройки веб-интерфейса добавлена опция "Скачивать книги в виде zip-архива"
7+
- Исправлен баг "Android-читалки не очень хорошо работают с OPDS" (#4)
8+
- Добавлена сборка релизов для Linux arm64
9+
- В readme добавлена ссылка для донатов: [отблагодарить автора проекта](https://donatty.com/liberama)
10+
111
1.3.3 / 2022-11-28
212
------------------
313

README.md

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ OPDS-сервер доступен по адресу [http://127.0.0.1:12380/opd
1919
Для указания местоположения .inpx-файла или папки с файлами библиотеки, воспользуйтесь [параметрами командной строки](#cli).
2020
Дополнительные параметры сервера настраиваются в [конфигурационном файле](#config).
2121

22+
[Отблагодарить автора проекта](https://donatty.com/liberama)
23+
2224
##
2325
* [Возможности программы](#capabilities)
2426
* [Использование](#usage)
@@ -87,6 +89,11 @@ Options:
8789
// 0 - отключить таймаут, время доступа по паролю не ограничено
8890
"accessTimeout": 0,
8991

92+
// включить(true)/выключить(false) возможность расширенного поиска (раздел "</>")
93+
// расширенный поиск не оптимизирован, поэтому может сильно нагружать сервер
94+
// чтобы ускорить поиск, увеличьте параметр dbCacheSize
95+
"extendedSearch": true,
96+
9097
// содержимое кнопки-ссылки "(читать)", если не задано - кнопка "(читать)" не показывается
9198
// пример: "https://omnireader.ru/#/reader?url=${DOWNLOAD_LINK}"
9299
// на место ${DOWNLOAD_LINK} будет подставлена ссылка на скачивание файла книги
@@ -99,7 +106,7 @@ Options:
99106
// если надо кешировать всю БД, можно поставить значение от 1000 и больше
100107
"dbCacheSize": 5,
101108

102-
// максимальный размер в байтах директории закешированных файлов в <раб.дир>/public/files
109+
// максимальный размер в байтах директории закешированных файлов в <раб.дир>/public-files
103110
// чистка каждый час
104111
"maxFilesDirSize": 1073741824,
105112

@@ -140,17 +147,23 @@ Options:
140147
"remoteLib": false,
141148

142149
// настройки веб-сервера
150+
// парамертр root указывает путь для кореневой страницы inpx-web
151+
// например для "root": "/library", веб-интерфейс будет доступен по адресу http://127.0.0.1:12380/library
152+
// root необходим при настройке reverse-proxy и встраивании inpx-web в уже существующий сервер
143153
"server": {
144154
"host": "0.0.0.0",
145-
"port": "12380"
155+
"port": "12380",
156+
"root": ""
146157
},
147158

148159
// настройки opds-сервера
149160
// user, password используются для Basic HTTP authentication
161+
// параметр root задает путь для доступа к opds-серверу
150162
"opds": {
151163
"enabled": true,
152164
"user": "",
153-
"password": ""
165+
"password": "",
166+
"root": "/opds"
154167
}
155168
}
156169
```
@@ -198,7 +211,6 @@ Options:
198211
{
199212
"info": {
200213
"collection": "Новое название коллекции",
201-
"structure": "",
202214
"version": "1.0.0"
203215
},
204216
"filter": "(r) => r.del == 0",
@@ -280,6 +292,8 @@ sudo service nginx reload
280292
Сборка только в среде Linux.
281293
Необходима версия node.js не ниже 16.
282294

295+
Для сборки linux-arm64 необходимо предварительно установить [QEMU](https://wiki.debian.org/QemuUserEmulation).
296+
283297
```sh
284298
git clone https://github.com/bookpauk/inpx-web
285299
cd inpx-web

build/appdir.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = 'app0b58f8bd9fbfa95504ba';

build/prepkg.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ const publicDir = `${tmpDir}/public`;
1212
const outDir = `${distDir}/${platform}`;
1313

1414
async function build() {
15-
if (platform != 'linux' && platform != 'win' && platform != 'macos')
16-
throw new Error(`Unknown platform: ${platform}`);
15+
if (!platform)
16+
throw new Error(`Please set platform`);
1717

1818
await fs.emptyDir(outDir);
1919

build/release.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ async function main() {
2222
await fs.emptyDir(outDir);
2323
await makeRelease('win');
2424
await makeRelease('linux');
25+
await makeRelease('linux-arm64');
2526
await makeRelease('macos');
2627
} catch(e) {
2728
console.error(e);

build/webpack.base.config.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ const path = require('path');
22
const DefinePlugin = require('webpack').DefinePlugin;
33
const { VueLoaderPlugin } = require('vue-loader');
44

5+
const appdir = require('./appdir');
6+
57
const clientDir = path.resolve(__dirname, '../client');
68

79
module.exports = {
@@ -12,7 +14,7 @@ module.exports = {
1214
},
1315
entry: [`${clientDir}/main.js`],
1416
output: {
15-
publicPath: '/app/',
17+
publicPath: `/${appdir}/`,
1618
clean: true
1719
},
1820

build/webpack.dev.config.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,8 @@ module.exports = merge(baseWpConfig, {
1616
mode: 'development',
1717
devtool: 'inline-source-map',
1818
output: {
19-
path: `${publicDir}/app`,
19+
path: `${publicDir}${baseWpConfig.output.publicPath}`,
2020
filename: 'bundle.js',
21-
clean: true
2221
},
2322

2423
module: {

build/webpack.prod.config.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@ fs.emptyDirSync(publicDir);
1818
module.exports = merge(baseWpConfig, {
1919
mode: 'production',
2020
output: {
21-
path: `${publicDir}/app`,
21+
path: `${publicDir}${baseWpConfig.output.publicPath}`,
2222
filename: 'bundle.[contenthash].js',
23-
clean: true
2423
},
2524
module: {
2625
rules: [

client/components/Api/Api.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,10 @@ class Api {
235235
return await this.request({action: 'search', from, query}, 30);
236236
}
237237
238+
async bookSearch(query) {
239+
return await this.request({action: 'bookSearch', query}, 30);
240+
}
241+
238242
async getAuthorBookList(authorId) {
239243
return await this.request({action: 'get-author-book-list', authorId});
240244
}
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
import WebSocketConnection from '../../../server/core/WebSocketConnection';
22

3-
export default new WebSocketConnection();
3+
const protocol = (window.location.protocol == 'https:' ? 'wss:' : 'ws:');
4+
let url = `${protocol}//${window.location.host}${window.location.pathname}`;
5+
url += (url[url.length - 1] === '/' ? 'ws' : '/ws');
6+
7+
export default new WebSocketConnection(url);

0 commit comments

Comments
 (0)