mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-06-30 17:34:39 -05:00
Fix/server config duplicated types (#1672)
* Move "serverConfig" to "server-config" module
* Remove duplicated types
Unintentionally introduced with 8ef2877040
This commit is contained in:
@@ -4,6 +4,12 @@ plugins {
|
|||||||
.get()
|
.get()
|
||||||
.pluginId,
|
.pluginId,
|
||||||
)
|
)
|
||||||
|
id(
|
||||||
|
libs.plugins.kotlin.serialization
|
||||||
|
.get()
|
||||||
|
.pluginId,
|
||||||
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package suwayomi.tachidesk.graphql.types
|
package suwayomi.tachidesk.graphql.types
|
||||||
|
|
||||||
|
import suwayomi.tachidesk.server.serverConfig
|
||||||
|
|
||||||
enum class WebUIInterface {
|
enum class WebUIInterface {
|
||||||
BROWSER,
|
BROWSER,
|
||||||
ELECTRON,
|
ELECTRON,
|
||||||
@@ -30,17 +32,30 @@ enum class WebUIFlavor(
|
|||||||
"https://api.github.com/repos/Suwayomi/Suwayomi-WebUI-preview/releases/latest",
|
"https://api.github.com/repos/Suwayomi/Suwayomi-WebUI-preview/releases/latest",
|
||||||
"Suwayomi-WebUI",
|
"Suwayomi-WebUI",
|
||||||
),
|
),
|
||||||
|
|
||||||
VUI(
|
VUI(
|
||||||
"VUI",
|
"VUI",
|
||||||
"https://github.com/Suwayomi/Suwayomi-VUI",
|
"https://github.com/Suwayomi/Suwayomi-VUI",
|
||||||
"https://raw.githubusercontent.com/Suwayomi/Suwayomi-VUI/master/versionToServerVersionMapping.json",
|
"https://raw.githubusercontent.com/Suwayomi/Suwayomi-VUI/main/versionToServerVersionMapping.json",
|
||||||
"https://api.github.com/repos/Suwayomi/Suwayomi-VUI/releases/latest",
|
"https://api.github.com/repos/Suwayomi/Suwayomi-VUI/releases/latest",
|
||||||
"Suwayomi-VUI",
|
"Suwayomi-VUI-Web",
|
||||||
|
),
|
||||||
|
|
||||||
|
CUSTOM(
|
||||||
|
"Custom",
|
||||||
|
"repoURL",
|
||||||
|
"versionMappingUrl",
|
||||||
|
"latestReleaseInfoURL",
|
||||||
|
"baseFileName",
|
||||||
),
|
),
|
||||||
CUSTOM("Custom", "", "", "", ""),
|
|
||||||
;
|
;
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun from(flavor: String): WebUIFlavor = entries.find { it.name.lowercase() == flavor.lowercase() } ?: WEBUI
|
val default: WebUIFlavor = WEBUI
|
||||||
|
|
||||||
|
fun from(value: String): WebUIFlavor = entries.find { it.uiName == value } ?: default
|
||||||
|
|
||||||
|
val current: WebUIFlavor
|
||||||
|
get() = serverConfig.webUIFlavor.value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
package suwayomi.tachidesk.manga.impl.extension
|
package suwayomi.tachidesk.manga.impl.extension
|
||||||
|
|
||||||
object ExtensionsList {
|
val repoMatchRegex =
|
||||||
val repoMatchRegex =
|
(
|
||||||
(
|
"https:\\/\\/(?>www\\.|raw\\.)?(github|githubusercontent)\\.com" +
|
||||||
"https:\\/\\/(?>www\\.|raw\\.)?(github|githubusercontent)\\.com" +
|
"\\/([^\\/]+)\\/([^\\/]+)(?>(?>\\/tree|\\/blob)?\\/([^\\/\\n]*))?(?>\\/([^\\/\\n]*\\.json)?)?"
|
||||||
"\\/([^\\/]+)\\/([^\\/]+)(?>(?>\\/tree|\\/blob)?\\/([^\\/\\n]*))?(?>\\/([^\\/\\n]*\\.json)?)?"
|
).toRegex()
|
||||||
).toRegex()
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ import suwayomi.tachidesk.graphql.types.WebUIChannel
|
|||||||
import suwayomi.tachidesk.graphql.types.WebUIFlavor
|
import suwayomi.tachidesk.graphql.types.WebUIFlavor
|
||||||
import suwayomi.tachidesk.graphql.types.WebUIInterface
|
import suwayomi.tachidesk.graphql.types.WebUIInterface
|
||||||
import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupSettingsDownloadConversionType
|
import suwayomi.tachidesk.manga.impl.backup.proto.models.BackupSettingsDownloadConversionType
|
||||||
import suwayomi.tachidesk.manga.impl.extension.ExtensionsList.repoMatchRegex
|
import suwayomi.tachidesk.manga.impl.extension.repoMatchRegex
|
||||||
import suwayomi.tachidesk.server.settings.BooleanSetting
|
import suwayomi.tachidesk.server.settings.BooleanSetting
|
||||||
import suwayomi.tachidesk.server.settings.DisableableDoubleSetting
|
import suwayomi.tachidesk.server.settings.DisableableDoubleSetting
|
||||||
import suwayomi.tachidesk.server.settings.DisableableIntSetting
|
import suwayomi.tachidesk.server.settings.DisableableIntSetting
|
||||||
@@ -50,6 +50,7 @@ import suwayomi.tachidesk.server.settings.PathSetting
|
|||||||
import suwayomi.tachidesk.server.settings.SettingGroup
|
import suwayomi.tachidesk.server.settings.SettingGroup
|
||||||
import suwayomi.tachidesk.server.settings.SettingsRegistry
|
import suwayomi.tachidesk.server.settings.SettingsRegistry
|
||||||
import suwayomi.tachidesk.server.settings.StringSetting
|
import suwayomi.tachidesk.server.settings.StringSetting
|
||||||
|
import xyz.nulldev.ts.config.GlobalConfigManager
|
||||||
import xyz.nulldev.ts.config.SystemPropertyOverridableConfigModule
|
import xyz.nulldev.ts.config.SystemPropertyOverridableConfigModule
|
||||||
import kotlin.collections.associate
|
import kotlin.collections.associate
|
||||||
import kotlin.time.Duration
|
import kotlin.time.Duration
|
||||||
@@ -62,6 +63,8 @@ val mutableConfigValueScope = CoroutineScope(SupervisorJob() + Dispatchers.Defau
|
|||||||
|
|
||||||
const val SERVER_CONFIG_MODULE_NAME = "server"
|
const val SERVER_CONFIG_MODULE_NAME = "server"
|
||||||
|
|
||||||
|
val serverConfig: ServerConfig by lazy { GlobalConfigManager.module() }
|
||||||
|
|
||||||
// Settings are ordered by "protoNumber".
|
// Settings are ordered by "protoNumber".
|
||||||
class ServerConfig(
|
class ServerConfig(
|
||||||
getConfig: () -> Config,
|
getConfig: () -> Config,
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package suwayomi.tachidesk.graphql.types
|
package suwayomi.tachidesk.graphql.types
|
||||||
|
|
||||||
import suwayomi.tachidesk.server.serverConfig
|
|
||||||
|
|
||||||
data class AboutWebUI(
|
data class AboutWebUI(
|
||||||
val channel: WebUIChannel,
|
val channel: WebUIChannel,
|
||||||
val tag: String,
|
val tag: String,
|
||||||
@@ -30,61 +28,3 @@ data class WebUIUpdateStatus(
|
|||||||
val state: UpdateState,
|
val state: UpdateState,
|
||||||
val progress: Int,
|
val progress: Int,
|
||||||
)
|
)
|
||||||
|
|
||||||
enum class WebUIInterface {
|
|
||||||
BROWSER,
|
|
||||||
ELECTRON,
|
|
||||||
}
|
|
||||||
|
|
||||||
enum class WebUIChannel {
|
|
||||||
BUNDLED, // the default webUI version bundled with the server release
|
|
||||||
STABLE,
|
|
||||||
PREVIEW,
|
|
||||||
;
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
fun from(channel: String): WebUIChannel = entries.find { it.name.lowercase() == channel.lowercase() } ?: STABLE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
enum class WebUIFlavor(
|
|
||||||
val uiName: String,
|
|
||||||
val repoUrl: String,
|
|
||||||
val versionMappingUrl: String,
|
|
||||||
val latestReleaseInfoUrl: String,
|
|
||||||
val baseFileName: String,
|
|
||||||
) {
|
|
||||||
WEBUI(
|
|
||||||
"WebUI",
|
|
||||||
"https://github.com/Suwayomi/Suwayomi-WebUI-preview",
|
|
||||||
"https://raw.githubusercontent.com/Suwayomi/Suwayomi-WebUI/master/versionToServerVersionMapping.json",
|
|
||||||
"https://api.github.com/repos/Suwayomi/Suwayomi-WebUI-preview/releases/latest",
|
|
||||||
"Suwayomi-WebUI",
|
|
||||||
),
|
|
||||||
|
|
||||||
VUI(
|
|
||||||
"VUI",
|
|
||||||
"https://github.com/Suwayomi/Suwayomi-VUI",
|
|
||||||
"https://raw.githubusercontent.com/Suwayomi/Suwayomi-VUI/main/versionToServerVersionMapping.json",
|
|
||||||
"https://api.github.com/repos/Suwayomi/Suwayomi-VUI/releases/latest",
|
|
||||||
"Suwayomi-VUI-Web",
|
|
||||||
),
|
|
||||||
|
|
||||||
CUSTOM(
|
|
||||||
"Custom",
|
|
||||||
"repoURL",
|
|
||||||
"versionMappingUrl",
|
|
||||||
"latestReleaseInfoURL",
|
|
||||||
"baseFileName",
|
|
||||||
),
|
|
||||||
;
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
val default: WebUIFlavor = WEBUI
|
|
||||||
|
|
||||||
fun from(value: String): WebUIFlavor = entries.find { it.uiName == value } ?: default
|
|
||||||
|
|
||||||
val current: WebUIFlavor
|
|
||||||
get() = serverConfig.webUIFlavor.value
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
package suwayomi.tachidesk.manga.impl.backup.proto.models
|
|
||||||
|
|
||||||
import kotlinx.serialization.Serializable
|
|
||||||
import kotlinx.serialization.protobuf.ProtoNumber
|
|
||||||
import suwayomi.tachidesk.graphql.types.SettingsDownloadConversion
|
|
||||||
|
|
||||||
@Serializable
|
|
||||||
class BackupSettingsDownloadConversionType(
|
|
||||||
@ProtoNumber(1) override val mimeType: String,
|
|
||||||
@ProtoNumber(2) override val target: String,
|
|
||||||
@ProtoNumber(3) override val compressionLevel: Double?,
|
|
||||||
) : SettingsDownloadConversion
|
|
||||||
@@ -223,10 +223,4 @@ object ExtensionsList {
|
|||||||
} else {
|
} else {
|
||||||
this
|
this
|
||||||
}
|
}
|
||||||
|
|
||||||
val repoMatchRegex =
|
|
||||||
(
|
|
||||||
"https:\\/\\/(?>www\\.|raw\\.)?(github|githubusercontent)\\.com" +
|
|
||||||
"\\/([^\\/]+)\\/([^\\/]+)(?>(?>\\/tree|\\/blob)?\\/([^\\/\\n]*))?(?>\\/([^\\/\\n]*\\.json)?)?"
|
|
||||||
).toRegex()
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import eu.kanade.tachiyomi.App
|
|||||||
import eu.kanade.tachiyomi.createAppModule
|
import eu.kanade.tachiyomi.createAppModule
|
||||||
import eu.kanade.tachiyomi.network.NetworkHelper
|
import eu.kanade.tachiyomi.network.NetworkHelper
|
||||||
import eu.kanade.tachiyomi.source.local.LocalSource
|
import eu.kanade.tachiyomi.source.local.LocalSource
|
||||||
import io.github.config4k.getValue
|
|
||||||
import io.github.config4k.toConfig
|
import io.github.config4k.toConfig
|
||||||
import io.github.oshai.kotlinlogging.KotlinLogging
|
import io.github.oshai.kotlinlogging.KotlinLogging
|
||||||
import io.javalin.json.JavalinJackson
|
import io.javalin.json.JavalinJackson
|
||||||
@@ -125,8 +124,6 @@ data class DatabaseSettings(
|
|||||||
val databasePassword: String,
|
val databasePassword: String,
|
||||||
)
|
)
|
||||||
|
|
||||||
val serverConfig: ServerConfig by lazy { GlobalConfigManager.module() }
|
|
||||||
|
|
||||||
val androidCompat by lazy { AndroidCompat() }
|
val androidCompat by lazy { AndroidCompat() }
|
||||||
|
|
||||||
fun setupLogLevelUpdating(
|
fun setupLogLevelUpdating(
|
||||||
|
|||||||
Reference in New Issue
Block a user