Merge branch 'release/1.2.7'
This commit is contained in:
@@ -1,12 +1,15 @@
|
|||||||
import wsc from './webSocketConnection';
|
import wsc from './webSocketConnection';
|
||||||
|
|
||||||
class Misc {
|
class Misc {
|
||||||
async loadConfig() {
|
async loadConfig(_configHash) {
|
||||||
|
|
||||||
const query = {params: [
|
const query = {
|
||||||
'name', 'version', 'mode', 'maxUploadFileSize', 'useExternalBookConverter',
|
params: [
|
||||||
'acceptFileExt', 'bucEnabled', 'branch', 'networkLibraryLink', 'restricted'
|
'name', 'version', 'mode', 'maxUploadFileSize', 'useExternalBookConverter',
|
||||||
]};
|
'acceptFileExt', 'bucEnabled', 'branch', 'networkLibraryLink', 'restricted'
|
||||||
|
],
|
||||||
|
_configHash,
|
||||||
|
};
|
||||||
|
|
||||||
const config = await wsc.message(await wsc.send(Object.assign({action: 'get-config'}, query)));
|
const config = await wsc.message(await wsc.send(Object.assign({action: 'get-config'}, query)));
|
||||||
if (config.error)
|
if (config.error)
|
||||||
|
|||||||
@@ -154,8 +154,11 @@ class App {
|
|||||||
(async() => {
|
(async() => {
|
||||||
//загрузим конфиг сервера
|
//загрузим конфиг сервера
|
||||||
try {
|
try {
|
||||||
const config = await miscApi.loadConfig();
|
const config = await miscApi.loadConfig(this.config._configHash);
|
||||||
this.commit('config/setConfig', config);
|
|
||||||
|
if (!config._useCached)
|
||||||
|
this.commit('config/setConfig', config);
|
||||||
|
|
||||||
this.showPage = true;
|
this.showPage = true;
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
//проверим, не получен ли конфиг ранее
|
//проверим, не получен ли конфиг ранее
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ const tabs = [
|
|||||||
['MouseHelpPage', 'Мышь/тачскрин'],
|
['MouseHelpPage', 'Мышь/тачскрин'],
|
||||||
['HotkeysHelpPage', 'Клавиатура'],
|
['HotkeysHelpPage', 'Клавиатура'],
|
||||||
['VersionHistoryPage', 'История версий'],
|
['VersionHistoryPage', 'История версий'],
|
||||||
['DonateHelpPage', 'Помочь проекту'],
|
//['DonateHelpPage', 'Помочь проекту'],
|
||||||
];
|
];
|
||||||
|
|
||||||
const componentOptions = {
|
const componentOptions = {
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ class ReaderDialogs {
|
|||||||
|
|
||||||
async init() {
|
async init() {
|
||||||
await this.showWhatsNew();
|
await this.showWhatsNew();
|
||||||
await this.showDonation();
|
//await this.showDonation();
|
||||||
}
|
}
|
||||||
|
|
||||||
loadSettings() {
|
loadSettings() {
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
</q-checkbox>
|
</q-checkbox>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="sets-item row">
|
<!--div class="sets-item row">
|
||||||
<div class="sets-label label">
|
<div class="sets-label label">
|
||||||
Уведомление
|
Уведомление
|
||||||
</div>
|
</div>
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
Показывать диалог для сбора пожертвований
|
Показывать диалог для сбора пожертвований
|
||||||
</q-tooltip>
|
</q-tooltip>
|
||||||
</q-checkbox>
|
</q-checkbox>
|
||||||
</div>
|
</div-->
|
||||||
|
|
||||||
<!---------------------------------------------->
|
<!---------------------------------------------->
|
||||||
<div class="sets-part-header">
|
<div class="sets-part-header">
|
||||||
|
|||||||
@@ -1,4 +1,18 @@
|
|||||||
export const versionHistory = [
|
export const versionHistory = [
|
||||||
|
{
|
||||||
|
version: '1.2.7',
|
||||||
|
releaseDate: '2025-02-22',
|
||||||
|
showUntil: '2025-02-21',
|
||||||
|
content:
|
||||||
|
`
|
||||||
|
<ul>
|
||||||
|
<li>отключена форма для сбора донатов</li>
|
||||||
|
<li>мелкие оптимизации</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
`
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
version: '1.2.6',
|
version: '1.2.6',
|
||||||
releaseDate: '2024-10-03',
|
releaseDate: '2024-10-03',
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
import miscApi from '../../api/misc';
|
|
||||||
// initial state
|
// initial state
|
||||||
const state = {
|
const state = {
|
||||||
name: null,
|
name: null,
|
||||||
|
|||||||
16
package-lock.json
generated
16
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "liberama",
|
"name": "liberama",
|
||||||
"version": "1.2.5",
|
"version": "1.2.6",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "liberama",
|
"name": "liberama",
|
||||||
"version": "1.2.5",
|
"version": "1.2.6",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "CC0-1.0",
|
"license": "CC0-1.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -3364,9 +3364,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/caniuse-lite": {
|
"node_modules/caniuse-lite": {
|
||||||
"version": "1.0.30001643",
|
"version": "1.0.30001700",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz",
|
||||||
"integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==",
|
"integrity": "sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -13709,9 +13709,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"caniuse-lite": {
|
"caniuse-lite": {
|
||||||
"version": "1.0.30001643",
|
"version": "1.0.30001700",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz",
|
||||||
"integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==",
|
"integrity": "sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"chalk": {
|
"chalk": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "liberama",
|
"name": "liberama",
|
||||||
"version": "1.2.6",
|
"version": "1.2.7",
|
||||||
"author": "Book Pauk <bookpauk@gmail.com>",
|
"author": "Book Pauk <bookpauk@gmail.com>",
|
||||||
"license": "CC0-1.0",
|
"license": "CC0-1.0",
|
||||||
"repository": "bookpauk/liberama",
|
"repository": "bookpauk/liberama",
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ class WebSocketController {
|
|||||||
this.readerWorker = new ReaderWorker(config);
|
this.readerWorker = new ReaderWorker(config);
|
||||||
this.workerState = new WorkerState();
|
this.workerState = new WorkerState();
|
||||||
|
|
||||||
|
this.configHash = '';
|
||||||
|
|
||||||
if (config.bucEnabled) {
|
if (config.bucEnabled) {
|
||||||
this.bucClient = new BUCClient(config);
|
this.bucClient = new BUCClient(config);
|
||||||
}
|
}
|
||||||
@@ -119,8 +121,22 @@ class WebSocketController {
|
|||||||
async getConfig(req, ws) {
|
async getConfig(req, ws) {
|
||||||
if (Array.isArray(req.params)) {
|
if (Array.isArray(req.params)) {
|
||||||
const paramsSet = new Set(req.params);
|
const paramsSet = new Set(req.params);
|
||||||
|
const _configHash = req._configHash;
|
||||||
|
|
||||||
this.send(_.pick(this.config, this.config.webConfigParams.filter(x => paramsSet.has(x))), req, ws);
|
let response = {_useCached: true};
|
||||||
|
|
||||||
|
//оптимизация, чтобы не отдавал большой конфиг каждый раз при обновлении страницы
|
||||||
|
if (!_configHash || _configHash !== this.configHash) {
|
||||||
|
if (!this.configHash) {
|
||||||
|
const webConfig = _.pick(this.config, this.config.webConfigParams);
|
||||||
|
this.configHash = await utils.getBufHash(Buffer.from(JSON.stringify(webConfig)), 'sha256', 'hex');
|
||||||
|
}
|
||||||
|
|
||||||
|
response = _.pick(this.config, this.config.webConfigParams.filter(x => paramsSet.has(x)));
|
||||||
|
response._configHash = this.configHash;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.send(response, req, ws);
|
||||||
} else {
|
} else {
|
||||||
throw new Error('params is not an array');
|
throw new Error('params is not an array');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user