diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhUrl.kt b/app/src/main/java/com/hippo/ehviewer/client/EhUrl.kt index 411c436c6..a33c4064d 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhUrl.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/EhUrl.kt @@ -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 { diff --git a/app/src/main/java/com/hippo/ehviewer/client/data/FavListUrlBuilder.kt b/app/src/main/java/com/hippo/ehviewer/client/data/FavListUrlBuilder.kt index cb1ea8792..807ba9b3f 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/data/FavListUrlBuilder.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/data/FavListUrlBuilder.kt @@ -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 { diff --git a/app/src/main/java/com/hippo/ehviewer/client/data/ListUrlBuilder.kt b/app/src/main/java/com/hippo/ehviewer/client/data/ListUrlBuilder.kt index 35aaca2be..e65506ad2 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/data/ListUrlBuilder.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/data/ListUrlBuilder.kt @@ -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 -> { diff --git a/app/src/main/java/com/hippo/ehviewer/network/UrlBuilder.kt b/app/src/main/java/com/hippo/ehviewer/network/UrlBuilder.kt index 75daabe72..89cf03ea0 100644 --- a/app/src/main/java/com/hippo/ehviewer/network/UrlBuilder.kt +++ b/app/src/main/java/com/hippo/ehviewer/network/UrlBuilder.kt @@ -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)