|
@@ -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;
|