From 3d7953d977c75fea2412558b6583fbcfc422dc26 Mon Sep 17 00:00:00 2001 From: Aria Moradi Date: Sun, 7 Nov 2021 21:32:57 +0330 Subject: [PATCH] add manga data to download queue object (#244) * add manga data to download queue object * fix lint erro --- .../tachidesk/manga/controller/DownloadController.kt | 9 ++++++--- .../tachidesk/manga/impl/download/DownloadManager.kt | 6 ++++-- .../suwayomi/tachidesk/manga/impl/download/Downloader.kt | 2 +- .../manga/impl/download/model/DownloadChapter.kt | 4 +++- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/DownloadController.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/DownloadController.kt index c8fcf967..44f9da20 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/DownloadController.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/controller/DownloadController.kt @@ -10,6 +10,7 @@ package suwayomi.tachidesk.manga.controller import io.javalin.http.Context import io.javalin.websocket.WsConfig import suwayomi.tachidesk.manga.impl.download.DownloadManager +import suwayomi.tachidesk.server.JavalinSetup.future object DownloadController { /** Download queue stats */ @@ -52,9 +53,11 @@ object DownloadController { val chapterIndex = ctx.pathParam("chapterIndex").toInt() val mangaId = ctx.pathParam("mangaId").toInt() - DownloadManager.enqueue(chapterIndex, mangaId) - - ctx.status(200) + ctx.future( + future { + DownloadManager.enqueue(chapterIndex, mangaId) + } + ) } /** delete chapter from download queue */ diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/DownloadManager.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/DownloadManager.kt index 905683cf..4a726005 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/DownloadManager.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/DownloadManager.kt @@ -12,6 +12,7 @@ import io.javalin.websocket.WsMessageContext import org.jetbrains.exposed.sql.and import org.jetbrains.exposed.sql.select import org.jetbrains.exposed.sql.transactions.transaction +import suwayomi.tachidesk.manga.impl.Manga.getManga import suwayomi.tachidesk.manga.impl.download.model.DownloadChapter import suwayomi.tachidesk.manga.impl.download.model.DownloadState.Downloading import suwayomi.tachidesk.manga.impl.download.model.DownloadStatus @@ -69,7 +70,7 @@ object DownloadManager { ) } - fun enqueue(chapterIndex: Int, mangaId: Int) { + suspend fun enqueue(chapterIndex: Int, mangaId: Int) { if (downloadQueue.none { it.mangaId == mangaId && it.chapterIndex == chapterIndex }) { downloadQueue.add( DownloadChapter( @@ -80,7 +81,8 @@ object DownloadManager { ChapterTable.select { (ChapterTable.manga eq mangaId) and (ChapterTable.sourceOrder eq chapterIndex) } .first() } - ) + ), + manga = getManga(mangaId) ) ) start() 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 dd60b49a..35b1325e 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 @@ -50,7 +50,7 @@ class Downloader(private val downloadQueue: CopyOnWriteArrayList