[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 -> (if (filters.isEmpty()) getFilterList() else filters).forEach { filter ->
when (filter) { when (filter) {
is AgeList -> filter.state.forEach { age -> is AgeList -> filter.state.forEach { age ->
if (age.state) { if (age.state != Filter.TriState.STATE_IGNORE) {
url.addQueryParameter("caution[]", age.id) url.addQueryParameter(
if (age.isIncluded()) "caution[include][]" else "caution[exclude][]",
age.id
)
} }
} }
is TagList -> filter.state.forEach { tag -> is TagList -> filter.state.forEach { tag ->
@ -71,10 +74,9 @@ class MangaLib : LibGroup("MangaLib", "https://mangalib.me", "ru") {
// Filters // Filters
private class SearchFilter(name: String, val id: String) : Filter.TriState(name) 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 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 { override fun getFilterList(): FilterList {
val filters = super.getFilterList().toMutableList() val filters = super.getFilterList().toMutableList()
@ -185,9 +187,9 @@ class MangaLib : LibGroup("MangaLib", "https://mangalib.me", "ru") {
) )
private fun getAgeList() = listOf( private fun getAgeList() = listOf(
CheckFilter("Отсутствует", "0"), SearchFilter("Отсутствует", "0"),
CheckFilter("16+", "1"), SearchFilter("16+", "1"),
CheckFilter("18+", "2") SearchFilter("18+", "2")
) )
companion object { companion object {

View File

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

View File

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

View File

@ -124,23 +124,15 @@ abstract class LibGroup(
} }
private fun fetchLatestMangaFromApi(page: Int): Observable<MangasPage> { 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() .asObservableSuccess()
.map { response -> .map { response ->
latestUpdatesParse(response) latestUpdatesParse(response)
} }
} }
override fun latestUpdatesParse(response: Response): MangasPage { override fun latestUpdatesParse(response: Response) =
val resBody = response.body!!.string() popularMangaParse(response)
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)
}
// Popular // Popular
override fun popularMangaRequest(page: Int) = GET(baseUrl, headers) override fun popularMangaRequest(page: Int) = GET(baseUrl, headers)