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 5cc4bd97bf..a3d294f0c8 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/server/util/WebInterfaceManager.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/server/util/WebInterfaceManager.kt @@ -55,7 +55,6 @@ enum class WebUI(var repoUrl: String, var versionMappingUrl: String, var zipFile const val DEFAULT_WEB_UI = "WebUI" - object WebInterfaceManager { private val logger = KotlinLogging.logger {} private const val webUIPreviewVersion = "PREVIEW" @@ -106,7 +105,7 @@ object WebInterfaceManager { if (doesLocalWebUIExist(applicationDirs.webUIRoot)) { val currentVersion = getLocalVersion(applicationDirs.webUIRoot) - logger.info { "WebUI Static files exists, version= $currentVersion" } + logger.info { "setupWebUI: found webUI files - flavor= ${serverConfig.webUIFlavor}, version= $currentVersion" } if (!isLocalWebUIValid(applicationDirs.webUIRoot)) { doInitialSetup() @@ -120,11 +119,10 @@ object WebInterfaceManager { return } - logger.info { "No WebUI Static files found, starting download..." } + logger.info { "setupWebUI: no webUI files found, starting download..." } doInitialSetup() } - /** * Tries to download the latest compatible version for the selected webUI and falls back to the default webUI in case of errors. */ @@ -153,9 +151,10 @@ object WebInterfaceManager { } private fun extractBundledWebUI() { - val resourceWebUI: InputStream = BuildConfig::class.java.getResourceAsStream("/WebUI.zip") ?: throw Error("No bundled webUI version found") + val resourceWebUI: InputStream = BuildConfig::class.java.getResourceAsStream("/WebUI.zip") ?: throw Error("extractBundledWebUI: No bundled webUI version found") + + logger.info { "extractBundledWebUI: Using the bundled WebUI zip..." } - logger.info { "Using the bundled WebUI zip..." } val webUIZip = WebUI.WEBUI.zipFile val webUIZipPath = "$tmpDir/$webUIZip" val webUIZipFile = File(webUIZipPath) @@ -170,11 +169,14 @@ object WebInterfaceManager { } private fun checkForUpdate() { - if (isUpdateAvailable(getLocalVersion(applicationDirs.webUIRoot))) { - logger.info { "An update is available, starting download..." } + val localVersion = getLocalVersion(applicationDirs.webUIRoot) + if (isUpdateAvailable(localVersion)) { + logger.info { "checkForUpdate(${serverConfig.webUIFlavor}, $localVersion): An update is available, starting download..." } downloadLatestCompatibleVersion() preferences.putLong(lastWebUIUpdateCheckKey, System.currentTimeMillis()) } + + logger.debug { "checkForUpdate(${serverConfig.webUIFlavor}, $localVersion): local version is the latest one" } } private fun getDownloadUrlFor(version: String): String { @@ -200,14 +202,14 @@ object WebInterfaceManager { return false } - logger.info { "Verifying WebUI files..." } + logger.info { "isLocalWebUIValid: Verifying WebUI files..." } val currentVersion = getLocalVersion(path) val localMD5Sum = getLocalMD5Sum(path) val currentVersionMD5Sum = fetchMD5SumFor(currentVersion) val validationSucceeded = currentVersionMD5Sum == localMD5Sum - logger.info { "Validation ${if (validationSucceeded) "succeeded" else "failed"} - md5: local= $localMD5Sum; expected= $currentVersionMD5Sum" } + logger.info { "isLocalWebUIValid: Validation ${if (validationSucceeded) "succeeded" else "failed"} - md5: local= $localMD5Sum; expected= $currentVersionMD5Sum" } return validationSucceeded } @@ -245,13 +247,14 @@ object WebInterfaceManager { private fun getLatestCompatibleVersion(): String { if (WebUIChannel.doesConfigChannelEqual(WebUIChannel.BUNDLED)) { + logger.debug { "getLatestCompatibleVersion: Channel is \"${WebUIChannel.BUNDLED}\", do not check for update" } return BuildConfig.WEBUI_TAG } val currentServerVersionNumber = extractVersion(BuildConfig.REVISION) val webUIToServerVersionMappings = JSONArray(URL(WebUI.WEBUI.versionMappingUrl).readText()) - logger.debug { "webUIChannel= ${serverConfig.webUIChannel} currentServerVersion= ${BuildConfig.REVISION}, mappingFile= $webUIToServerVersionMappings" } + logger.debug { "getLatestCompatibleVersion: webUIChannel= ${serverConfig.webUIChannel}, currentServerVersion= ${BuildConfig.REVISION}, mappingFile= $webUIToServerVersionMappings" } for (i in 0 until webUIToServerVersionMappings.length()) { val webUIToServerVersionEntry = webUIToServerVersionMappings.getJSONObject(i) @@ -284,7 +287,7 @@ object WebInterfaceManager { val webUIZipPath = "$tmpDir/$webUIZip" val webUIZipFile = File(webUIZipPath) - logger.info { "Downloading WebUI (version \"$latestCompatibleVersion\") zip from the Internet..." } + logger.info { "downloadLatestCompatibleVersion: Downloading WebUI (flavor= ${serverConfig.webUIFlavor}, version \"$latestCompatibleVersion\") zip from the Internet..." } try { val webUIZipURL = "${getDownloadUrlFor(latestCompatibleVersion)}/$webUIZip" @@ -295,7 +298,7 @@ object WebInterfaceManager { } } catch (e: Exception) { val retry = retryCount < 3 - logger.error { "Download failed${if (retry) ", retrying ${retryCount + 1}/3" else ""} - error: $e" } + logger.error { "downloadLatestCompatibleVersion: Download failed${if (retry) ", retrying ${retryCount + 1}/3" else ""} - error: $e" } if (retry) { return downloadLatestCompatibleVersion(retryCount + 1) @@ -307,9 +310,9 @@ object WebInterfaceManager { File(applicationDirs.webUIRoot).deleteRecursively() // extract webUI zip - logger.info { "Extracting WebUI zip..." } + logger.info { "downloadLatestCompatibleVersion: Extracting WebUI zip..." } extractDownload(webUIZipPath, applicationDirs.webUIRoot) - logger.info { "Extracting WebUI zip Done." } + logger.info { "downloadLatestCompatibleVersion: Extracting WebUI zip Done." } return true } @@ -327,7 +330,7 @@ object WebInterfaceManager { connection.inputStream.buffered().use { inp -> var totalCount = 0 - print("Download progress: % 00") + print("downloadVersion: Download progress: % 00") while (true) { val count = inp.read(data, 0, 1024) @@ -343,7 +346,7 @@ object WebInterfaceManager { webUIZipFileOut.write(data, 0, count) } println() - logger.info { "Downloading WebUI Done." } + logger.info { "downloadVersion: Downloading WebUI Done." } } } } @@ -370,6 +373,7 @@ object WebInterfaceManager { val latestCompatibleVersion = getLatestCompatibleVersion() latestCompatibleVersion != currentVersion } catch (e: Exception) { + logger.debug { "isUpdateAvailable: check failed due to $e" } false } }