Drop UrlBuilder
This commit is contained in:
1 parent
9dfc1324ad
commit
a77a1fd3e1
5 files changed
+33
-58
No files matched your search
@@ -26,14 +26,14 @@ object EhUrl {
|
||||
const val DOMAIN_LOFI = "lofi.e-hentai.org"
|
||||
const val HOST_EX = "https://$DOMAIN_EX/"
|
||||
const val API_EX = HOST_EX + "api.php"
|
||||
const val FAV_PATH = "favorites.php"
|
||||
const val WATCHED_PATH = "watched"
|
||||
const val URL_UCONFIG_EX = HOST_EX + "uconfig.php"
|
||||
const val URL_MY_TAGS_EX = HOST_EX + "mytags"
|
||||
const val URL_WATCHED_EX = HOST_EX + "watched"
|
||||
const val HOST_E = "https://$DOMAIN_E/"
|
||||
const val API_E = HOST_E + "api.php"
|
||||
const val URL_UCONFIG_E = HOST_E + "uconfig.php"
|
||||
const val URL_MY_TAGS_E = HOST_E + "mytags"
|
||||
const val URL_WATCHED_E = HOST_E + "watched"
|
||||
const val API_SIGN_IN = "https://forums.e-hentai.org/index.php?act=Login&CODE=01"
|
||||
const val URL_POPULAR_E = "https://e-hentai.org/popular"
|
||||
const val URL_POPULAR_EX = "https://exhentai.org/popular"
|
||||
@@ -113,26 +113,17 @@ object EhUrl {
|
||||
else -> URL_IMAGE_SEARCH_E
|
||||
}
|
||||
|
||||
val watchedUrl: String
|
||||
get() = when (Settings.gallerySite) {
|
||||
SITE_E -> URL_WATCHED_E
|
||||
SITE_EX -> URL_WATCHED_EX
|
||||
else -> URL_WATCHED_E
|
||||
}
|
||||
|
||||
fun getGalleryDetailUrl(gid: Long, token: String?): String {
|
||||
return getGalleryDetailUrl(gid, token, 0, false)
|
||||
}
|
||||
|
||||
fun getGalleryDetailUrl(gid: Long, token: String?, index: Int, allComment: Boolean) = httpsUrl {
|
||||
host(domain)
|
||||
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())
|
||||
}.toString()
|
||||
|
||||
fun getGalleryMultiPageViewerUrl(gid: Long, token: String) = httpsUrl {
|
||||
host(domain)
|
||||
fun getGalleryMultiPageViewerUrl(gid: Long, token: String) = ehUrl {
|
||||
addPathSegments("mpv/$gid/$token/")
|
||||
}.toString()
|
||||
|
||||
@@ -154,3 +145,4 @@ 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) }
|
||||
@@ -17,7 +17,7 @@ package com.hippo.ehviewer.client.data
|
||||
|
||||
import android.os.Parcelable
|
||||
import com.hippo.ehviewer.client.EhUrl
|
||||
import com.hippo.ehviewer.client.httpsUrl
|
||||
import com.hippo.ehviewer.client.ehUrl
|
||||
import com.hippo.ehviewer.util.encodeUTF8
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
@@ -34,9 +34,8 @@ class FavListUrlBuilder(
|
||||
mPrev = index.takeUnless { isNext }
|
||||
}
|
||||
|
||||
fun build() = httpsUrl {
|
||||
host(EhUrl.domain)
|
||||
addPathSegment("favorites.php")
|
||||
fun build() = ehUrl {
|
||||
addPathSegment(EhUrl.FAV_PATH)
|
||||
if (isValidFavCat(favCat)) {
|
||||
addEncodedQueryParameter("favcat", favCat.toString())
|
||||
} else if (favCat == FAV_CAT_ALL) {
|
||||
|
||||
@@ -19,13 +19,12 @@ 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.ehUrl
|
||||
import com.hippo.ehviewer.dao.QuickSearch
|
||||
import com.hippo.ehviewer.network.UrlBuilder
|
||||
import com.hippo.ehviewer.ui.legacy.AdvanceSearchTable
|
||||
import com.hippo.ehviewer.util.encodeUTF8
|
||||
import com.hippo.ehviewer.yorozuya.toIntOrDefault
|
||||
import kotlinx.parcelize.Parcelize
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import java.io.UnsupportedEncodingException
|
||||
import java.net.URLDecoder
|
||||
|
||||
@@ -271,72 +270,66 @@ data class ListUrlBuilder(
|
||||
|
||||
fun build(): String {
|
||||
return when (mode) {
|
||||
MODE_NORMAL, MODE_SUBSCRIPTION -> {
|
||||
val url: String = if (mode == MODE_NORMAL) {
|
||||
EhUrl.host
|
||||
} else {
|
||||
EhUrl.watchedUrl
|
||||
MODE_NORMAL, MODE_SUBSCRIPTION -> ehUrl {
|
||||
if (mode == MODE_SUBSCRIPTION) addPathSegment(EhUrl.WATCHED_PATH)
|
||||
if (category != EhUtils.NONE) {
|
||||
addEncodedQueryParameter("f_cats", (category.inv() and EhUtils.ALL_CATEGORY).toString())
|
||||
}
|
||||
val ub = UrlBuilder(url.toHttpUrl().newBuilder())
|
||||
if (this.category != EhUtils.NONE) {
|
||||
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) }
|
||||
hash?.let { addEncodedQueryParameter("f_shash", it) }
|
||||
mJumpTo?.let { addEncodedQueryParameter("seek", it) }
|
||||
mPrev?.let { addEncodedQueryParameter("prev", it) }
|
||||
mNext?.let { 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.url.addEncodedQueryParameter("f_search", encodeUTF8(it)) }
|
||||
0 -> keyword.takeIf { it.isNotEmpty() }?.let { 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.url.addEncodedQueryParameter(key, encodeUTF8(value))
|
||||
addEncodedQueryParameter(key, encodeUTF8(value))
|
||||
}
|
||||
}
|
||||
}
|
||||
// Advance search
|
||||
if (advanceSearch != -1) {
|
||||
ub.url.addEncodedQueryParameter("advsearch", "1")
|
||||
addEncodedQueryParameter("advsearch", "1")
|
||||
if (advanceSearch and AdvanceSearchTable.SH != 0) {
|
||||
ub.url.addEncodedQueryParameter("f_sh", "on")
|
||||
addEncodedQueryParameter("f_sh", "on")
|
||||
}
|
||||
if (advanceSearch and AdvanceSearchTable.STO != 0) {
|
||||
ub.url.addEncodedQueryParameter("f_sto", "on")
|
||||
addEncodedQueryParameter("f_sto", "on")
|
||||
}
|
||||
if (advanceSearch and AdvanceSearchTable.SFL != 0) {
|
||||
ub.url.addEncodedQueryParameter("f_sfl", "on")
|
||||
addEncodedQueryParameter("f_sfl", "on")
|
||||
}
|
||||
if (advanceSearch and AdvanceSearchTable.SFU != 0) {
|
||||
ub.url.addEncodedQueryParameter("f_sfu", "on")
|
||||
addEncodedQueryParameter("f_sfu", "on")
|
||||
}
|
||||
if (advanceSearch and AdvanceSearchTable.SFT != 0) {
|
||||
ub.url.addEncodedQueryParameter("f_sft", "on")
|
||||
addEncodedQueryParameter("f_sft", "on")
|
||||
}
|
||||
// Set min star
|
||||
if (minRating != -1) {
|
||||
ub.url.addEncodedQueryParameter("f_sr", "on")
|
||||
ub.url.addEncodedQueryParameter("f_srdd", minRating.toString())
|
||||
addEncodedQueryParameter("f_sr", "on")
|
||||
addEncodedQueryParameter("f_srdd", minRating.toString())
|
||||
}
|
||||
// Pages
|
||||
if (pageFrom != -1 || pageTo != -1) {
|
||||
ub.url.addEncodedQueryParameter("f_sp", "on")
|
||||
ub.url.addEncodedQueryParameter(
|
||||
addEncodedQueryParameter("f_sp", "on")
|
||||
addEncodedQueryParameter(
|
||||
"f_spf",
|
||||
(if (pageFrom != -1) pageFrom.toString() else "").toString(),
|
||||
)
|
||||
ub.url.addEncodedQueryParameter(
|
||||
addEncodedQueryParameter(
|
||||
"f_spt",
|
||||
(if (pageTo != -1) pageTo.toString() else "").toString(),
|
||||
)
|
||||
}
|
||||
}
|
||||
ub.url.toString()
|
||||
}
|
||||
}.toString()
|
||||
|
||||
MODE_UPLOADER -> {
|
||||
val sb = StringBuilder(EhUrl.host)
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
package com.hippo.ehviewer.network
|
||||
|
||||
import okhttp3.HttpUrl
|
||||
|
||||
@JvmInline
|
||||
value class UrlBuilder(val url: HttpUrl.Builder)
|
||||
@@ -45,7 +45,7 @@ import com.hippo.ehviewer.client.EhEngine
|
||||
import com.hippo.ehviewer.client.EhUrl
|
||||
import com.hippo.ehviewer.client.data.FavListUrlBuilder
|
||||
import com.hippo.ehviewer.client.data.GalleryInfo
|
||||
import com.hippo.ehviewer.client.httpsUrl
|
||||
import com.hippo.ehviewer.client.ehUrl
|
||||
import com.hippo.ehviewer.client.parser.FavoritesParser
|
||||
import com.hippo.ehviewer.databinding.DrawerListRvBinding
|
||||
import com.hippo.ehviewer.databinding.ItemDrawerFavoritesBinding
|
||||
@@ -821,10 +821,7 @@ class FavoritesScene :
|
||||
mModifyGiList.clear()
|
||||
val url: String = if (local) {
|
||||
// Local fav is shown now, but operation need be done for cloud fav
|
||||
httpsUrl {
|
||||
host(EhUrl.domain)
|
||||
addPathSegments("favorites.php")
|
||||
}.toString()
|
||||
ehUrl { addPathSegments(EhUrl.FAV_PATH) }.toString()
|
||||
} else {
|
||||
mUrlBuilder!!.build()
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user