diff --git a/client/components/Reader/Reader.vue b/client/components/Reader/Reader.vue index 80b2a5b0..d6262cb6 100644 --- a/client/components/Reader/Reader.vue +++ b/client/components/Reader/Reader.vue @@ -591,14 +591,19 @@ class Reader extends Vue { } loadBook(opts) { - if (!opts) { + if (!opts || !opts.url) { this.mostRecentBook(); return; } + let url = opts.url; + if ((url.indexOf('http://') != 0) && (url.indexOf('https://') != 0) && + (url.indexOf('file://') != 0)) + url = 'http://' + url; + // уже просматривается сейчас const lastBook = (this.$refs.page ? this.$refs.page.lastBook : null); - if (!opts.force && lastBook && lastBook.url == opts.url && bookManager.hasBookParsed(lastBook)) { + if (!opts.force && lastBook && lastBook.url == url && bookManager.hasBookParsed(lastBook)) { this.loaderActive = false; return; } @@ -615,7 +620,7 @@ class Reader extends Vue { progress.setState({state: 'parse'}); // есть ли среди недавних - const key = bookManager.keyFromUrl(opts.url); + const key = bookManager.keyFromUrl(url); let wasOpened = await bookManager.getRecentBook({key}); wasOpened = (wasOpened ? wasOpened : {}); const bookPos = (opts.bookPos !== undefined ? opts.bookPos : wasOpened.bookPos); @@ -626,7 +631,7 @@ class Reader extends Vue { if (!opts.force) { // пытаемся загрузить и распарсить книгу в менеджере из локального кэша - const bookParsed = await bookManager.getBook({url: opts.url}, (prog) => { + const bookParsed = await bookManager.getBook({url}, (prog) => { progress.setState({progress: prog}); }); @@ -662,7 +667,7 @@ class Reader extends Vue { // не удалось, скачиваем книгу полностью с конвертацией let loadCached = true; if (!book) { - book = await readerApi.loadBook(opts.url, (state) => { + book = await readerApi.loadBook(url, (state) => { progress.setState(state); }); loadCached = false;