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