diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/Downloader.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/Downloader.kt index c1413c87..a30ffc85 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/Downloader.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/Downloader.kt @@ -30,7 +30,9 @@ import suwayomi.tachidesk.manga.impl.download.model.DownloadState.Queued import suwayomi.tachidesk.manga.impl.download.model.DownloadUpdate import suwayomi.tachidesk.manga.impl.download.model.DownloadUpdateType.ERROR import suwayomi.tachidesk.manga.impl.download.model.DownloadUpdateType.FINISHED +import suwayomi.tachidesk.manga.impl.download.model.DownloadUpdateType.PAUSED import suwayomi.tachidesk.manga.impl.download.model.DownloadUpdateType.PROGRESS +import suwayomi.tachidesk.manga.impl.download.model.DownloadUpdateType.STOPPED import suwayomi.tachidesk.manga.model.table.ChapterTable import java.util.concurrent.CopyOnWriteArrayList @@ -99,8 +101,8 @@ class Downloader( logger: KLogger, download: DownloadChapter, ) { - downloadQueue -= download notifier(true, DownloadUpdate(FINISHED, download)) + downloadQueue -= download onDownloadFinished() logger.debug { "finished" } } @@ -146,14 +148,15 @@ class Downloader( } catch (e: CancellationException) { logger.debug("Downloader was stopped") availableSourceDownloads.filter { it.state == Downloading }.forEach { it.state = Queued } + notifier(false, DownloadUpdate(STOPPED, download)) } catch (e: PauseDownloadException) { downloadLogger.debug { "paused" } download.state = Queued + notifier(false, DownloadUpdate(PAUSED, download)) } catch (e: Exception) { downloadLogger.warn("failed due to", e) download.tries++ download.state = Error - } finally { notifier(false, DownloadUpdate(ERROR, download)) } } diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/model/DownloadUpdate.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/model/DownloadUpdate.kt index 41697464..8a323f9b 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/model/DownloadUpdate.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/model/DownloadUpdate.kt @@ -3,6 +3,8 @@ package suwayomi.tachidesk.manga.impl.download.model enum class DownloadUpdateType { QUEUED, DEQUEUED, + PAUSED, + STOPPED, PROGRESS, FINISHED, ERROR,