From 611578313e0dd3317a3dee683fbca97f69238444 Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Sat, 10 Oct 2026 20:19:06 +0600 Subject: [PATCH] Index a finished download found on disk instead of downloading it again --- .../eu/kanade/tachiyomi/data/download/Downloader.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt index 5a34f4806..a01a0f966 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt @@ -393,6 +393,16 @@ class Downloader( download.chapter.scanlator, download.chapter.url, ) + + // Being stopped after the download is moved into place but before it's indexed leaves a finished download + // on disk that is still queued, and downloading it again would save a second copy next to it + if (mangaDir.findFile("$chapterDirname.cbz") != null || mangaDir.findFile(chapterDirname) != null) { + mangaDir.findFile(chapterDirname + TMP_DIR_SUFFIX)?.delete() + cache.addChapter(chapterDirname, mangaDir, download.manga) + download.status = Download.State.DOWNLOADED + return + } + val tmpDir = mangaDir.createDirectory(chapterDirname + TMP_DIR_SUFFIX)!! try {