From 3d7ad0dd9a7ca37a1b6cc0f454bc9bb1e659e79b Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Fri, 15 Jul 2022 17:05:17 +0700 Subject: [PATCH 1/6] =?UTF-8?q?=D0=9D=D0=B5=D0=B1=D1=8E=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D1=88=D0=B8=D0=B5=20=D0=BE=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=BE=D0=B1=D0=BB=D0=BE=D0=B6=D0=B5=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/api/reader.js | 12 +++++---- client/components/Reader/share/bookManager.js | 26 ++++++++++++------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/client/api/reader.js b/client/api/reader.js index f93efc39..4ae05dae 100644 --- a/client/api/reader.js +++ b/client/api/reader.js @@ -226,16 +226,18 @@ class Reader { return response; } - async uploadFileBuf(buf, urlCallback) { + makeUrlFromBuf(buf) { const key = utils.toHex(cryptoUtils.sha256(buf)); - const url = `disk://${key}`; + return `disk://${key}`; + } - if (urlCallback) - urlCallback(url); + async uploadFileBuf(buf, url) { + if (!url) + url = this.makeUrlFromBuf(buf); let response; try { - await axios.head(`/upload/${key}`, {headers: {'Cache-Control': 'no-cache'}}); + await axios.head(url.replace('disk://', '/upload/'), {headers: {'Cache-Control': 'no-cache'}}); response = await wsc.message(await wsc.send({action: 'upload-file-touch', url})); } catch (e) { response = await wsc.message(await wsc.send({action: 'upload-file-buf', buf})); diff --git a/client/components/Reader/share/bookManager.js b/client/components/Reader/share/bookManager.js index 193f5c4d..69709162 100644 --- a/client/components/Reader/share/bookManager.js +++ b/client/components/Reader/share/bookManager.js @@ -351,6 +351,8 @@ class BookManager { //cover page let coverPageUrl = ''; if (parsed.coverPageId && parsed.binary[parsed.coverPageId]) { + if (callback) callback(90); + const bin = parsed.binary[parsed.coverPageId]; let dataUrl = `data:${bin.type};base64,${bin.data}`; try { @@ -359,18 +361,22 @@ class BookManager { console.error(e); } - //отправим dataUrl на сервер в /upload - try { - await readerApi.uploadFileBuf(dataUrl, (url) => { - coverPageUrl = url; - }); - } catch (e) { - console.error(e); - } + coverPageUrl = readerApi.makeUrlFromBuf(dataUrl); - //сохраним в storage - if (coverPageUrl) + if (callback) callback(100); + + //далее асинхронно + (async() => { + //отправим dataUrl на сервер в /upload + try { + await readerApi.uploadFileBuf(dataUrl, coverPageUrl); + } catch (e) { + console.error(e); + } + + //сохраним в storage await coversStorage.setData(coverPageUrl, dataUrl); + })(); } const result = Object.assign({}, meta, parsedMeta, { From eb0c7b0a32c512f06b7545a91075c703c25a717d Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Fri, 15 Jul 2022 17:11:58 +0700 Subject: [PATCH 2/6] =?UTF-8?q?=D0=9E=D1=82=D0=BB=D0=B0=D0=B4=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/components/Reader/share/bookManager.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/components/Reader/share/bookManager.js b/client/components/Reader/share/bookManager.js index 69709162..0c1d6cea 100644 --- a/client/components/Reader/share/bookManager.js +++ b/client/components/Reader/share/bookManager.js @@ -356,12 +356,16 @@ class BookManager { const bin = parsed.binary[parsed.coverPageId]; let dataUrl = `data:${bin.type};base64,${bin.data}`; try { +console.time('resizeImage'); dataUrl = await utils.resizeImage(dataUrl, 160, 160, 0.94); +console.timeEnd('resizeImage'); } catch (e) { console.error(e); } +console.time('makeUrlFromBuf'); coverPageUrl = readerApi.makeUrlFromBuf(dataUrl); +console.timeEnd('makeUrlFromBuf'); if (callback) callback(100); From e7fae27031bb65a0e718eabb5f8257570622fb5e Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Fri, 15 Jul 2022 17:17:00 +0700 Subject: [PATCH 3/6] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BB=20=D0=BE?= =?UTF-8?q?=D1=82=D0=BB=D0=B0=D0=B4=D0=BA=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/components/Reader/share/bookManager.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/client/components/Reader/share/bookManager.js b/client/components/Reader/share/bookManager.js index 0c1d6cea..e3aca138 100644 --- a/client/components/Reader/share/bookManager.js +++ b/client/components/Reader/share/bookManager.js @@ -351,23 +351,15 @@ class BookManager { //cover page let coverPageUrl = ''; if (parsed.coverPageId && parsed.binary[parsed.coverPageId]) { - if (callback) callback(90); - const bin = parsed.binary[parsed.coverPageId]; let dataUrl = `data:${bin.type};base64,${bin.data}`; try { -console.time('resizeImage'); dataUrl = await utils.resizeImage(dataUrl, 160, 160, 0.94); -console.timeEnd('resizeImage'); } catch (e) { console.error(e); } -console.time('makeUrlFromBuf'); coverPageUrl = readerApi.makeUrlFromBuf(dataUrl); -console.timeEnd('makeUrlFromBuf'); - - if (callback) callback(100); //далее асинхронно (async() => { From d9b2444c1a07bd85a8b200092e454f42b824d633 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Fri, 15 Jul 2022 17:36:49 +0700 Subject: [PATCH 4/6] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=20=D0=BC=D0=B5=D1=85=D0=B0=D0=BD=D0=B8=D0=B7=D0=BC=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=B8=20=D0=BE=D0=B1=D0=BB?= =?UTF-8?q?=D0=BE=D0=B6=D0=B5=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RecentBooksPage/RecentBooksPage.vue | 39 +++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/client/components/Reader/RecentBooksPage/RecentBooksPage.vue b/client/components/Reader/RecentBooksPage/RecentBooksPage.vue index f7ed8d8d..e96ad2c0 100644 --- a/client/components/Reader/RecentBooksPage/RecentBooksPage.vue +++ b/client/components/Reader/RecentBooksPage/RecentBooksPage.vue @@ -243,6 +243,7 @@ class RecentBooksPage { archive = false; covers = {}; + coversLoadFunc = {}; created() { this.commit = this.$store.commit; @@ -669,20 +670,36 @@ class RecentBooksPage { return false; let loadedCover = this.covers[coverPageUrl]; + + if (loadedCover == 'error') + return false; + if (!loadedCover) { (async() => { - //сначала заглянем в storage - let data = await coversStorage.getData(coverPageUrl); - if (data) { - this.covers[coverPageUrl] = this.makeCoverHtml(data); - } else {//иначе идем на сервер - try { - data = await readerApi.getUploadedFileBuf(coverPageUrl); - await coversStorage.setData(coverPageUrl, data); - this.covers[coverPageUrl] = this.makeCoverHtml(data); - } catch (e) { - console.error(e); + if (this.coversLoadFunc[coverPageUrl]) + return; + + this.coversLoadFunc[coverPageUrl] = (async() => { + //сначала заглянем в storage + let data = await coversStorage.getData(coverPageUrl); + if (data) { + this.covers[coverPageUrl] = this.makeCoverHtml(data); + } else {//иначе идем на сервер + try { + data = await readerApi.getUploadedFileBuf(coverPageUrl); + await coversStorage.setData(coverPageUrl, data); + this.covers[coverPageUrl] = this.makeCoverHtml(data); + } catch (e) { + console.error(e); + this.covers[coverPageUrl] = 'error'; + } } + }); + + try { + await this.coversLoadFunc[coverPageUrl](); + } finally { + this.coversLoadFunc[coverPageUrl] = null; } })(); } From d1d2b07c33bd4ef48ba921026a411014c22165e1 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Fri, 15 Jul 2022 17:42:19 +0700 Subject: [PATCH 5/6] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B8=20=D1=80=D0=B0=D0=B7=D0=BC=D0=B5=D1=82=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/components/Reader/RecentBooksPage/RecentBooksPage.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/components/Reader/RecentBooksPage/RecentBooksPage.vue b/client/components/Reader/RecentBooksPage/RecentBooksPage.vue index e96ad2c0..6687ee26 100644 --- a/client/components/Reader/RecentBooksPage/RecentBooksPage.vue +++ b/client/components/Reader/RecentBooksPage/RecentBooksPage.vue @@ -105,7 +105,7 @@
-
+
From b0de5adbf3ec1049b2e302e8e51a288e1113b401 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Fri, 15 Jul 2022 18:11:24 +0700 Subject: [PATCH 6/6] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D1=8C=20=D1=81=D0=BA=D0=B0=D1=87=D0=B8=D0=B2=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BE=D0=B1=D0=BE=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reader/SettingsPage/SettingsPage.vue | 23 +++++++++++++++++++ .../Reader/SettingsPage/ViewTab/Color.inc | 5 ++++ 2 files changed, 28 insertions(+) diff --git a/client/components/Reader/SettingsPage/SettingsPage.vue b/client/components/Reader/SettingsPage/SettingsPage.vue index ae158e5d..6564e546 100644 --- a/client/components/Reader/SettingsPage/SettingsPage.vue +++ b/client/components/Reader/SettingsPage/SettingsPage.vue @@ -5,6 +5,8 @@
+ +
+ + + Скачать выбранные обои + +