diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/impl/ArchiveProvider.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/impl/ArchiveProvider.kt index 5b021dc7..0ffd4c0c 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/impl/ArchiveProvider.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/impl/ArchiveProvider.kt @@ -11,6 +11,7 @@ import suwayomi.tachidesk.manga.impl.download.fileProvider.ChaptersFilesProvider import suwayomi.tachidesk.manga.impl.download.model.DownloadChapter import suwayomi.tachidesk.manga.impl.util.getChapterCachePath import suwayomi.tachidesk.manga.impl.util.getChapterCbzPath +import suwayomi.tachidesk.manga.impl.util.getMangaDownloadDir import java.io.File import java.io.InputStream @@ -29,6 +30,7 @@ class ArchiveProvider(mangaId: Int, chapterId: Int) : ChaptersFilesProvider(mang scope: CoroutineScope, step: suspend (DownloadChapter?, Boolean) -> Unit ): Boolean { + val mangaDownloadFolder = File(getMangaDownloadDir(mangaId)) val outputFile = File(getChapterCbzPath(mangaId, chapterId)) val chapterCacheFolder = File(getChapterCachePath(mangaId, chapterId)) if (outputFile.exists()) handleExistingCbzFile(outputFile, chapterCacheFolder) @@ -36,6 +38,7 @@ class ArchiveProvider(mangaId: Int, chapterId: Int) : ChaptersFilesProvider(mang super.downloadImpl(download, scope, step) withContext(Dispatchers.IO) { + mangaDownloadFolder.mkdirs() outputFile.createNewFile() } diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/impl/FolderProvider.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/impl/FolderProvider.kt index 8f217fa2..3975b122 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/impl/FolderProvider.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/impl/FolderProvider.kt @@ -40,9 +40,8 @@ class FolderProvider(mangaId: Int, chapterId: Int) : ChaptersFilesProvider(manga return false } - folder.mkdirs() val cacheChapterDir = getChapterCachePath(mangaId, chapterId) - File(cacheChapterDir).renameTo(folder) + File(cacheChapterDir).copyRecursively(folder, true) return true } diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/DirName.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/DirName.kt index cc15edb5..8f3844e8 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/DirName.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/DirName.kt @@ -48,6 +48,10 @@ fun getThumbnailDownloadPath(mangaId: Int): String { return applicationDirs.thumbnailDownloadsRoot + "/$mangaId" } +fun getMangaDownloadDir(mangaId: Int): String { + return applicationDirs.mangaDownloadsRoot + "/" + getMangaDir(mangaId) +} + fun getChapterDownloadPath(mangaId: Int, chapterId: Int): String { return applicationDirs.mangaDownloadsRoot + "/" + getChapterDir(mangaId, chapterId) }