From a7a34a0e493fb9cf7924fa639d0fe3b2236b9c43 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Tue, 15 Jan 2019 22:45:24 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20lo?= =?UTF-8?q?adBook(opts.force)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/api/reader.js | 3 +- client/components/Reader/Reader.vue | 51 +++++++++++++++-------------- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/client/api/reader.js b/client/api/reader.js index 28f2de07..aae3dcd9 100644 --- a/client/api/reader.js +++ b/client/api/reader.js @@ -27,6 +27,7 @@ class Reader { callback(response.data); if (response.data.state == 'finish') {//воркер закончил работу, можно скачивать кешированный на сервере файл + callback({step: 4}); const book = await this.loadCachedBook(response.data.path, callback); return Object.assign({}, response.data, {data: book.data}); } @@ -57,7 +58,7 @@ class Reader { const options = { onDownloadProgress: progress => { if (callback) - callback({state: 'loading', step: 4, progress: Math.round((progress.loaded*100)/progress.total)}); + callback({state: 'loading', progress: Math.round((progress.loaded*100)/progress.total)}); } } //загрузка diff --git a/client/components/Reader/Reader.vue b/client/components/Reader/Reader.vue index 8273216c..992b89f6 100644 --- a/client/components/Reader/Reader.vue +++ b/client/components/Reader/Reader.vue @@ -239,35 +239,38 @@ class Reader extends Vue { wasOpened = (wasOpened ? wasOpened : {}); const bookPos = (opts.bookPos !== undefined ? opts.bookPos : wasOpened.bookPos); - // пытаемся загрузить и распарсить книгу в менеджере из локального кеша - const bookParsed = await bookManager.getBook({url: opts.url}, (prog) => { - progress.setState({progress: prog}); - }); - - // если есть в локальном кеше - if (bookParsed) { - this.commit('reader/setOpenedBook', Object.assign({bookPos}, bookManager.metaOnly(bookParsed))); - this.loaderActive = false; - progress.hide(); this.progressActive = false; - return; - } - - // иначе идем на сервер let book = null; - progress.setState({totalSteps: 5}); - // пытаемся загрузить готовый файл с сервера - if (wasOpened.path) { - try { - const resp = await readerApi.loadCachedBook(wasOpened.path, (state) => { - progress.setState(state); - }); - book = Object.assign({}, wasOpened, {data: resp.data}); - } catch (e) { - //молчим + if (!opts.force) { + // пытаемся загрузить и распарсить книгу в менеджере из локального кеша + const bookParsed = await bookManager.getBook({url: opts.url}, (prog) => { + progress.setState({progress: prog}); + }); + + // если есть в локальном кеше + if (bookParsed) { + this.commit('reader/setOpenedBook', Object.assign({bookPos}, bookManager.metaOnly(bookParsed))); + this.loaderActive = false; + progress.hide(); this.progressActive = false; + return; + } + + // иначе идем на сервер + // пытаемся загрузить готовый файл с сервера + if (wasOpened.path) { + try { + const resp = await readerApi.loadCachedBook(wasOpened.path, (state) => { + progress.setState(state); + }); + book = Object.assign({}, wasOpened, {data: resp.data}); + } catch (e) { + //молчим + } } } + progress.setState({totalSteps: 5}); + // не удалось, скачиваем книгу полностью с конвертацией if (!book) { book = await readerApi.loadBook(opts.url, (state) => {