diff --git a/server/src/main/kotlin/suwayomi/tachidesk/graphql/queries/InfoQuery.kt b/server/src/main/kotlin/suwayomi/tachidesk/graphql/queries/InfoQuery.kt index 57a9491cd..bf3e8c0eb 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/graphql/queries/InfoQuery.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/graphql/queries/InfoQuery.kt @@ -51,6 +51,12 @@ class InfoQuery { } } + fun aboutWebUI(): CompletableFuture { + return future { + WebInterfaceManager.getAboutInfo() + } + } + fun checkForWebUIUpdate(): CompletableFuture { return future { val (version, updateAvailable) = WebInterfaceManager.isUpdateAvailable() diff --git a/server/src/main/kotlin/suwayomi/tachidesk/server/util/WebInterfaceManager.kt b/server/src/main/kotlin/suwayomi/tachidesk/server/util/WebInterfaceManager.kt index 6d13b2fb8..efcd44bfc 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/server/util/WebInterfaceManager.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/server/util/WebInterfaceManager.kt @@ -167,6 +167,21 @@ object WebInterfaceManager { ) } + suspend fun getAboutInfo(): WebUIUpdateInfo { + val currentVersion = getLocalVersion() + + val failedToGetVersion = currentVersion === "r-1" + if (failedToGetVersion) { + throw Exception("Failed to get current version") + } + + return WebUIUpdateInfo( + channel = serverConfig.webUIChannel.value, + tag = currentVersion, + updateAvailable = isUpdateAvailable(currentVersion).second, + ) + } + private var serveWebUI: () -> Unit = {} fun setServeWebUI(serveWebUI: () -> Unit) {