Compare commits

...

14 Commits
0.6.0 ... 0.6.4

Author SHA1 Message Date
Book Pauk
65690b15da Merge branch 'release/0.6.4' 2019-03-24 14:33:09 +07:00
Book Pauk
8ba07812ce Оптимизация 2019-03-24 14:32:08 +07:00
Book Pauk
2dd8f35001 Версия 0.6.4 2019-03-24 14:04:46 +07:00
Book Pauk
2d15aa88d4 Исправления багов 2019-03-24 14:04:21 +07:00
Book Pauk
e4257e50f0 Merge tag '0.6.3' into develop
0.6.3
2019-03-24 12:52:10 +07:00
Book Pauk
33ebc07915 Merge branch 'release/0.6.3' 2019-03-24 12:51:55 +07:00
Book Pauk
bc07299626 Версия 0.6.3 2019-03-24 12:51:27 +07:00
Book Pauk
25e8aeef53 Merge tag '0.6.2' into develop
0.6.2
2019-03-24 12:28:43 +07:00
Book Pauk
a2ed34abf3 Merge branch 'release/0.6.2' 2019-03-24 12:28:28 +07:00
Book Pauk
36a7b7b91a Версия 0.6.2, поправка мелкого бага 2019-03-24 12:27:43 +07:00
Book Pauk
b4e8b7375f Merge tag '0.6.1' into develop
0.6.1
2019-03-24 12:15:16 +07:00
Book Pauk
153b635bdb Merge branch 'release/0.6.1' 2019-03-24 12:15:05 +07:00
Book Pauk
80af72465e Версия 0.6.1, поправлен баг 2019-03-24 12:14:24 +07:00
Book Pauk
a91a8f9993 Merge tag '0.6.0' into develop
0.6.0
2019-03-24 12:07:41 +07:00
8 changed files with 38 additions and 13 deletions

View File

@@ -248,7 +248,10 @@ class HistoryPage extends Vue {
}
isUrl(url) {
return (url.indexOf('file://') != 0);
if (url)
return (url.indexOf('file://') != 0);
else
return false;
}
close() {

View File

@@ -75,7 +75,12 @@ class ServerStorage extends Vue {
async serverSyncEnabledChanged() {
if (this.serverSyncEnabled) {
this.prevServerStorageKey = null;
await this.serverStorageKeyChanged(true);
if (!this.serverStorageKey) {
//генерируем новый ключ
await this.generateNewServerStorageKey();
} else {
await this.serverStorageKeyChanged(true);
}
}
}

View File

@@ -751,12 +751,12 @@ class SettingsPage extends Vue {
dangerouslyUseHTMLString: true,
confirmButtonText: 'OK',
cancelButtonText: 'Отмена',
inputValidator: (str) => { if (str && str.length == 44) return true; else return 'Неверный формат ключа'; },
inputValidator: (str) => { if (str && utils.fromBase58(str).length == 32) return true; else return 'Неверный формат ключа'; },
inputValue: (key && _.isString(key) ? key : null),
type: 'warning'
});
if (result.value && result.value.length == 44) {
if (result.value && utils.fromBase58(result.value).length == 32) {
this.commit('reader/setServerStorageKey', result.value);
}
} catch (e) {

View File

@@ -97,9 +97,10 @@ class BookManager {
/*if (key) {
for (let i = 0; i < 1000; i++) {
const k = this.keyFromUrl(i.toString());
this.recent[k] = Object.assign({}, _.cloneDeep(this.recent[key]), {key: k, touchTime: Date.now() - 1000000});
this.recent[k] = Object.assign({}, _.cloneDeep(this.recent[key]), {key: k, touchTime: Date.now() - 1000000, url: utils.randomHexString(300)});
}
}*/
await this.cleanBooks();
//очистка позже
@@ -370,9 +371,19 @@ class BookManager {
Object.assign(mergedRecent, value);
const newRecent = {};
//"ленивое" обновление хранилища
(async() => {
for (const rec of Object.values(mergedRecent)) {
if (rec.key) {
await bmRecentStore.setItem(rec.key, rec);
await utils.sleep(1);
}
}
})();
for (const rec of Object.values(mergedRecent)) {
if (rec.key) {
await bmRecentStore.setItem(rec.key, rec);
newRecent[rec.key] = rec;
}
}

View File

@@ -2,13 +2,12 @@ import _ from 'lodash';
import baseX from 'base-x';
import PAKO from 'pako';
import {Buffer} from 'safe-buffer';
import sjclWrapper from './sjclWrapper';
export const pako = PAKO;
const BASE58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
const BASE64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
const bs58 = baseX(BASE58);
const bs64 = baseX(BASE64);
export function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
@@ -86,12 +85,18 @@ export function fromBase58(data) {
return bs58.decode(data);
}
//base-x слишком тормозит, используем sjcl
export function toBase64(data) {
return bs64.encode(Buffer.from(data));
return sjclWrapper.codec.base64.fromBits(
sjclWrapper.codec.bytes.toBits(Buffer.from(data))
);
}
//base-x слишком тормозит, используем sjcl
export function fromBase64(data) {
return bs64.decode(data);
return Buffer.from(sjclWrapper.codec.bytes.fromBits(
sjclWrapper.codec.base64.toBits(data)
));
}
export function getObjDiff(oldObj, newObj) {

View File

@@ -1,6 +1,6 @@
{
"name": "Liberama",
"version": "0.6.0",
"version": "0.6.4",
"engines": {
"node": ">=10.0.0"
},

View File

@@ -22,7 +22,8 @@ class ConnManager {
const dbFileName = this.config.dataDir + '/' + poolConfig.fileName;
//бэкап
await fs.copy(dbFileName, `${dbFileName}.bak`);
if (await fs.pathExists(dbFileName))
await fs.copy(dbFileName, `${dbFileName}.bak`);
const connPool = new SqliteConnectionPool();
await connPool.open(poolConfig.connCount, dbFileName);

View File

@@ -51,7 +51,7 @@ async function main() {
}
app.use(compression({ level: 1 }));
app.use(express.json());
app.use(express.json({limit: '10mb'}));
if (devModule)
devModule.logQueries(app);