[RU]MangaLIb & YaoiLib fix agelimit filter & latestUpdates change (#13732)
* change redirect Exception massage * merge last and popular
This commit is contained in:
parent
0c6ff5bab9
commit
1cb0baf862
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
@ -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),
|
||||||
|
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user