[RU]MangaLIb & YaoiLib fix agelimit filter & latestUpdates change (#13732)

* change redirect Exception massage

* merge last and popular
This commit is contained in:
Eshlender 2022-10-07 18:34:10 +05:00 committed by GitHub
parent 0c6ff5bab9
commit 1cb0baf862
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 26 deletions

View File

@ -52,8 +52,11 @@ class MangaLib : LibGroup("MangaLib", "https://mangalib.me", "ru") {
(if (filters.isEmpty()) getFilterList() else filters).forEach { filter ->
when (filter) {
is AgeList -> filter.state.forEach { age ->
if (age.state) {
url.addQueryParameter("caution[]", age.id)
if (age.state != Filter.TriState.STATE_IGNORE) {
url.addQueryParameter(
if (age.isIncluded()) "caution[include][]" else "caution[exclude][]",
age.id
)
}
}
is TagList -> filter.state.forEach { tag ->
@ -71,10 +74,9 @@ class MangaLib : LibGroup("MangaLib", "https://mangalib.me", "ru") {
// Filters
private class SearchFilter(name: String, val id: String) : Filter.TriState(name)
private class CheckFilter(name: String, val id: String) : Filter.CheckBox(name)
private class TagList(tags: List<SearchFilter>) : Filter.Group<SearchFilter>("Теги", tags)
private class AgeList(ages: List<CheckFilter>) : Filter.Group<CheckFilter>("Возрастное ограничение", ages)
private class AgeList(ages: List<SearchFilter>) : Filter.Group<SearchFilter>("Возрастное ограничение", ages)
override fun getFilterList(): FilterList {
val filters = super.getFilterList().toMutableList()
@ -185,9 +187,9 @@ class MangaLib : LibGroup("MangaLib", "https://mangalib.me", "ru") {
)
private fun getAgeList() = listOf(
CheckFilter("Отсутствует", "0"),
CheckFilter("16+", "1"),
CheckFilter("18+", "2")
SearchFilter("Отсутствует", "0"),
SearchFilter("16+", "1"),
SearchFilter("18+", "2")
)
companion object {

View File

@ -34,8 +34,11 @@ class YaoiLib : LibGroup("YaoiLib", "https://yaoilib.me", "ru") {
(if (filters.isEmpty()) getFilterList() else filters).forEach { filter ->
when (filter) {
is AgeList -> filter.state.forEach { age ->
if (age.state) {
url.addQueryParameter("caution[]", age.id)
if (age.state != Filter.TriState.STATE_IGNORE) {
url.addQueryParameter(
if (age.isIncluded()) "caution[include][]" else "caution[exclude][]",
age.id
)
}
}
is TagList -> filter.state.forEach { tag ->
@ -53,10 +56,9 @@ class YaoiLib : LibGroup("YaoiLib", "https://yaoilib.me", "ru") {
// Filters
private class SearchFilter(name: String, val id: String) : Filter.TriState(name)
private class CheckFilter(name: String, val id: String) : Filter.CheckBox(name)
private class TagList(tags: List<SearchFilter>) : Filter.Group<SearchFilter>("Теги", tags)
private class AgeList(ages: List<CheckFilter>) : Filter.Group<CheckFilter>("Возрастное ограничение", ages)
private class AgeList(ages: List<SearchFilter>) : Filter.Group<SearchFilter>("Возрастное ограничение", ages)
override fun getFilterList(): FilterList {
val filters = super.getFilterList().toMutableList()
@ -167,9 +169,9 @@ class YaoiLib : LibGroup("YaoiLib", "https://yaoilib.me", "ru") {
)
private fun getAgeList() = listOf(
CheckFilter("Отсутствует", "0"),
CheckFilter("16+", "1"),
CheckFilter("18+", "2")
SearchFilter("Отсутствует", "0"),
SearchFilter("16+", "1"),
SearchFilter("18+", "2")
)
companion object {

View File

@ -9,7 +9,7 @@ class LibGenerator : ThemeSourceGenerator {
override val themeClass = "LibGroup"
override val baseVersionCode: Int = 10
override val baseVersionCode: Int = 11
override val sources = listOf(
SingleLang("MangaLib", "https://mangalib.me", "ru", overrideVersionCode = 74),

View File

@ -124,23 +124,15 @@ abstract class LibGroup(
}
private fun fetchLatestMangaFromApi(page: Int): Observable<MangasPage> {
return client.newCall(POST("$baseUrl/latest-updates?page=$page", catalogHeaders()))
return client.newCall(POST("$baseUrl/filterlist?dir=desc&sort=last_chapter_at&page=$page", catalogHeaders()))
.asObservableSuccess()
.map { response ->
latestUpdatesParse(response)
}
}
override fun latestUpdatesParse(response: Response): MangasPage {
val resBody = response.body!!.string()
val result = json.decodeFromString<JsonObject>(resBody)
val itemsLatest = result["data"]?.jsonArray?.map { popularMangaFromElement(it) }
if (itemsLatest != null) {
val hasNextPage = result["next_page_url"]?.jsonPrimitive?.contentOrNull != null
return MangasPage(itemsLatest, hasNextPage)
}
return MangasPage(emptyList(), false)
}
override fun latestUpdatesParse(response: Response) =
popularMangaParse(response)
// Popular
override fun popularMangaRequest(page: Int) = GET(baseUrl, headers)