Use raw Kavita cover query URLs
This commit is contained in:
@@ -2,7 +2,7 @@ ext {
|
||||
kmkVersionCode = 1
|
||||
extName = 'Kavita'
|
||||
extClass = '.KavitaFactory'
|
||||
extVersionCode = 26
|
||||
extVersionCode = 27
|
||||
isNsfw = false
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
package eu.kanade.tachiyomi.extension.all.kavita
|
||||
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
|
||||
import java.net.URLEncoder
|
||||
|
||||
internal object KavitaImageUrls {
|
||||
fun cover(
|
||||
apiUrl: String,
|
||||
@@ -12,38 +9,17 @@ internal object KavitaImageUrls {
|
||||
apiKey: String,
|
||||
timestamp: String? = null,
|
||||
): String {
|
||||
val builder = "$apiUrl/image/$endpoint".toHttpUrlOrNull()?.newBuilder()
|
||||
?.addQueryParameter(idParam, id.toString())
|
||||
?.addQueryParameter("apiKey", apiKey)
|
||||
|
||||
if (!timestamp.isNullOrBlank()) {
|
||||
builder?.addQueryParameter("ts", timestamp)
|
||||
}
|
||||
|
||||
return builder?.build()?.toString()
|
||||
?: "$apiUrl/image/$endpoint?$idParam=$id&apiKey=${encodeQuery(apiKey)}${timestampQuery(timestamp)}"
|
||||
return "$apiUrl/image/$endpoint?$idParam=$id&apiKey=$apiKey${timestampQuery(timestamp)}"
|
||||
}
|
||||
|
||||
fun imagePath(apiUrl: String, path: String, apiKey: String): String {
|
||||
val separator = if (path.startsWith("/")) "" else "/"
|
||||
val url = "$apiUrl/image$separator$path"
|
||||
return url.toHttpUrlOrNull()?.newBuilder()
|
||||
?.addQueryParameter("apiKey", apiKey)
|
||||
?.build()
|
||||
?.toString()
|
||||
?: "$url?apiKey=${encodeQuery(apiKey)}"
|
||||
return "$apiUrl/image$separator$path?apiKey=$apiKey"
|
||||
}
|
||||
|
||||
fun withTimestamp(url: String, timestamp: String): String =
|
||||
url.toHttpUrlOrNull()?.newBuilder()
|
||||
?.addQueryParameter("ts", timestamp)
|
||||
?.build()
|
||||
?.toString()
|
||||
?: "$url${if (url.contains("?")) "&" else "?"}ts=${encodeQuery(timestamp)}"
|
||||
"$url${if (url.contains("?")) "&" else "?"}ts=$timestamp"
|
||||
|
||||
private fun timestampQuery(timestamp: String?): String =
|
||||
if (timestamp.isNullOrBlank()) "" else "&ts=${encodeQuery(timestamp)}"
|
||||
|
||||
private fun encodeQuery(value: String): String =
|
||||
URLEncoder.encode(value, "UTF-8").replace("+", "%20")
|
||||
if (timestamp.isNullOrBlank()) "" else "&ts=$timestamp"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user