Report Kavita extension client info as OPDS reader
Some checks failed
CI / Prepare job (push) Has been cancelled
CI / Build extensions (${{ matrix.chunk.number }}) (push) Has been cancelled
CI / Publish extension repo (push) Has been cancelled
Create Release on Merge / release (push) Has been cancelled
Lock threads / lock (push) Has been cancelled
Some checks failed
CI / Prepare job (push) Has been cancelled
CI / Build extensions (${{ matrix.chunk.number }}) (push) Has been cancelled
CI / Publish extension repo (push) Has been cancelled
Create Release on Merge / release (push) Has been cancelled
Lock threads / lock (push) Has been cancelled
This commit is contained in:
@@ -2,7 +2,7 @@ ext {
|
||||
kmkVersionCode = 1
|
||||
extName = 'Kavita'
|
||||
extClass = '.KavitaFactory'
|
||||
extVersionCode = 31
|
||||
extVersionCode = 32
|
||||
isNsfw = false
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user