Prepare to drop UrlBuilder
This commit is contained in:
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)
|
||||
Reference in new issue
Block a user