Merge branch 'release/1.2.7'

This commit is contained in:
Book Pauk
2025-02-22 14:44:18 +07:00
10 changed files with 57 additions and 22 deletions

View File

@@ -1,12 +1,15 @@
import wsc from './webSocketConnection';
class Misc {
async loadConfig() {
async loadConfig(_configHash) {
const query = {params: [
'name', 'version', 'mode', 'maxUploadFileSize', 'useExternalBookConverter',
'acceptFileExt', 'bucEnabled', 'branch', 'networkLibraryLink', 'restricted'
]};
const query = {
params: [
'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)));
if (config.error)

View File

@@ -154,8 +154,11 @@ class App {
(async() => {
//загрузим конфиг сервера
try {
const config = await miscApi.loadConfig();
this.commit('config/setConfig', config);
const config = await miscApi.loadConfig(this.config._configHash);
if (!config._useCached)
this.commit('config/setConfig', config);
this.showPage = true;
} catch(e) {
//проверим, не получен ли конфиг ранее

View File

@@ -51,7 +51,7 @@ const tabs = [
['MouseHelpPage', 'Мышь/тачскрин'],
['HotkeysHelpPage', 'Клавиатура'],
['VersionHistoryPage', 'История версий'],
['DonateHelpPage', 'Помочь проекту'],
//['DonateHelpPage', 'Помочь проекту'],
];
const componentOptions = {

View File

@@ -131,7 +131,7 @@ class ReaderDialogs {
async init() {
await this.showWhatsNew();
await this.showDonation();
//await this.showDonation();
}
loadSettings() {

View File

@@ -53,7 +53,7 @@
</q-checkbox>
</div>
<div class="sets-item row">
<!--div class="sets-item row">
<div class="sets-label label">
Уведомление
</div>
@@ -63,7 +63,7 @@
Показывать диалог для сбора пожертвований
</q-tooltip>
</q-checkbox>
</div>
</div-->
<!---------------------------------------------->
<div class="sets-part-header">

View File

@@ -1,4 +1,18 @@
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',
releaseDate: '2024-10-03',

View File

@@ -1,4 +1,3 @@
import miscApi from '../../api/misc';
// initial state
const state = {
name: null,

16
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "liberama",
"version": "1.2.5",
"version": "1.2.6",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "liberama",
"version": "1.2.5",
"version": "1.2.6",
"hasInstallScript": true,
"license": "CC0-1.0",
"dependencies": {
@@ -3364,9 +3364,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001643",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz",
"integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==",
"version": "1.0.30001700",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz",
"integrity": "sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==",
"dev": true,
"funding": [
{
@@ -13709,9 +13709,9 @@
}
},
"caniuse-lite": {
"version": "1.0.30001643",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz",
"integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==",
"version": "1.0.30001700",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz",
"integrity": "sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==",
"dev": true
},
"chalk": {

View File

@@ -1,6 +1,6 @@
{
"name": "liberama",
"version": "1.2.6",
"version": "1.2.7",
"author": "Book Pauk <bookpauk@gmail.com>",
"license": "CC0-1.0",
"repository": "bookpauk/liberama",

View File

@@ -20,6 +20,8 @@ class WebSocketController {
this.readerWorker = new ReaderWorker(config);
this.workerState = new WorkerState();
this.configHash = '';
if (config.bucEnabled) {
this.bucClient = new BUCClient(config);
}
@@ -119,8 +121,22 @@ class WebSocketController {
async getConfig(req, ws) {
if (Array.isArray(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 {
throw new Error('params is not an array');
}