Переглянути джерело

Merge branch 'release/0.6.4'

Book Pauk 6 роки тому
батько
коміт
65690b15da

+ 4 - 1
client/components/Reader/HistoryPage/HistoryPage.vue

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

+ 13 - 2
client/components/Reader/share/bookManager.js

@@ -97,9 +97,10 @@ class BookManager {
         /*if (key) {
         /*if (key) {
             for (let i = 0; i < 1000; i++) {
             for (let i = 0; i < 1000; i++) {
                 const k = this.keyFromUrl(i.toString());
                 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();
         await this.cleanBooks();
 
 
         //очистка позже
         //очистка позже
@@ -370,9 +371,19 @@ class BookManager {
 
 
         Object.assign(mergedRecent, value);
         Object.assign(mergedRecent, value);
         const newRecent = {};
         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)) {
         for (const rec of Object.values(mergedRecent)) {
             if (rec.key) {
             if (rec.key) {
-                await bmRecentStore.setItem(rec.key, rec);
                 newRecent[rec.key] = rec;
                 newRecent[rec.key] = rec;
             }
             }
         }
         }

+ 9 - 4
client/share/utils.js

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

+ 1 - 1
package.json

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

+ 1 - 1
server/index.js

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