Решение проблемы скачивания файлов в режиме "Удаленная библиотека"

(запрашивался не тот файл из-за несовпадения bookId)
This commit is contained in:
Book Pauk
2022-11-13 01:59:42 +07:00
parent 4d3661b758
commit 2db2b8cff4
8 changed files with 43 additions and 26 deletions

View File

@@ -354,7 +354,7 @@ class WebWorker {
}
}
async restoreBook(bookId, bookPath, downFileName) {
async restoreBook(bookUid, bookPath, downFileName) {
const db = this.db;
let extractedFile = '';
@@ -364,7 +364,7 @@ class WebWorker {
extractedFile = await this.extractBook(bookPath);
hash = await utils.getFileHash(extractedFile, 'sha256', 'hex');
} else {
hash = await this.remoteLib.downloadBook(bookId);
hash = await this.remoteLib.downloadBook(bookUid);
}
const link = `${this.config.filesPathStatic}/${hash}`;
@@ -402,7 +402,7 @@ class WebWorker {
return link;
}
async getBookLink(bookId) {
async getBookLink(bookUid) {
this.checkMyState();
try {
@@ -410,11 +410,11 @@ class WebWorker {
let link = '';
//найдем bookPath и downFileName
let rows = await db.select({table: 'book', where: `@@id(${db.esc(bookId)})`});
let rows = await db.select({table: 'book', where: `@@hash('_uid', ${db.esc(bookUid)})`});
if (!rows.length)
throw new Error('404 Файл не найден');
const book = rows[0];
const book = rows[0];
let downFileName = book.file;
const author = book.author.split(',');
const at = [author[0], book.title];
@@ -443,7 +443,7 @@ class WebWorker {
}
if (!link) {
link = await this.restoreBook(bookId, bookPath, downFileName)
link = await this.restoreBook(bookUid, bookPath, downFileName)
}
if (!link)
@@ -458,13 +458,13 @@ class WebWorker {
}
}
async getBookInfo(bookId) {
async getBookInfo(bookUid) {
this.checkMyState();
try {
const db = this.db;
let bookInfo = await this.getBookLink(bookId);
let bookInfo = await this.getBookLink(bookUid);
const hash = path.basename(bookInfo.link);
const bookFile = `${this.config.filesDir}/${hash}`;
const bookFileInfo = `${bookFile}.i.json`;
@@ -472,7 +472,9 @@ class WebWorker {
const restoreBookInfo = async(info) => {
const result = {};
const rows = await db.select({table: 'book', where: `@@id(${db.esc(bookId)})`});
let rows = await db.select({table: 'book', where: `@@hash('_uid', ${db.esc(bookUid)})`});
if (!rows.length)
throw new Error('404 Файл не найден');
const book = rows[0];
result.book = book;