mirror of
https://github.com/Suwayomi/Tachidesk.git
synced 2025-12-10 06:42:07 +01:00
@@ -48,7 +48,7 @@ Here's a list of known clients/user interfaces for Tachidesk-Server:
|
||||
##### Actively Developed Cients
|
||||
- [Tachidesk-WebUI](https://github.com/Suwayomi/Tachidesk-WebUI): The web/ElectronJS front-end that Tachidesk-Server is traditionally shipped with. Usually gets new features faster.
|
||||
- [Tachidesk-JUI](https://github.com/Suwayomi/Tachidesk-JUI): The native desktop front-end for Tachidesk-Server. Currently the most advanced.
|
||||
- [Tachidesk-qtui](https://github.com/Suwayomi/Tachidesk-qtui): A C++/Qt front-end for mobile devices(Android/linux), in super early stage of development.
|
||||
- [Tachidesk-qtui](https://github.com/Suwayomi/Tachidesk-qtui): A C++/Qt front-end for mobile devices(Android/linux), in super early stage of development.
|
||||
- [Tachidesk-Sorayomi](https://github.com/Suwayomi/Tachidesk-Sorayomi): A Flutter front-end for Desktop(Linux, windows, etc.), Web and Android. UI and UX similar to Tachiyomi.
|
||||
##### Inctive/Abandoned Cients
|
||||
- [Equinox](https://github.com/Suwayomi/Equinox): A web user interface made with Vue.js, in super early stage of development.
|
||||
|
||||
@@ -15,7 +15,6 @@ const val MainClass = "suwayomi.tachidesk.MainKt"
|
||||
val tachideskVersion = System.getenv("ProductVersion") ?: "v0.6.5"
|
||||
|
||||
val webUIRevisionTag = System.getenv("WebUIRevision") ?: "r946"
|
||||
val sorayomiRevisionTag = System.getenv("SorayomiRevision") ?: "0.1.5"
|
||||
|
||||
// counts commits on the master branch
|
||||
val tachideskRevision = runCatching {
|
||||
|
||||
@@ -110,9 +110,6 @@ buildConfig {
|
||||
buildConfigField("String", "WEBUI_REPO", quoteWrap("https://github.com/Suwayomi/Tachidesk-WebUI-preview"))
|
||||
buildConfigField("String", "WEBUI_TAG", quoteWrap(webUIRevisionTag))
|
||||
|
||||
buildConfigField("String", "SORAYOMI_REPO", quoteWrap("https://github.com/Suwayomi/Tachidesk-Sorayomi"))
|
||||
buildConfigField("String", "SORAYOMI_TAG", quoteWrap(sorayomiRevisionTag))
|
||||
|
||||
|
||||
buildConfigField("String", "GITHUB", quoteWrap("https://github.com/Suwayomi/Tachidesk-Server"))
|
||||
buildConfigField("String", "DISCORD", quoteWrap("https://discord.gg/DDZdqZWaHA"))
|
||||
|
||||
@@ -54,7 +54,6 @@ private fun directoryMD5(fileDir: String): String {
|
||||
fun setupWebInterface() {
|
||||
when (serverConfig.webUIFlavor) {
|
||||
"WebUI" -> setupWebUI()
|
||||
"Sorayomi" -> setupSorayomi()
|
||||
"Custom" -> {
|
||||
/* do nothing */
|
||||
}
|
||||
@@ -136,63 +135,3 @@ fun setupWebUI() {
|
||||
logger.info { "Extracting WebUI zip Done." }
|
||||
}
|
||||
}
|
||||
|
||||
/** Make sure a valid copy of Sorayomi is available */
|
||||
fun setupSorayomi() {
|
||||
// check if we have Sorayomi installed and is correct version
|
||||
val sorayomiVersionFile = File(applicationDirs.webUIRoot + "/version.json")
|
||||
if (sorayomiVersionFile.exists() && json.parseToJsonElement(
|
||||
sorayomiVersionFile.readText()
|
||||
).jsonObject["version"]!!.jsonPrimitive.content == BuildConfig.SORAYOMI_TAG
|
||||
) {
|
||||
logger.info { "Sorayomi Static files exists and is the correct revision" }
|
||||
logger.info { "Verifying Sorayomi Static files..." }
|
||||
logger.info { "md5: " + directoryMD5(applicationDirs.webUIRoot) }
|
||||
} else {
|
||||
File(applicationDirs.webUIRoot).deleteRecursively()
|
||||
|
||||
val sorayomiZip = "tachidesk-sorayomi-${BuildConfig.SORAYOMI_TAG}-web.zip"
|
||||
val sorayomiZipPath = "$tmpDir/$sorayomiZip"
|
||||
val sorayomiZipFile = File(sorayomiZipPath)
|
||||
|
||||
// download sorayomi zip
|
||||
val sorayomiZipURL = "${BuildConfig.SORAYOMI_REPO}/releases/download/${BuildConfig.SORAYOMI_TAG}/$sorayomiZip"
|
||||
sorayomiZipFile.delete()
|
||||
|
||||
logger.info { "Downloading Sorayomi zip from the Internet..." }
|
||||
val data = ByteArray(1024)
|
||||
|
||||
sorayomiZipFile.outputStream().use { sorayomiZipFileOut ->
|
||||
|
||||
val connection = URL(sorayomiZipURL).openConnection() as HttpURLConnection
|
||||
connection.connect()
|
||||
val contentLength = connection.contentLength
|
||||
|
||||
connection.inputStream.buffered().use { inp ->
|
||||
var totalCount = 0
|
||||
|
||||
print("Download progress: % 00")
|
||||
while (true) {
|
||||
val count = inp.read(data, 0, 1024)
|
||||
|
||||
if (count == -1)
|
||||
break
|
||||
|
||||
totalCount += count
|
||||
val percentage = (totalCount.toFloat() / contentLength * 100).toInt().toString().padStart(2, '0')
|
||||
print("\b\b$percentage")
|
||||
|
||||
sorayomiZipFileOut.write(data, 0, count)
|
||||
}
|
||||
println()
|
||||
logger.info { "Downloading Sorayomi Done." }
|
||||
}
|
||||
}
|
||||
|
||||
// extract Sorayomi zip
|
||||
logger.info { "Extracting Sorayomi zip..." }
|
||||
File(applicationDirs.webUIRoot).mkdirs()
|
||||
ZipFile(sorayomiZipPath).extractAll(applicationDirs.webUIRoot)
|
||||
logger.info { "Extracting Sorayomi zip Done." }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ server.socksProxyPort = ""
|
||||
|
||||
# webUI
|
||||
server.webUIEnabled = true
|
||||
server.webUIFlavor = "WebUI" # "WebUI" or "Sorayomi" or "Custom"
|
||||
server.webUIFlavor = "WebUI" # "WebUI" or "Custom"
|
||||
server.initialOpenInBrowserEnabled = true
|
||||
server.webUIInterface = "browser" # "browser" or "electron"
|
||||
server.electronPath = ""
|
||||
|
||||
Reference in New Issue
Block a user