diff --git a/apps/readest-app/public/locales/ar/translation.json b/apps/readest-app/public/locales/ar/translation.json index 3277c652..6a78604c 100644 --- a/apps/readest-app/public/locales/ar/translation.json +++ b/apps/readest-app/public/locales/ar/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "جارٍ تنزيل {{downloaded}} من {{contentLength}}", "Download finished": "اكتمل التنزيل", "DOWNLOAD & INSTALL": "تنزيل وتثبيت", - "Changelog:": "سجل التغييرات:" + "Changelog:": "سجل التغييرات:", + "Redownload": "إعادة التنزيل" } diff --git a/apps/readest-app/public/locales/de/translation.json b/apps/readest-app/public/locales/de/translation.json index e59d6811..bbd571f0 100644 --- a/apps/readest-app/public/locales/de/translation.json +++ b/apps/readest-app/public/locales/de/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "Herunterladen {{downloaded}} von {{contentLength}}", "Download finished": "Download abgeschlossen", "DOWNLOAD & INSTALL": "HERUNTERLADEN & INSTALLIEREN", - "Changelog:": "Änderungsprotokoll:" + "Changelog:": "Änderungsprotokoll:", + "Redownload": "Neu herunterladen" } diff --git a/apps/readest-app/public/locales/el/translation.json b/apps/readest-app/public/locales/el/translation.json index 81de62ca..f0a67d81 100644 --- a/apps/readest-app/public/locales/el/translation.json +++ b/apps/readest-app/public/locales/el/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "Κατεβάζω {{downloaded}} από {{contentLength}}", "Download finished": "Η λήψη ολοκληρώθηκε", "DOWNLOAD & INSTALL": "ΛΗΨΗ & ΕΓΚΑΤΑΣΤΑΣΗ", - "Changelog:": "Αλλαγές:" + "Changelog:": "Αλλαγές:", + "Redownload": "Επαναφόρτωση" } diff --git a/apps/readest-app/public/locales/es/translation.json b/apps/readest-app/public/locales/es/translation.json index 9dedbbb8..a38b8615 100644 --- a/apps/readest-app/public/locales/es/translation.json +++ b/apps/readest-app/public/locales/es/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "Descargando {{downloaded}} de {{contentLength}}", "Download finished": "Descarga finalizada", "DOWNLOAD & INSTALL": "DESCARGAR E INSTALAR", - "Changelog:": "Notas de la versión:" + "Changelog:": "Notas de la versión:", + "Redownload": "Volver a descargar" } diff --git a/apps/readest-app/public/locales/fr/translation.json b/apps/readest-app/public/locales/fr/translation.json index a550569b..524d6826 100644 --- a/apps/readest-app/public/locales/fr/translation.json +++ b/apps/readest-app/public/locales/fr/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "Téléchargement {{downloaded}} sur {{contentLength}}", "Download finished": "Téléchargement terminé", "DOWNLOAD & INSTALL": "TÉLÉCHARGER ET INSTALLER", - "Changelog:": "Journal des modifications :" + "Changelog:": "Journal des modifications :", + "Redownload": "Télécharger à nouveau" } diff --git a/apps/readest-app/public/locales/hi/translation.json b/apps/readest-app/public/locales/hi/translation.json index 1bcafc45..13706af3 100644 --- a/apps/readest-app/public/locales/hi/translation.json +++ b/apps/readest-app/public/locales/hi/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "डाउनलोड कर रहा है {{downloaded}} का {{contentLength}}", "Download finished": "डाउनलोड पूरा हुआ", "DOWNLOAD & INSTALL": "डाउनलोड और इंस्टॉल करें", - "Changelog:": "चेंजलॉग:" + "Changelog:": "चेंजलॉग:", + "Redownload": "री-डाउनलोड करें" } diff --git a/apps/readest-app/public/locales/id/translation.json b/apps/readest-app/public/locales/id/translation.json index 167c54b4..4070d6a5 100644 --- a/apps/readest-app/public/locales/id/translation.json +++ b/apps/readest-app/public/locales/id/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "Mengunduh {{downloaded}} dari {{contentLength}}", "Download finished": "Unduhan selesai", "DOWNLOAD & INSTALL": "UNDUH & INSTAL", - "Changelog:": "Catatan Perubahan:" + "Changelog:": "Catatan Perubahan:", + "Redownload": "Unduh Ulang" } diff --git a/apps/readest-app/public/locales/it/translation.json b/apps/readest-app/public/locales/it/translation.json index e4a0e171..5b720a16 100644 --- a/apps/readest-app/public/locales/it/translation.json +++ b/apps/readest-app/public/locales/it/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "Scaricando {{downloaded}} di {{contentLength}}", "Download finished": "Download completato", "DOWNLOAD & INSTALL": "SCARICA E INSTALLA", - "Changelog:": "Note di rilascio:" + "Changelog:": "Note di rilascio:", + "Redownload": "Scarica di nuovo" } diff --git a/apps/readest-app/public/locales/ja/translation.json b/apps/readest-app/public/locales/ja/translation.json index f9650329..ebaa22b1 100644 --- a/apps/readest-app/public/locales/ja/translation.json +++ b/apps/readest-app/public/locales/ja/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "ダウンロード中 {{downloaded}} / {{contentLength}}", "Download finished": "ダウンロード完了", "DOWNLOAD & INSTALL": "更新", - "Changelog:": "変更ログ:" + "Changelog:": "変更ログ:", + "Redownload": "再ダウンロード" } diff --git a/apps/readest-app/public/locales/ko/translation.json b/apps/readest-app/public/locales/ko/translation.json index f438dab1..091aaa75 100644 --- a/apps/readest-app/public/locales/ko/translation.json +++ b/apps/readest-app/public/locales/ko/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "다운로드 중 {{downloaded}} / {{contentLength}}", "Download finished": "다운로드 완료", "DOWNLOAD & INSTALL": "다운로드 및 설치", - "Changelog:": "변경 로그:" + "Changelog:": "변경 로그:", + "Redownload": "다시 다운로드" } diff --git a/apps/readest-app/public/locales/pl/translation.json b/apps/readest-app/public/locales/pl/translation.json index 65fb1858..80129293 100644 --- a/apps/readest-app/public/locales/pl/translation.json +++ b/apps/readest-app/public/locales/pl/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "Pobieranie {{downloaded}} z {{contentLength}}", "Download finished": "Pobieranie zakończone", "DOWNLOAD & INSTALL": "POBIERZ I ZAINSTALUJ", - "Changelog:": "Dziennik zmian:" + "Changelog:": "Dziennik zmian:", + "Redownload": "Pobierz ponownie" } diff --git a/apps/readest-app/public/locales/pt/translation.json b/apps/readest-app/public/locales/pt/translation.json index 7100ec87..057e5f69 100644 --- a/apps/readest-app/public/locales/pt/translation.json +++ b/apps/readest-app/public/locales/pt/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "Baixando {{downloaded}} de {{contentLength}}", "Download finished": "Download concluído", "DOWNLOAD & INSTALL": "BAIXAR E INSTALAR", - "Changelog:": "Notas de versão:" + "Changelog:": "Notas de versão:", + "Redownload": "Baixar novamente" } diff --git a/apps/readest-app/public/locales/ru/translation.json b/apps/readest-app/public/locales/ru/translation.json index 851ae877..89cfa003 100644 --- a/apps/readest-app/public/locales/ru/translation.json +++ b/apps/readest-app/public/locales/ru/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "Скачано {{downloaded}} из {{contentLength}}", "Download finished": "Загрузка завершена", "DOWNLOAD & INSTALL": "СКАЧАТЬ И УСТАНОВИТЬ", - "Changelog:": "Изменения:" + "Changelog:": "Изменения:", + "Redownload": "Переустановить" } diff --git a/apps/readest-app/public/locales/tr/translation.json b/apps/readest-app/public/locales/tr/translation.json index 784eb0b0..cdf6b4ea 100644 --- a/apps/readest-app/public/locales/tr/translation.json +++ b/apps/readest-app/public/locales/tr/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "İndiriliyor {{downloaded}}/{{contentLength}}", "Download finished": "İndirme tamamlandı", "DOWNLOAD & INSTALL": "İNDİR & YÜKLE", - "Changelog:": "Değişiklik Günlüğü:" + "Changelog:": "Değişiklik Günlüğü:", + "Redownload": "Yeniden İndir" } diff --git a/apps/readest-app/public/locales/uk/translation.json b/apps/readest-app/public/locales/uk/translation.json index 2e0d17b6..8f5713d3 100644 --- a/apps/readest-app/public/locales/uk/translation.json +++ b/apps/readest-app/public/locales/uk/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "Завантаження {{downloaded}} з {{contentLength}}", "Download finished": "Завантаження завершено", "DOWNLOAD & INSTALL": "ЗАВАНТАЖИТИ І ВСТАНОВИТИ", - "Changelog:": "Журнал змін:" + "Changelog:": "Журнал змін:", + "Redownload": "Завантажити знову" } diff --git a/apps/readest-app/public/locales/vi/translation.json b/apps/readest-app/public/locales/vi/translation.json index c906485b..c39d66cb 100644 --- a/apps/readest-app/public/locales/vi/translation.json +++ b/apps/readest-app/public/locales/vi/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "Đang tải {{downloaded}} trong {{contentLength}}", "Download finished": "Tải xuống hoàn tất", "DOWNLOAD & INSTALL": "TẢI XUỐNG & CÀI ĐẶT", - "Changelog:": "Thay đổi:" + "Changelog:": "Thay đổi:", + "Redownload": "Tải lại" } diff --git a/apps/readest-app/public/locales/zh-CN/translation.json b/apps/readest-app/public/locales/zh-CN/translation.json index 5c78d7a3..65bab670 100644 --- a/apps/readest-app/public/locales/zh-CN/translation.json +++ b/apps/readest-app/public/locales/zh-CN/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "正在下载 {{downloaded}} / {{contentLength}}", "Download finished": "下载完成", "DOWNLOAD & INSTALL": "下载并安装", - "Changelog:": "更新日志:" + "Changelog:": "更新日志:", + "Redownload": "重新下载" } diff --git a/apps/readest-app/public/locales/zh-TW/translation.json b/apps/readest-app/public/locales/zh-TW/translation.json index 28ff7772..3a6b23b9 100644 --- a/apps/readest-app/public/locales/zh-TW/translation.json +++ b/apps/readest-app/public/locales/zh-TW/translation.json @@ -281,5 +281,6 @@ "Downloading {{downloaded}} of {{contentLength}}": "正在下載 {{downloaded}} / {{contentLength}}", "Download finished": "下載完成", "DOWNLOAD & INSTALL": "下載並安裝", - "Changelog:": "更新日誌:" + "Changelog:": "更新日誌:", + "Redownload": "重新下載" } diff --git a/apps/readest-app/src/app/library/hooks/useBooksSync.ts b/apps/readest-app/src/app/library/hooks/useBooksSync.ts index 64d65a42..6208eef5 100644 --- a/apps/readest-app/src/app/library/hooks/useBooksSync.ts +++ b/apps/readest-app/src/app/library/hooks/useBooksSync.ts @@ -98,11 +98,12 @@ export const useBooksSync = ({ onSyncStart, onSyncEnd }: UseBooksSyncProps) => { if (newBook.uploadedAt && !newBook.deletedAt) { try { await appService?.downloadBook(newBook, true); + } catch { + console.error('Failed to download book:', newBook); + } finally { newBook.coverImageUrl = await appService?.generateCoverImageUrl(newBook); updatedLibrary.push(newBook); setLibrary(updatedLibrary); - } catch { - console.error('Failed to download book:', newBook); } } } diff --git a/apps/readest-app/src/components/BookDetailModal.tsx b/apps/readest-app/src/components/BookDetailModal.tsx index 8851594d..2ec7725b 100644 --- a/apps/readest-app/src/components/BookDetailModal.tsx +++ b/apps/readest-app/src/components/BookDetailModal.tsx @@ -129,9 +129,11 @@ const BookDetailModal = ({ book, isOpen, onClose }: BookDetailModalProps) => { > {_('Delete')} - + {book.uploadedAt && ( + + )} )} @@ -145,9 +147,11 @@ const BookDetailModal = ({ book, isOpen, onClose }: BookDetailModalProps) => { > {_('Delete')} - + {book.uploadedAt && ( + + )} )} diff --git a/apps/readest-app/src/libs/storage.ts b/apps/readest-app/src/libs/storage.ts index 4bbe9cb3..2caa1e82 100644 --- a/apps/readest-app/src/libs/storage.ts +++ b/apps/readest-app/src/libs/storage.ts @@ -97,7 +97,7 @@ export const downloadFile = async ( return; } } catch (error) { - console.error('File download failed:', error); + console.error(`File '${filePath}' download failed:`, error); throw new Error('File download failed'); } }; diff --git a/apps/readest-app/src/services/appService.ts b/apps/readest-app/src/services/appService.ts index d963bec7..e42be072 100644 --- a/apps/readest-app/src/services/appService.ts +++ b/apps/readest-app/src/services/appService.ts @@ -375,11 +375,16 @@ export abstract class BaseAppService implements AppService { await this.fs.createDir(getDir(book), 'Books'); } - if (needDownCover) { - const lfp = getCoverFilename(book); - const cfp = `${CLOUD_BOOKS_SUBDIR}/${lfp}`; - await this.downloadCloudFile(lfp, cfp, handleProgress); - completedFiles.count++; + try { + if (needDownCover) { + const lfp = getCoverFilename(book); + const cfp = `${CLOUD_BOOKS_SUBDIR}/${lfp}`; + await this.downloadCloudFile(lfp, cfp, handleProgress); + completedFiles.count++; + } + } catch (error) { + // don't throw error here since some books may not have cover images at all + console.log('Failed to download cover file:', error); } if (needDownBook) {