Feature/listen to server config value changes (#617)
* Make server config value changes subscribable * Make server config value changes subscribable - Update usage * Add util functions to listen to server config value changes * Listen to server config value changes - Auto backups * Listen to server config value changes - Auto global update * Listen to server config value changes - WebUI auto updates * Listen to server config value changes - Javalin update ip and port * Listen to server config value changes - Update socks proxy * Listen to server config value changes - Update debug log level * Listen to server config value changes - Update system tray icon * Update config values one at a time In case settings are changed in quick succession it's possible that each setting update reverts the change of the previous changed setting because the internal config hasn't been updated yet. E.g. 1. settingA changed 2. settingB changed 3. settingA updates config file 4. settingB updates config file (internal config hasn't been updated yet with change from settingA) 5. settingA updates internal config (settingA updated) 6. settingB updates internal config (settingB updated, settingA outdated) now settingA is unchanged because settingB reverted its change while updating the config with its new value * Always add log interceptor to OkHttpClient In case debug logs are disabled then the KotlinLogging log level will be set to level > debug and thus, these logs won't get logged * Rename "maxParallelUpdateRequests" to "maxSourcesInParallel" * Use server setting "maxSourcesInParallel" for downloads * Listen to server config value changes - downloads * Always use latest server settings - Browser * Always use latest server settings - folders * [Test] Fix type error
This commit is contained in:
@@ -26,8 +26,8 @@ import suwayomi.tachidesk.server.ServerConfig
|
||||
import suwayomi.tachidesk.server.androidCompat
|
||||
import suwayomi.tachidesk.server.database.databaseUp
|
||||
import suwayomi.tachidesk.server.serverConfig
|
||||
import suwayomi.tachidesk.server.systemTrayInstance
|
||||
import suwayomi.tachidesk.server.util.AppMutex
|
||||
import suwayomi.tachidesk.server.util.SystemTray
|
||||
import xyz.nulldev.androidcompat.AndroidCompatInitializer
|
||||
import xyz.nulldev.ts.config.CONFIG_PREFIX
|
||||
import xyz.nulldev.ts.config.ConfigKodeinModule
|
||||
@@ -83,7 +83,7 @@ open class ApplicationTest {
|
||||
|
||||
// register Tachidesk's config which is dubbed "ServerConfig"
|
||||
GlobalConfigManager.registerModule(
|
||||
ServerConfig.register(GlobalConfigManager.config)
|
||||
ServerConfig.register { GlobalConfigManager.config }
|
||||
)
|
||||
|
||||
// Make sure only one instance of the app is running
|
||||
@@ -125,9 +125,9 @@ open class ApplicationTest {
|
||||
}
|
||||
|
||||
// create system tray
|
||||
if (serverConfig.systemTrayEnabled) {
|
||||
if (serverConfig.systemTrayEnabled.value) {
|
||||
try {
|
||||
systemTrayInstance
|
||||
SystemTray.create()
|
||||
} catch (e: Throwable) { // cover both java.lang.Exception and java.lang.Error
|
||||
e.printStackTrace()
|
||||
}
|
||||
@@ -139,10 +139,10 @@ open class ApplicationTest {
|
||||
System.setProperty("org.eclipse.jetty.LEVEL", "OFF")
|
||||
|
||||
// socks proxy settings
|
||||
if (serverConfig.socksProxyEnabled) {
|
||||
System.getProperties()["socksProxyHost"] = serverConfig.socksProxyHost
|
||||
System.getProperties()["socksProxyPort"] = serverConfig.socksProxyPort
|
||||
logger.info("Socks Proxy is enabled to ${serverConfig.socksProxyHost}:${serverConfig.socksProxyPort}")
|
||||
if (serverConfig.socksProxyEnabled.value) {
|
||||
System.getProperties()["socksProxyHost"] = serverConfig.socksProxyHost.value
|
||||
System.getProperties()["socksProxyPort"] = serverConfig.socksProxyPort.value
|
||||
logger.info("Socks Proxy is enabled to ${serverConfig.socksProxyHost.value}:${serverConfig.socksProxyPort.value}")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,8 +11,10 @@ server.socksProxyPort = ""
|
||||
server.downloadAsCbz = false
|
||||
server.autoDownloadNewChapters = false
|
||||
|
||||
# requests
|
||||
server.maxSourcesInParallel = 10
|
||||
|
||||
# updater
|
||||
server.maxParallelUpdateRequests = 10
|
||||
server.excludeUnreadChapters = true
|
||||
server.excludeNotStarted = true
|
||||
server.excludeCompleted = true
|
||||
|
||||
Reference in New Issue
Block a user