[Liliana] Fix chapters order

Koitharu 2 years ago
parent 1406165789
commit 0150ede4cb
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -1 +1 @@
total: 1121 total: 1122

@ -1,24 +1,20 @@
package org.koitharu.kotatsu.parsers.site.liliana package org.koitharu.kotatsu.parsers.site.liliana
import kotlinx.coroutines.async
import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.coroutineScope
import org.json.JSONObject import org.jsoup.Jsoup
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.PagedMangaParser import org.koitharu.kotatsu.parsers.PagedMangaParser
import org.koitharu.kotatsu.parsers.config.ConfigKey import org.koitharu.kotatsu.parsers.config.ConfigKey
import org.koitharu.kotatsu.parsers.model.* import org.koitharu.kotatsu.parsers.model.*
import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.*
import java.text.SimpleDateFormat
import org.jsoup.Jsoup
import java.util.* import java.util.*
internal abstract class LilianaParser( internal abstract class LilianaParser(
context: MangaLoaderContext, context: MangaLoaderContext,
source: MangaParserSource, source: MangaParserSource,
domain: String, domain: String,
pageSize: Int = 24 pageSize: Int = 24,
) : PagedMangaParser(context, source, pageSize) { ) : PagedMangaParser(context, source, pageSize) {
override val configKeyDomain = ConfigKey.Domain(domain) override val configKeyDomain = ConfigKey.Domain(domain)
@ -33,14 +29,14 @@
SortOrder.POPULARITY, SortOrder.POPULARITY,
SortOrder.ALPHABETICAL, SortOrder.ALPHABETICAL,
SortOrder.NEWEST, SortOrder.NEWEST,
SortOrder.RATING_ASC SortOrder.RATING_ASC,
) )
override val filterCapabilities: MangaListFilterCapabilities override val filterCapabilities: MangaListFilterCapabilities
get() = MangaListFilterCapabilities( get() = MangaListFilterCapabilities(
isMultipleTagsSupported = true, isMultipleTagsSupported = true,
isSearchSupported = true, isSearchSupported = true,
isSearchWithFiltersSupported = true isSearchWithFiltersSupported = true,
) )
override suspend fun getListPage(page: Int, order: SortOrder, filter: MangaListFilter): List<Manga> { override suspend fun getListPage(page: Int, order: SortOrder, filter: MangaListFilter): List<Manga> {
@ -53,6 +49,7 @@
append("?keyword=") append("?keyword=")
append(filter.query.urlEncoded()) append(filter.query.urlEncoded())
} }
else -> { else -> {
append("/filter") append("/filter")
} }
@ -77,13 +74,15 @@
if (filter.states.isNotEmpty()) { if (filter.states.isNotEmpty()) {
append("&status=") append("&status=")
append(when (filter.states.first()) { append(
when (filter.states.first()) {
MangaState.ONGOING -> "on-going" MangaState.ONGOING -> "on-going"
MangaState.FINISHED -> "completed" MangaState.FINISHED -> "completed"
MangaState.PAUSED -> "on-hold" MangaState.PAUSED -> "on-hold"
MangaState.ABANDONED -> "canceled" MangaState.ABANDONED -> "canceled"
else -> "all" else -> "all"
}) },
)
} }
} }
@ -131,20 +130,21 @@
"canceled", "đã huỷ bỏ", "キャンセル" -> MangaState.ABANDONED "canceled", "đã huỷ bỏ", "キャンセル" -> MangaState.ABANDONED
else -> null else -> null
}, },
chapters = doc.select("ul > li.chapter").mapChapters { i, element -> chapters = doc.select("ul > li.chapter").mapChapters(reversed = true) { i, element ->
val href = element.selectFirstOrThrow("a").attrAsRelativeUrl("href") val href = element.selectFirstOrThrow("a").attrAsRelativeUrl("href")
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = element.selectFirst("a")?.text().orEmpty(), name = element.selectFirst("a")?.text().orEmpty(),
number = doc.select("ul > li.chapter").size - i.toFloat(), number = i + 1f,
url = href, url = href,
scanlator = null, scanlator = null,
uploadDate = element.selectFirst("time[datetime]")?.attr("datetime")?.toLongOrNull()?.times(1000) ?: 0L, uploadDate = element.selectFirst("time[datetime]")?.attr("datetime")?.toLongOrNull()?.times(1000)
?: 0L,
branch = null, branch = null,
source = source, source = source,
volume = 0 volume = 0,
) )
} },
) )
} }
@ -199,6 +199,6 @@
override suspend fun getFilterOptions(): MangaListFilterOptions = MangaListFilterOptions( override suspend fun getFilterOptions(): MangaListFilterOptions = MangaListFilterOptions(
availableTags = getAvailableTags(), availableTags = getAvailableTags(),
availableStates = setOf(MangaState.ONGOING, MangaState.FINISHED, MangaState.PAUSED, MangaState.ABANDONED) availableStates = setOf(MangaState.ONGOING, MangaState.FINISHED, MangaState.PAUSED, MangaState.ABANDONED),
) )
} }

Loading…
Cancel
Save