diff --git a/server/build.gradle.kts b/server/build.gradle.kts index 7d23d805..487918ce 100644 --- a/server/build.gradle.kts +++ b/server/build.gradle.kts @@ -112,7 +112,7 @@ val tachideskRevision = runCatching { buildConfig { clsName = "BuildConfig" - packageName = "suwayomi.server" + packageName = "suwayomi.tachidesk.server" buildConfigField("String", "NAME", rootProject.name) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/global/GlobalAPI.kt b/server/src/main/kotlin/suwayomi/tachidesk/global/GlobalAPI.kt index 8f87da39..b98ddb67 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/global/GlobalAPI.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/global/GlobalAPI.kt @@ -1,30 +1,24 @@ package suwayomi.tachidesk.global -import io.javalin.Javalin -import suwayomi.tachidesk.global.impl.About -import suwayomi.tachidesk.global.impl.AppUpdate -import suwayomi.tachidesk.server.JavalinSetup - /* * 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.Javalin +import io.javalin.apibuilder.ApiBuilder.get +import io.javalin.apibuilder.ApiBuilder.path +import suwayomi.tachidesk.global.controller.SettingsController + object GlobalAPI { fun defineEndpoints(app: Javalin) { - // returns some static info about the current app build - app.get("/api/v1/settings/about/") { ctx -> - ctx.json(About.getAbout()) - } - - // check for app updates - app.get("/api/v1/settings/check-update/") { ctx -> - - ctx.json( - JavalinSetup.future { AppUpdate.checkUpdate() } - ) + app.routes { + path("api/v1/settings") { + get("about", SettingsController::about) + get("check-update", SettingsController::checkUpdate) + } } } } diff --git a/server/src/main/kotlin/suwayomi/tachidesk/global/controller/SettingsController.kt b/server/src/main/kotlin/suwayomi/tachidesk/global/controller/SettingsController.kt new file mode 100644 index 00000000..cdd337df --- /dev/null +++ b/server/src/main/kotlin/suwayomi/tachidesk/global/controller/SettingsController.kt @@ -0,0 +1,28 @@ +package suwayomi.tachidesk.global.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.global.impl.About +import suwayomi.tachidesk.global.impl.AppUpdate +import suwayomi.tachidesk.server.JavalinSetup + +/** Settings Page/Screen */ +object SettingsController { + /** returns some static info about the current app build */ + fun about(ctx: Context): Context { + return ctx.json(About.getAbout()) + } + + /** check for app updates */ + fun checkUpdate(ctx: Context): Context { + return ctx.json( + JavalinSetup.future { AppUpdate.checkUpdate() } + ) + } +} diff --git a/server/src/main/kotlin/suwayomi/tachidesk/global/impl/About.kt b/server/src/main/kotlin/suwayomi/tachidesk/global/impl/About.kt index dfeab345..84b8f0a1 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/global/impl/About.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/global/impl/About.kt @@ -7,7 +7,7 @@ package suwayomi.tachidesk.global.impl * 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 suwayomi.server.BuildConfig +import suwayomi.tachidesk.server.BuildConfig data class AboutDataClass( val name: String, diff --git a/server/src/main/kotlin/suwayomi/tachidesk/global/impl/AppUpdate.kt b/server/src/main/kotlin/suwayomi/tachidesk/global/impl/AppUpdate.kt index f1c83c1a..abebe547 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/global/impl/AppUpdate.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/global/impl/AppUpdate.kt @@ -16,14 +16,15 @@ import uy.kohesive.injekt.injectLazy * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ data class UpdateDataClass( + /** [channel] mirrors [suwayomi.tachidesk.server.BuildConfig.BUILD_TYPE] */ val channel: String, val tag: String, val url: String ) object AppUpdate { - private const val LATEST_STABLE_URL = "https://api.github.com/repos/Suwayomi/Tachidesk/releases/latest" - private const val LATEST_PREVIEW_URL = "https://api.github.com/repos/Suwayomi/Tachidesk-preview/releases/latest" + private const val LATEST_STABLE_CHANNEL_URL = "https://api.github.com/repos/Suwayomi/Tachidesk/releases/latest" + private const val LATEST_PREVIEW_CHANNEL_URL = "https://api.github.com/repos/Suwayomi/Tachidesk-preview/releases/latest" private val json: Json by injectLazy() private val network: NetworkHelper by injectLazy() @@ -31,13 +32,13 @@ object AppUpdate { suspend fun checkUpdate(): List { val stableJson = json.parseToJsonElement( network.client.newCall( - GET(LATEST_STABLE_URL) + GET(LATEST_STABLE_CHANNEL_URL) ).await().body!!.string() ).jsonObject val previewJson = json.parseToJsonElement( network.client.newCall( - GET(LATEST_PREVIEW_URL) + GET(LATEST_PREVIEW_CHANNEL_URL) ).await().body!!.string() ).jsonObject diff --git a/server/src/main/kotlin/suwayomi/tachidesk/server/ServerSetup.kt b/server/src/main/kotlin/suwayomi/tachidesk/server/ServerSetup.kt index cc748ec0..e205e4c4 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/server/ServerSetup.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/server/ServerSetup.kt @@ -13,7 +13,7 @@ import org.kodein.di.DI import org.kodein.di.bind import org.kodein.di.conf.global import org.kodein.di.singleton -import suwayomi.server.BuildConfig +import suwayomi.tachidesk.server.BuildConfig import suwayomi.tachidesk.server.database.databaseUp import suwayomi.tachidesk.server.util.AppMutex.handleAppMutex import suwayomi.tachidesk.server.util.SystemTray.systemTray diff --git a/server/src/main/kotlin/suwayomi/tachidesk/server/util/SystemTray.kt b/server/src/main/kotlin/suwayomi/tachidesk/server/util/SystemTray.kt index 774c937b..83c26c3c 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/server/util/SystemTray.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/server/util/SystemTray.kt @@ -10,7 +10,7 @@ package suwayomi.tachidesk.server.util import dorkbox.systemTray.MenuItem import dorkbox.systemTray.SystemTray import dorkbox.util.CacheUtil -import suwayomi.server.BuildConfig +import suwayomi.tachidesk.server.BuildConfig import suwayomi.tachidesk.server.ServerConfig import suwayomi.tachidesk.server.serverConfig import suwayomi.tachidesk.server.util.Browser.openInBrowser