diff --git a/server/src/main/kotlin/suwayomi/tachidesk/global/GlobalAPI.kt b/server/src/main/kotlin/suwayomi/tachidesk/global/GlobalAPI.kt new file mode 100644 index 00000000..dbab69ca --- /dev/null +++ b/server/src/main/kotlin/suwayomi/tachidesk/global/GlobalAPI.kt @@ -0,0 +1,25 @@ +package suwayomi.tachidesk.global + +import io.javalin.Javalin +import suwayomi.tachidesk.global.impl.About + +/* + * 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/. */ + +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()) + } + + // TODO: app update check api + app.get("/api/v1/settings/check-update/") { ctx -> + ctx.json(About.getAbout()) + } + } +} diff --git a/server/src/main/kotlin/suwayomi/tachidesk/server/impl/About.kt b/server/src/main/kotlin/suwayomi/tachidesk/global/impl/About.kt similarity index 95% rename from server/src/main/kotlin/suwayomi/tachidesk/server/impl/About.kt rename to server/src/main/kotlin/suwayomi/tachidesk/global/impl/About.kt index 6388e4ba..dfeab345 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/server/impl/About.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/global/impl/About.kt @@ -1,4 +1,4 @@ -package suwayomi.tachidesk.server.impl +package suwayomi.tachidesk.global.impl /* * Copyright (C) Contributors to the Suwayomi project diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/MangaAPI.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/MangaAPI.kt index eb288c05..d58b25ea 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/MangaAPI.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/MangaAPI.kt @@ -43,7 +43,6 @@ import suwayomi.tachidesk.manga.impl.extension.Extension.uninstallExtension import suwayomi.tachidesk.manga.impl.extension.Extension.updateExtension import suwayomi.tachidesk.manga.impl.extension.ExtensionsList.getExtensionList import suwayomi.tachidesk.server.JavalinSetup.future -import suwayomi.tachidesk.server.impl.About import java.text.SimpleDateFormat import java.util.Date @@ -89,7 +88,7 @@ object MangaAPI { } // icon for extension named `apkName` - app.get("/api/v1/extension/icon/:apkName") { ctx -> // TODO: move to pkgName + app.get("/api/v1/extension/icon/:apkName") { ctx -> val apkName = ctx.pathParam("apkName") ctx.result( @@ -330,11 +329,6 @@ object MangaAPI { ctx.status(200) } - // returns some static info of the current app build - app.get("/api/v1/about/") { ctx -> - ctx.json(About.getAbout()) - } - // category modification app.patch("/api/v1/category/:categoryId") { ctx -> val categoryId = ctx.pathParam("categoryId").toInt() diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Source.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Source.kt index 16ebc504..b58981d2 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Source.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Source.kt @@ -50,7 +50,7 @@ object Source { sourceId.toString(), source?.get(SourceTable.name), source?.get(SourceTable.lang), - source?.let { ExtensionTable.select { ExtensionTable.id eq source[SourceTable.extension] }.first()[ExtensionTable.iconUrl] }, + source?.let { getExtensionIconUrl(ExtensionTable.select { ExtensionTable.id eq source[SourceTable.extension] }.first()[ExtensionTable.apkName]) }, source?.let { getHttpSource(sourceId).supportsLatest }, source?.let { getHttpSource(sourceId) is ConfigurableSource }, ) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/server/JavalinSetup.kt b/server/src/main/kotlin/suwayomi/tachidesk/server/JavalinSetup.kt index 5aa19b73..b7331fe7 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/server/JavalinSetup.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/server/JavalinSetup.kt @@ -14,6 +14,7 @@ import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.future.future import mu.KotlinLogging import suwayomi.tachidesk.anime.AnimeAPI +import suwayomi.tachidesk.global.GlobalAPI import suwayomi.tachidesk.manga.MangaAPI import suwayomi.tachidesk.server.util.Browser import java.io.IOException @@ -75,6 +76,7 @@ object JavalinSetup { ctx.result(e.message ?: "Internal Server Error") } + GlobalAPI.defineEndpoints(app) MangaAPI.defineEndpoints(app) AnimeAPI.defineEndpoints(app) } diff --git a/server/src/main/kotlin/suwayomi/tachidesk/server/util/AppMutex.kt b/server/src/main/kotlin/suwayomi/tachidesk/server/util/AppMutex.kt index f8b33ed2..dadcd2c4 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/server/util/AppMutex.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/server/util/AppMutex.kt @@ -11,7 +11,7 @@ import io.javalin.plugin.json.JavalinJackson import mu.KotlinLogging import okhttp3.OkHttpClient import okhttp3.Request.Builder -import suwayomi.tachidesk.server.impl.AboutDataClass +import suwayomi.tachidesk.global.impl.AboutDataClass import suwayomi.tachidesk.server.serverConfig import suwayomi.tachidesk.server.util.Browser.openInBrowser import suwayomi.tachidesk.server.util.ExitCode.MutexCheckFailedAnotherAppRunning