Cleanup ListUrlBuilder
This commit is contained in:
1 parent
a77a1fd3e1
commit
9131f6f8cb
3 files changed
+30
-26
No files matched your search
@@ -119,8 +119,8 @@ object EhUrl {
|
||||
|
||||
fun getGalleryDetailUrl(gid: Long, token: String?, index: Int, allComment: Boolean) = ehUrl {
|
||||
addPathSegments("g/$gid/$token/")
|
||||
if (index != 0) addEncodedQueryParameter("p", index.toString())
|
||||
if (allComment) addEncodedQueryParameter("hc", 1.toString())
|
||||
if (index != 0) addQueryParameter("p", "$index")
|
||||
if (allComment) addQueryParameter("hc", "1")
|
||||
}.toString()
|
||||
|
||||
fun getGalleryMultiPageViewerUrl(gid: Long, token: String) = ehUrl {
|
||||
@@ -146,3 +146,6 @@ object EhUrl {
|
||||
|
||||
inline fun httpsUrl(builder: HttpUrl.Builder.() -> Unit) = HttpUrl.Builder().apply(builder).scheme("https").build()
|
||||
inline fun ehUrl(builder: HttpUrl.Builder.() -> Unit) = httpsUrl { apply(builder).host(EhUrl.domain) }
|
||||
fun HttpUrl.Builder.addQueryParameterIfNotBlank(name: String, value: String?) = apply {
|
||||
if (!value.isNullOrBlank()) addQueryParameter(name, value)
|
||||
}
|
||||
@@ -17,8 +17,8 @@ package com.hippo.ehviewer.client.data
|
||||
|
||||
import android.os.Parcelable
|
||||
import com.hippo.ehviewer.client.EhUrl
|
||||
import com.hippo.ehviewer.client.addQueryParameterIfNotBlank
|
||||
import com.hippo.ehviewer.client.ehUrl
|
||||
import com.hippo.ehviewer.util.encodeUTF8
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
@Parcelize
|
||||
@@ -37,14 +37,14 @@ class FavListUrlBuilder(
|
||||
fun build() = ehUrl {
|
||||
addPathSegment(EhUrl.FAV_PATH)
|
||||
if (isValidFavCat(favCat)) {
|
||||
addEncodedQueryParameter("favcat", favCat.toString())
|
||||
addQueryParameter("favcat", "$favCat")
|
||||
} else if (favCat == FAV_CAT_ALL) {
|
||||
addEncodedQueryParameter("favcat", "all")
|
||||
addQueryParameter("favcat", "all")
|
||||
}
|
||||
keyword?.takeIf { it.isNotBlank() }?.let { addEncodedQueryParameter("f_search", encodeUTF8(it)) }
|
||||
mPrev?.takeIf { it.isNotEmpty() }?.let { addEncodedQueryParameter("prev", it) }
|
||||
mNext?.takeIf { it.isNotEmpty() }?.let { addEncodedQueryParameter("next", it) }
|
||||
jumpTo?.takeIf { it.isNotEmpty() }?.let { addEncodedQueryParameter("seek", it) }
|
||||
addQueryParameterIfNotBlank("f_search", keyword)
|
||||
addQueryParameterIfNotBlank("prev", mPrev)
|
||||
addQueryParameterIfNotBlank("next", mNext)
|
||||
addQueryParameterIfNotBlank("seek", jumpTo)
|
||||
}.toString()
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -19,6 +19,7 @@ import android.os.Parcelable
|
||||
import androidx.annotation.IntDef
|
||||
import com.hippo.ehviewer.client.EhUrl
|
||||
import com.hippo.ehviewer.client.EhUtils
|
||||
import com.hippo.ehviewer.client.addQueryParameterIfNotBlank
|
||||
import com.hippo.ehviewer.client.ehUrl
|
||||
import com.hippo.ehviewer.dao.QuickSearch
|
||||
import com.hippo.ehviewer.ui.legacy.AdvanceSearchTable
|
||||
@@ -275,55 +276,55 @@ data class ListUrlBuilder(
|
||||
if (category != EhUtils.NONE) {
|
||||
addEncodedQueryParameter("f_cats", (category.inv() and EhUtils.ALL_CATEGORY).toString())
|
||||
}
|
||||
hash?.let { addEncodedQueryParameter("f_shash", it) }
|
||||
mJumpTo?.let { addEncodedQueryParameter("seek", it) }
|
||||
mPrev?.let { addEncodedQueryParameter("prev", it) }
|
||||
mNext?.let { addEncodedQueryParameter("next", it) }
|
||||
addQueryParameterIfNotBlank("f_shash", hash)
|
||||
addQueryParameterIfNotBlank("prev", mPrev)
|
||||
addQueryParameterIfNotBlank("next", mNext)
|
||||
addQueryParameterIfNotBlank("seek", mJumpTo)
|
||||
// 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 { addEncodedQueryParameter("f_search", encodeUTF8(it)) }
|
||||
0 -> addQueryParameterIfNotBlank("f_search", keyword)
|
||||
|
||||
else -> keyword.indexOf(':').takeIf { it >= 0 }?.run {
|
||||
val key = keyword.substring(0, this).trim { it <= ' ' }
|
||||
val value = keyword.substring(this + 1).trim { it <= ' ' }
|
||||
addEncodedQueryParameter(key, encodeUTF8(value))
|
||||
addQueryParameterIfNotBlank(key, value)
|
||||
}
|
||||
}
|
||||
}
|
||||
// Advance search
|
||||
if (advanceSearch != -1) {
|
||||
addEncodedQueryParameter("advsearch", "1")
|
||||
addQueryParameter("advsearch", "1")
|
||||
if (advanceSearch and AdvanceSearchTable.SH != 0) {
|
||||
addEncodedQueryParameter("f_sh", "on")
|
||||
addQueryParameter("f_sh", "on")
|
||||
}
|
||||
if (advanceSearch and AdvanceSearchTable.STO != 0) {
|
||||
addEncodedQueryParameter("f_sto", "on")
|
||||
addQueryParameter("f_sto", "on")
|
||||
}
|
||||
if (advanceSearch and AdvanceSearchTable.SFL != 0) {
|
||||
addEncodedQueryParameter("f_sfl", "on")
|
||||
addQueryParameter("f_sfl", "on")
|
||||
}
|
||||
if (advanceSearch and AdvanceSearchTable.SFU != 0) {
|
||||
addEncodedQueryParameter("f_sfu", "on")
|
||||
addQueryParameter("f_sfu", "on")
|
||||
}
|
||||
if (advanceSearch and AdvanceSearchTable.SFT != 0) {
|
||||
addEncodedQueryParameter("f_sft", "on")
|
||||
addQueryParameter("f_sft", "on")
|
||||
}
|
||||
// Set min star
|
||||
if (minRating != -1) {
|
||||
addEncodedQueryParameter("f_sr", "on")
|
||||
addEncodedQueryParameter("f_srdd", minRating.toString())
|
||||
addQueryParameter("f_sr", "on")
|
||||
addQueryParameter("f_srdd", "$minRating")
|
||||
}
|
||||
// Pages
|
||||
if (pageFrom != -1 || pageTo != -1) {
|
||||
addEncodedQueryParameter("f_sp", "on")
|
||||
addEncodedQueryParameter(
|
||||
addQueryParameter("f_sp", "on")
|
||||
addQueryParameter(
|
||||
"f_spf",
|
||||
(if (pageFrom != -1) pageFrom.toString() else "").toString(),
|
||||
)
|
||||
addEncodedQueryParameter(
|
||||
addQueryParameter(
|
||||
"f_spt",
|
||||
(if (pageTo != -1) pageTo.toString() else "").toString(),
|
||||
)
|
||||
|
||||
Reference in new issue
Block a user