diff --git a/src/all/kavita/build.gradle b/src/all/kavita/build.gradle index ea324481..613a6804 100644 --- a/src/all/kavita/build.gradle +++ b/src/all/kavita/build.gradle @@ -2,7 +2,7 @@ ext { kmkVersionCode = 1 extName = 'Kavita' extClass = '.KavitaFactory' - extVersionCode = 31 + extVersionCode = 32 isNsfw = false } diff --git a/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/Kavita.kt b/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/Kavita.kt index 50449296..6d01b70a 100644 --- a/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/Kavita.kt +++ b/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/Kavita.kt @@ -81,7 +81,6 @@ import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy import java.io.IOException -import java.net.URLEncoder import java.security.MessageDigest import java.util.Calendar import java.util.Locale @@ -1815,9 +1814,16 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou .equals("true", ignoreCase = true) private fun readerImageUrl(chapterId: Any, page: Int, extractPdf: Boolean): String = - "$apiUrl/Reader/image?chapterId=$chapterId&page=$page&extractPdf=$extractPdf&saveProgress=true&apiKey=$apiKey&kavitaClient=${urlEncode(kavitaClientHeader())}&deviceId=${urlEncode(deviceFingerprint())}" - - private fun urlEncode(value: String): String = URLEncoder.encode(value, "UTF-8") + "$apiUrl/Reader/image".toHttpUrlOrNull()!!.newBuilder() + .addQueryParameter("chapterId", chapterId.toString()) + .addQueryParameter("page", page.toString()) + .addQueryParameter("extractPdf", extractPdf.toString()) + .addQueryParameter("saveProgress", "true") + .addQueryParameter("apiKey", apiKey) + .addQueryParameter("kavitaClient", kavitaClientHeader()) + .addQueryParameter("deviceId", deviceFingerprint()) + .build() + .toString() private fun readerPage(index: Int, chapterId: Any, page: Int = index, extractPdf: Boolean = false): Page { val imageUrl = readerImageUrl(chapterId, page, extractPdf) @@ -2109,17 +2115,13 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou private fun kavitaClientHeader(): String { val resources = application.resources val configuration = resources.configuration - val metrics = resources.displayMetrics - val screenWidth = metrics.widthPixels.coerceAtLeast(0) - val screenHeight = metrics.heightPixels.coerceAtLeast(0) val smallestWidthDp = configuration.smallestScreenWidthDp val deviceType = when { smallestWidthDp >= 600 -> "Tablet" else -> "Mobile" } - val orientation = if (screenWidth > screenHeight) "landscape" else "portrait" - return "web-app/${AppInfo.getVersionName()} (Kavita Extension/${AppInfo.getVersionName()}; Android; $deviceType; ${screenWidth}x$screenHeight; $orientation)" + return "opds-client/${AppInfo.getVersionName()} (Kavita Extension; Android; $deviceType)" } private fun deviceFingerprint(): String {