Prepare to drop UrlBuilder

This commit is contained in:
tarsin committed 2023-06-24 15:36:31 +08:00
1 parent eb18e74884
commit be2330f1b6
4 files changed
+47 -48

No files matched your search

@@ -130,17 +130,17 @@ object EhUrl {
fun getGalleryDetailUrl(gid: Long, token: String?, index: Int, allComment: Boolean): String {
val builder = UrlBuilder((host + "g/" + gid + '/' + token + '/').toHttpUrl().newBuilder())
if (index != 0) {
builder.addQuery("p", index)
builder.url.addEncodedQueryParameter("p", index.toString())
}
if (allComment) {
builder.addQuery("hc", 1)
builder.url.addEncodedQueryParameter("hc", 1.toString())
}
return builder.build()
return builder.url.toString()
}
fun getGalleryMultiPageViewerUrl(gid: Long, token: String): String {
val builder = UrlBuilder((host + "mpv/" + gid + '/' + token + '/').toHttpUrl().newBuilder())
return builder.build()
return builder.url.toString()
}
fun getPageUrl(gid: Long, index: Int, pToken: String): String {
@@ -38,15 +38,15 @@ class FavListUrlBuilder(
fun build(): String {
val ub = UrlBuilder(EhUrl.favoritesUrl.toHttpUrl().newBuilder())
if (isValidFavCat(favCat)) {
ub.addQuery("favcat", favCat.toString())
ub.url.addEncodedQueryParameter("favcat", favCat.toString())
} else if (favCat == FAV_CAT_ALL) {
ub.addQuery("favcat", "all")
ub.url.addEncodedQueryParameter("favcat", "all")
}
keyword?.takeIf { it.isNotBlank() }?.let { ub.addQuery("f_search", encodeUTF8(it)) }
mPrev?.takeIf { it.isNotEmpty() }?.let { ub.addQuery("prev", it) }
mNext?.takeIf { it.isNotEmpty() }?.let { ub.addQuery("next", it) }
jumpTo?.takeIf { it.isNotEmpty() }?.let { ub.addQuery("seek", it) }
return ub.build()
keyword?.takeIf { it.isNotBlank() }?.let { ub.url.addEncodedQueryParameter("f_search", encodeUTF8(it)) }
mPrev?.takeIf { it.isNotEmpty() }?.let { ub.url.addEncodedQueryParameter("prev", it) }
mNext?.takeIf { it.isNotEmpty() }?.let { ub.url.addEncodedQueryParameter("next", it) }
jumpTo?.takeIf { it.isNotEmpty() }?.let { ub.url.addEncodedQueryParameter("seek", it) }
return ub.url.toString()
}
companion object {
@@ -279,56 +279,63 @@ data class ListUrlBuilder(
}
val ub = UrlBuilder(url.toHttpUrl().newBuilder())
if (this.category != EhUtils.NONE) {
ub.addQuery("f_cats", category.inv() and EhUtils.ALL_CATEGORY)
}
hash?.let {
ub.addQuery("f_shash", it)
}
mJumpTo?.let {
ub.addQuery("seek", it)
}
mPrev?.let {
ub.addQuery("prev", it)
}
mNext?.let {
ub.addQuery("next", it)
ub.url.addEncodedQueryParameter("f_cats", (category.inv() and EhUtils.ALL_CATEGORY).toString())
}
hash?.let { ub.url.addEncodedQueryParameter("f_shash", it) }
mJumpTo?.let { ub.url.addEncodedQueryParameter("seek", it) }
mPrev?.let { ub.url.addEncodedQueryParameter("prev", it) }
mNext?.let { ub.url.addEncodedQueryParameter("next", it) }
// Search key
// the settings of ub:UrlBuilder may be overwritten by following Advance search
mKeyword?.split('|')?.forEachIndexed { idx, kwd ->
val keyword = kwd.trim { it <= ' ' }
when (idx) {
0 -> keyword.takeIf { it.isNotEmpty() }
?.let { ub.addQuery("f_search", encodeUTF8(it)) }
0 -> keyword.takeIf { it.isNotEmpty() }?.let { ub.url.addEncodedQueryParameter("f_search", encodeUTF8(it)) }
else -> keyword.indexOf(':').takeIf { it >= 0 }?.run {
val key = keyword.substring(0, this).trim { it <= ' ' }
val value = keyword.substring(this + 1).trim { it <= ' ' }
ub.addQuery(key, encodeUTF8(value))
ub.url.addEncodedQueryParameter(key, encodeUTF8(value))
}
}
}
// Advance search
if (advanceSearch != -1) {
ub.addQuery("advsearch", "1")
if (advanceSearch and AdvanceSearchTable.SH != 0) ub.addQuery("f_sh", "on")
if (advanceSearch and AdvanceSearchTable.STO != 0) ub.addQuery("f_sto", "on")
if (advanceSearch and AdvanceSearchTable.SFL != 0) ub.addQuery("f_sfl", "on")
if (advanceSearch and AdvanceSearchTable.SFU != 0) ub.addQuery("f_sfu", "on")
if (advanceSearch and AdvanceSearchTable.SFT != 0) ub.addQuery("f_sft", "on")
ub.url.addEncodedQueryParameter("advsearch", "1")
if (advanceSearch and AdvanceSearchTable.SH != 0) {
ub.url.addEncodedQueryParameter("f_sh", "on")
}
if (advanceSearch and AdvanceSearchTable.STO != 0) {
ub.url.addEncodedQueryParameter("f_sto", "on")
}
if (advanceSearch and AdvanceSearchTable.SFL != 0) {
ub.url.addEncodedQueryParameter("f_sfl", "on")
}
if (advanceSearch and AdvanceSearchTable.SFU != 0) {
ub.url.addEncodedQueryParameter("f_sfu", "on")
}
if (advanceSearch and AdvanceSearchTable.SFT != 0) {
ub.url.addEncodedQueryParameter("f_sft", "on")
}
// Set min star
if (minRating != -1) {
ub.addQuery("f_sr", "on")
ub.addQuery("f_srdd", minRating)
ub.url.addEncodedQueryParameter("f_sr", "on")
ub.url.addEncodedQueryParameter("f_srdd", minRating.toString())
}
// Pages
if (pageFrom != -1 || pageTo != -1) {
ub.addQuery("f_sp", "on")
ub.addQuery("f_spf", if (pageFrom != -1) pageFrom.toString() else "")
ub.addQuery("f_spt", if (pageTo != -1) pageTo.toString() else "")
ub.url.addEncodedQueryParameter("f_sp", "on")
ub.url.addEncodedQueryParameter(
"f_spf",
(if (pageFrom != -1) pageFrom.toString() else "").toString(),
)
ub.url.addEncodedQueryParameter(
"f_spt",
(if (pageTo != -1) pageTo.toString() else "").toString(),
)
}
}
ub.build()
ub.url.toString()
}
MODE_UPLOADER -> {
@@ -3,12 +3,4 @@ package com.hippo.ehviewer.network
import okhttp3.HttpUrl
@JvmInline
value class UrlBuilder(val url: HttpUrl.Builder) {
fun addQuery(key: String, value: Any) {
url.addEncodedQueryParameter(key, value.toString())
}
fun build(): String {
return url.toString()
}
}
value class UrlBuilder(val url: HttpUrl.Builder)