Добавил loadBook(opts.force)

This commit is contained in:
Book Pauk
2019-01-15 22:45:24 +07:00
parent b06d08eba4
commit a7a34a0e49
2 changed files with 29 additions and 25 deletions

View File

@@ -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)});
}
}
//загрузка

View File

@@ -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) => {