Kaynağa Gözat

Добавляем в url протокол http, если не указан

Book Pauk 6 yıl önce
ebeveyn
işleme
7ab5d4e113
1 değiştirilmiş dosya ile 10 ekleme ve 5 silme
  1. 10 5
      client/components/Reader/Reader.vue

+ 10 - 5
client/components/Reader/Reader.vue

@@ -591,14 +591,19 @@ class Reader extends Vue {
     }
     }
 
 
     loadBook(opts) {
     loadBook(opts) {
-        if (!opts) {
+        if (!opts || !opts.url) {
             this.mostRecentBook();
             this.mostRecentBook();
             return;
             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);
         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;
             this.loaderActive = false;
             return;
             return;
         }
         }
@@ -615,7 +620,7 @@ class Reader extends Vue {
                 progress.setState({state: 'parse'});
                 progress.setState({state: 'parse'});
 
 
                 // есть ли среди недавних
                 // есть ли среди недавних
-                const key = bookManager.keyFromUrl(opts.url);
+                const key = bookManager.keyFromUrl(url);
                 let wasOpened = await bookManager.getRecentBook({key});
                 let wasOpened = await bookManager.getRecentBook({key});
                 wasOpened = (wasOpened ? wasOpened : {});
                 wasOpened = (wasOpened ? wasOpened : {});
                 const bookPos = (opts.bookPos !== undefined ? opts.bookPos : wasOpened.bookPos);
                 const bookPos = (opts.bookPos !== undefined ? opts.bookPos : wasOpened.bookPos);
@@ -626,7 +631,7 @@ class Reader extends Vue {
 
 
                 if (!opts.force) {
                 if (!opts.force) {
                     // пытаемся загрузить и распарсить книгу в менеджере из локального кэша
                     // пытаемся загрузить и распарсить книгу в менеджере из локального кэша
-                    const bookParsed = await bookManager.getBook({url: opts.url}, (prog) => {
+                    const bookParsed = await bookManager.getBook({url}, (prog) => {
                         progress.setState({progress: prog});
                         progress.setState({progress: prog});
                     });
                     });
 
 
@@ -662,7 +667,7 @@ class Reader extends Vue {
                 // не удалось, скачиваем книгу полностью с конвертацией
                 // не удалось, скачиваем книгу полностью с конвертацией
                 let loadCached = true;
                 let loadCached = true;
                 if (!book) {
                 if (!book) {
-                    book = await readerApi.loadBook(opts.url, (state) => {
+                    book = await readerApi.loadBook(url, (state) => {
                         progress.setState(state);
                         progress.setState(state);
                     });
                     });
                     loadCached = false;
                     loadCached = false;