Add batch endpoint for removing downloads from download queue (#452)
This commit is contained in:
@@ -122,6 +122,7 @@ object MangaAPI {
|
||||
delete("{mangaId}/chapter/{chapterIndex}", DownloadController.unqueueChapter)
|
||||
patch("{mangaId}/chapter/{chapterIndex}/reorder/{to}", DownloadController.reorderChapter)
|
||||
post("batch", DownloadController.queueChapters)
|
||||
delete("batch", DownloadController.unqueueChapters)
|
||||
}
|
||||
|
||||
path("update") {
|
||||
|
||||
@@ -134,6 +134,28 @@ object DownloadController {
|
||||
}
|
||||
)
|
||||
|
||||
/** delete multiple chapters from download queue */
|
||||
val unqueueChapters = handler(
|
||||
documentWith = {
|
||||
withOperation {
|
||||
summary("Downloader remove multiple downloads")
|
||||
description("Remove multiple chapters downloads from queue")
|
||||
}
|
||||
body<EnqueueInput>()
|
||||
},
|
||||
behaviorOf = { ctx ->
|
||||
val input = json.decodeFromString<EnqueueInput>(ctx.body())
|
||||
ctx.future(
|
||||
future {
|
||||
DownloadManager.unqueue(input)
|
||||
}
|
||||
)
|
||||
},
|
||||
withResults = {
|
||||
httpCode(HttpCode.OK)
|
||||
}
|
||||
)
|
||||
|
||||
/** delete chapter from download queue */
|
||||
val unqueueChapter = handler(
|
||||
pathParam<Int>("chapterIndex"),
|
||||
|
||||
@@ -190,6 +190,14 @@ object DownloadManager {
|
||||
addMultipleToQueue(inputPairs)
|
||||
}
|
||||
|
||||
fun unqueue(input: EnqueueInput) {
|
||||
if (input.chapterIds.isNullOrEmpty()) return
|
||||
|
||||
downloadQueue.removeIf { it.chapter.id in input.chapterIds }
|
||||
|
||||
notifyAllClients()
|
||||
}
|
||||
|
||||
/**
|
||||
* Tries to add multiple inputs to queue
|
||||
* If any of inputs was actually added to queue, starts the queue
|
||||
|
||||
Reference in New Issue
Block a user