mirror of
https://github.com/keiyoushi/extensions-source.git
synced 2024-11-26 04:03:01 +01:00
Multporn: fix popular listing (#154)
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
This commit is contained in:
parent
b1c39e9327
commit
0ebdbbd636
@ -6,7 +6,7 @@ ext {
|
||||
extName = 'Multporn'
|
||||
pkgNameSuffix = 'en.multporn'
|
||||
extClass = '.Multporn'
|
||||
extVersionCode = 3
|
||||
extVersionCode = 4
|
||||
isNsfw = true
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
package eu.kanade.tachiyomi.extension.en.multporn
|
||||
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.network.POST
|
||||
import eu.kanade.tachiyomi.network.asObservable
|
||||
import eu.kanade.tachiyomi.network.asObservableSuccess
|
||||
import eu.kanade.tachiyomi.source.model.Filter
|
||||
@ -12,18 +11,11 @@ import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import kotlinx.serialization.decodeFromString
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.json.JsonArray
|
||||
import kotlinx.serialization.json.jsonObject
|
||||
import kotlinx.serialization.json.jsonPrimitive
|
||||
import okhttp3.FormBody
|
||||
import okhttp3.Headers
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
|
||||
import okhttp3.MediaType.Companion.toMediaTypeOrNull
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.Request
|
||||
import okhttp3.Response
|
||||
import okhttp3.ResponseBody.Companion.toResponseBody
|
||||
import org.jsoup.nodes.Document
|
||||
import org.jsoup.nodes.Element
|
||||
import rx.Observable
|
||||
@ -47,36 +39,22 @@ class Multporn : ParsedHttpSource() {
|
||||
// Popular
|
||||
|
||||
private fun buildPopularMangaRequest(page: Int, filters: FilterList = FilterList()): Request {
|
||||
val body = FormBody.Builder()
|
||||
.addEncoded("page", page.toString())
|
||||
.addEncoded("view_name", "top")
|
||||
.addEncoded("view_display_id", "page")
|
||||
val url = "$baseUrl/best".toHttpUrl().newBuilder()
|
||||
.addQueryParameter("page", page.toString())
|
||||
|
||||
(if (filters.isEmpty()) getFilterList(POPULAR_DEFAULT_SORT_BY_FILTER_STATE) else filters).forEach {
|
||||
when (it) {
|
||||
is SortBySelectFilter -> body.addEncoded("sort_by", it.selected.uri)
|
||||
is SortOrderSelectFilter -> body.addEncoded("sort_order", it.selected.uri)
|
||||
is PopularTypeSelectFilter -> body.addEncoded("type", it.selected.uri)
|
||||
is SortBySelectFilter -> url.addQueryParameter("sort_by", it.selected.uri)
|
||||
is SortOrderSelectFilter -> url.addQueryParameter("sort_order", it.selected.uri)
|
||||
is PopularTypeSelectFilter -> url.addQueryParameter("type", it.selected.uri)
|
||||
else -> { }
|
||||
}
|
||||
}
|
||||
|
||||
return POST("$baseUrl/views/ajax", headers, body.build())
|
||||
return GET(url.build(), headers)
|
||||
}
|
||||
|
||||
override fun popularMangaRequest(page: Int) = buildPopularMangaRequest(page - 1)
|
||||
|
||||
override fun popularMangaParse(response: Response): MangasPage {
|
||||
val html = json.decodeFromString<JsonArray>(response.body.string())
|
||||
.last { it.jsonObject["command"]!!.jsonPrimitive.content == "insert" }.jsonObject["data"]!!.jsonPrimitive.content
|
||||
|
||||
return super.popularMangaParse(
|
||||
response.newBuilder()
|
||||
.body(html.toResponseBody("text/html; charset=UTF-8".toMediaTypeOrNull()))
|
||||
.build(),
|
||||
)
|
||||
}
|
||||
|
||||
override fun popularMangaSelector() = ".masonry-item"
|
||||
override fun popularMangaNextPageSelector() = ".pager-next a"
|
||||
override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
|
||||
@ -88,7 +66,7 @@ class Multporn : ParsedHttpSource() {
|
||||
// Latest
|
||||
|
||||
private fun buildLatestMangaRequest(page: Int, filters: FilterList = FilterList()): Request {
|
||||
val url = "$baseUrl/new".toHttpUrlOrNull()!!.newBuilder()
|
||||
val url = "$baseUrl/new".toHttpUrl().newBuilder()
|
||||
.addQueryParameter("page", page.toString())
|
||||
|
||||
(if (filters.isEmpty()) getFilterList(LATEST_DEFAULT_SORT_BY_FILTER_STATE) else filters).forEach {
|
||||
@ -126,7 +104,7 @@ class Multporn : ParsedHttpSource() {
|
||||
}
|
||||
|
||||
private fun buildSearchMangaRequest(page: Int, query: String, filtersArg: FilterList = FilterList()): Request {
|
||||
val url = "$baseUrl/search".toHttpUrlOrNull()!!.newBuilder()
|
||||
val url = "$baseUrl/search".toHttpUrl().newBuilder()
|
||||
.addQueryParameter("page", page.toString())
|
||||
.addQueryParameter("views_fulltext", query)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user