Cleanup EhEngine

This commit is contained in:
tarsin committed 2023-04-28 09:34:30 +08:00
1 parent af9125792c
commit f2641adfd2
4 files changed
+20 -48

No files matched your search

@@ -58,7 +58,6 @@ import okhttp3.MediaType.Companion.toMediaType
import okhttp3.MultipartBody
import okhttp3.Request
import okhttp3.RequestBody.Companion.asRequestBody
import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.executeAsync
import org.json.JSONArray
import org.jsoup.Jsoup
@@ -140,7 +139,7 @@ object EhEngine {
val url = EhUrl.API_SIGN_IN
val origin = "https://forums.e-hentai.org"
return ehRequest(url, referer, origin) {
formbody {
form {
add("referer", referer)
add("b", "")
add("bt", "")
@@ -279,7 +278,7 @@ object EhEngine {
id: String?,
): GalleryCommentList {
return ehRequest(url, url, EhUrl.origin) {
formbody {
form {
if (id == null) {
add("commenttext_new", comment)
} else {
@@ -342,7 +341,7 @@ object EhEngine {
}
val url = EhUrl.getAddFavorites(gid, token)
return ehRequest(url, url, EhUrl.origin) {
formbody {
form {
add("favcat", catStr)
add("favnote", note ?: "")
// submit=Add+to+Favorites is not necessary, just use submit=Apply+Changes all the time
@@ -386,7 +385,7 @@ object EhEngine {
}
}
return ehRequest(url, url, EhUrl.origin) {
formbody {
form {
add("ddact", catStr)
for (gid in gidArray) {
add("modifygids[]", gid.toString())
@@ -431,7 +430,7 @@ object EhEngine {
val url = EhUrl.getDownloadArchive(gid, token, or)
val referer = EhUrl.getGalleryDetailUrl(gid, token)
val request = ehRequest(url, referer, EhUrl.origin) {
formbody {
form {
if (isHAtH) {
add("hathdl_xres", res)
} else {
@@ -475,7 +474,7 @@ object EhEngine {
suspend fun resetImageLimits(): HomeParser.Limits? {
return ehRequest(EhUrl.URL_HOME) {
formbody {
form {
add("act", "limits")
add("reset", "Reset Limit")
}
@@ -556,42 +555,16 @@ object EhEngine {
image: File,
uss: Boolean,
osc: Boolean,
se: Boolean,
): GalleryListParser.Result {
val builder = MultipartBody.Builder()
builder.setType(MultipartBody.FORM)
builder.addPart(
Headers.headersOf(
"Content-Disposition",
"form-data; name=\"sfile\"; filename=\"a.jpg\"",
),
image.asRequestBody(MEDIA_TYPE_JPEG),
)
if (uss) {
builder.addPart(
Headers.headersOf("Content-Disposition", "form-data; name=\"fs_similar\""),
"on".toRequestBody(),
)
}
if (osc) {
builder.addPart(
Headers.headersOf("Content-Disposition", "form-data; name=\"fs_covers\""),
"on".toRequestBody(),
)
}
if (se) {
builder.addPart(
Headers.headersOf("Content-Disposition", "form-data; name=\"fs_exp\""),
"on".toRequestBody(),
)
}
builder.addPart(
Headers.headersOf("Content-Disposition", "form-data; name=\"f_sfile\""),
"File Search".toRequestBody(),
)
return ehRequest(EhUrl.imageSearchUrl, EhUrl.referer, EhUrl.origin) { post(builder.build()) }
.executeAndParsingWith(GalleryListParser::parse)
.apply { fillGalleryList(galleryInfoList, EhUrl.imageSearchUrl, true) }
return ehRequest(EhUrl.imageSearchUrl, EhUrl.referer, EhUrl.origin) {
multipart {
setType(MultipartBody.FORM)
addFormDataPart("sfile", "a.jpg", image.asRequestBody(MEDIA_TYPE_JPEG))
if (uss) addFormDataPart("fs_similar", "on")
if (osc) addFormDataPart("fs_covers", "on")
addFormDataPart("f_sfile", "File Search")
}
}.executeAndParsingWith(GalleryListParser::parse).apply { fillGalleryList(galleryInfoList, EhUrl.imageSearchUrl, true) }
}
suspend fun getGalleryPage(
@@ -606,7 +579,7 @@ object EhEngine {
suspend fun getGalleryPageApi(
gid: Long,
index: Int,
pToken: String?,
pToken: String,
showKey: String?,
previousPToken: String?,
): GalleryPageApiParser.Result {
@@ -19,6 +19,7 @@ import io.ktor.http.HttpMessageBuilder
import okhttp3.FormBody
import okhttp3.MediaType
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.MultipartBody
import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody
import org.json.JSONObject
@@ -31,7 +32,9 @@ inline fun ehRequest(url: String, referer: String? = null, origin: String? = nul
origin?.let { addHeader("Origin", it) }
}.apply(builder).build()
inline fun Request.Builder.formbody(builder: FormBody.Builder.() -> Unit) = post(FormBody.Builder().apply(builder).build())
inline fun Request.Builder.form(builder: FormBody.Builder.() -> Unit) = post(FormBody.Builder().apply(builder).build())
inline fun Request.Builder.multipart(builder: MultipartBody.Builder.() -> Unit) = post(MultipartBody.Builder().apply(builder).build())
val MEDIA_TYPE_JSON: MediaType = "application/json; charset=utf-8".toMediaType()
@@ -47,7 +47,6 @@ data class ListUrlBuilder(
var imagePath: String? = null,
var isUseSimilarityScan: Boolean = false,
var isOnlySearchCovers: Boolean = false,
var isShowExpunged: Boolean = false,
) : Parcelable {
fun reset() {
@@ -64,7 +63,6 @@ data class ListUrlBuilder(
imagePath = null
isUseSimilarityScan = false
isOnlySearchCovers = false
isShowExpunged = false
mSHash = null
}
@@ -94,7 +92,6 @@ data class ListUrlBuilder(
imagePath = null
isUseSimilarityScan = false
isOnlySearchCovers = false
isShowExpunged = false
}
fun toQuickSearch(): QuickSearch {
@@ -1300,7 +1300,6 @@ class GalleryListScene :
File(StringUtils.avoidNull(mUrlBuilder.imagePath)),
mUrlBuilder.isUseSimilarityScan,
mUrlBuilder.isOnlySearchCovers,
mUrlBuilder.isShowExpunged,
)
} else {
val url = mUrlBuilder.build()