mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-04 03:14:40 -05:00
68 lines
1.8 KiB
Kotlin
68 lines
1.8 KiB
Kotlin
package suwayomi.tachidesk.manga.controller
|
|
|
|
/*
|
|
* Copyright (C) Contributors to the Suwayomi project
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
import io.javalin.http.Context
|
|
import suwayomi.tachidesk.manga.impl.extension.Extension
|
|
import suwayomi.tachidesk.manga.impl.extension.ExtensionsList
|
|
import suwayomi.tachidesk.server.JavalinSetup.future
|
|
|
|
object ExtensionController {
|
|
/** list all extensions */
|
|
fun list(ctx: Context) {
|
|
ctx.json(
|
|
future {
|
|
ExtensionsList.getExtensionList()
|
|
}
|
|
)
|
|
}
|
|
|
|
/** install extension identified with "pkgName" */
|
|
fun install(ctx: Context) {
|
|
val pkgName = ctx.pathParam("pkgName")
|
|
|
|
ctx.json(
|
|
future {
|
|
Extension.installExtension(pkgName)
|
|
}
|
|
)
|
|
}
|
|
|
|
/** update extension identified with "pkgName" */
|
|
fun update(ctx: Context) {
|
|
val pkgName = ctx.pathParam("pkgName")
|
|
|
|
ctx.json(
|
|
future {
|
|
Extension.updateExtension(pkgName)
|
|
}
|
|
)
|
|
}
|
|
|
|
/** uninstall extension identified with "pkgName" */
|
|
fun uninstall(ctx: Context) {
|
|
val pkgName = ctx.pathParam("pkgName")
|
|
|
|
Extension.uninstallExtension(pkgName)
|
|
ctx.status(200)
|
|
}
|
|
|
|
/** icon for extension named `apkName` */
|
|
fun icon(ctx: Context) {
|
|
val apkName = ctx.pathParam("apkName")
|
|
|
|
ctx.result(
|
|
future { Extension.getExtensionIcon(apkName) }
|
|
.thenApply {
|
|
ctx.header("content-type", it.second)
|
|
it.first
|
|
}
|
|
)
|
|
}
|
|
}
|