MangaAlarab: some fixes (#8786)

Fix wrong Latest update page
Fix some Filters
This commit is contained in:
Ahmed gamal 2021-08-24 12:43:49 +02:00 committed by GitHub
parent 4d1bc517f2
commit 8fbd3ab39d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 42 additions and 24 deletions

View File

@ -5,7 +5,7 @@ ext {
extName = 'مانجا العرب' extName = 'مانجا العرب'
pkgNameSuffix = 'ar.mangaalarab' pkgNameSuffix = 'ar.mangaalarab'
extClass = '.MangaAlarab' extClass = '.MangaAlarab'
extVersionCode = 4 extVersionCode = 5
libVersion = '1.2' libVersion = '1.2'
} }

View File

@ -51,9 +51,17 @@ class MangaAlarab : ParsedHttpSource() {
return GET(baseUrl) return GET(baseUrl)
} }
override fun latestUpdatesSelector() = popularMangaSelector() override fun latestUpdatesSelector() = "section:nth-child(5) > div.container > div > article"
override fun latestUpdatesFromElement(element: Element): SManga = popularMangaFromElement(element) override fun latestUpdatesFromElement(element: Element): SManga {
return SManga.create().apply {
element.select("figure > a").let {
setUrlWithoutDomain(it.attr("abs:href"))
title = element.select("img").attr("title")
thumbnail_url = element.select("img").attr("data-src")
}
}
}
override fun latestUpdatesNextPageSelector(): String? = null override fun latestUpdatesNextPageSelector(): String? = null
@ -68,8 +76,16 @@ class MangaAlarab : ParsedHttpSource() {
when (filter) { when (filter) {
is SortFilter -> url.addQueryParameter("order", filter.toUriPart()) is SortFilter -> url.addQueryParameter("order", filter.toUriPart())
is OTypeFilter -> url.addQueryParameter("order_type", filter.toUriPart()) is OTypeFilter -> url.addQueryParameter("order_type", filter.toUriPart())
is StatusFilter -> url.addQueryParameter("statuses[]", filter.toUriPart()) is StatusFilter -> {
is TypeFilter -> url.addQueryParameter("types[]", filter.toUriPart()) filter.state
.filter { it.state != Filter.TriState.STATE_IGNORE }
.forEach { url.addQueryParameter("statuses[]", it.id) }
}
is TypeFilter -> {
filter.state
.filter { it.state != Filter.TriState.STATE_IGNORE }
.forEach { url.addQueryParameter("types[]", it.id) }
}
is GenreFilter -> { is GenreFilter -> {
filter.state filter.state
.filter { it.state != Filter.TriState.STATE_IGNORE } .filter { it.state != Filter.TriState.STATE_IGNORE }
@ -151,26 +167,30 @@ class MangaAlarab : ParsedHttpSource() {
override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used") override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used")
// Filters
override fun getFilterList() = FilterList( override fun getFilterList() = FilterList(
Filter.Header("NOTE: Ignored if using text search!"), Filter.Header("NOTE: Ignored if using text search!"),
Filter.Separator(), Filter.Separator(),
SortFilter(getSortFilters()), SortFilter(getSortFilters()),
OTypeFilter(getOTypeFilters()), OTypeFilter(getOTypeFilters()),
Filter.Separator(),
Filter.Header("Genre exclusion not available for all sources"),
StatusFilter(getStatusFilters()),
TypeFilter(getTypeFilter()),
GenresSelection(getGenresSelection()), GenresSelection(getGenresSelection()),
Filter.Separator(), Filter.Separator(),
Filter.Header("Genre exclusion not available for all sources"), Filter.Header("exclusion not available for This source"),
StatusFilter(getStatusFilters()),
TypeFilter(getTypeFilter()),
Filter.Separator(),
Filter.Header("Genre exclusion not available for This source"),
GenreFilter(getGenreFilters()), GenreFilter(getGenreFilters()),
) )
private class SortFilter(vals: Array<Pair<String?, String>>) : UriPartFilter("Order by", vals) private class SortFilter(vals: Array<Pair<String?, String>>) : UriPartFilter("Order by", vals)
private class OTypeFilter(vals: Array<Pair<String?, String>>) : UriPartFilter("Order Type", vals) private class OTypeFilter(vals: Array<Pair<String?, String>>) : UriPartFilter("Order Type", vals)
private class TypeFilter(vals: Array<Pair<String?, String>>) : UriPartFilter("Type", vals)
private class StatusFilter(vals: Array<Pair<String?, String>>) : UriPartFilter("Status", vals)
private class GenresSelection(vals: Array<Pair<String?, String>>) : UriPartFilter("Genres Selection", vals) private class GenresSelection(vals: Array<Pair<String?, String>>) : UriPartFilter("Genres Selection", vals)
class Type(name: String, val id: String = name) : Filter.TriState(name)
private class TypeFilter(types: List<Type>) : Filter.Group<Type>("Type", types)
class Status(name: String, val id: String = name) : Filter.TriState(name)
private class StatusFilter(statuses: List<Status>) : Filter.Group<Status>("Status", statuses)
class Genre(name: String, val id: String = name) : Filter.TriState(name) class Genre(name: String, val id: String = name) : Filter.TriState(name)
private class GenreFilter(genres: List<Genre>) : Filter.Group<Genre>("Genre", genres) private class GenreFilter(genres: List<Genre>) : Filter.Group<Genre>("Genre", genres)
@ -187,20 +207,18 @@ class MangaAlarab : ParsedHttpSource() {
Pair("asc", "تصاعدي") Pair("asc", "تصاعدي")
) )
open fun getStatusFilters(): Array<Pair<String?, String>> = arrayOf( open fun getStatusFilters(): List<Status> = listOf(
Pair("", "<select>"), Status("مكتملة", "completed"),
Pair("completed", "مكتملة"), Status("مستمرة", "ongoing"),
Pair("ongoing", "مستمرة"), Status("متوقفة", "cancelled"),
Pair("cancelled", "متوقفة"), Status("في الانتظار", "onhold")
Pair("onhold", "في الانتظار")
) )
open fun getTypeFilter(): Array<Pair<String?, String>> = arrayOf( open fun getTypeFilter(): List<Type> = listOf(
Pair("", "<select>"), Type("صينية (مانها)", "manhua"),
Pair("manhua", "صينية (مانها)"), Type("كورية (مانهوا)", "manhwa"),
Pair("manhwa", "كورية (مانهوا)"), Type("انجليزية", "english"),
Pair("english", "انجليزية"), Type("مانجا (يابانية)", "manga")
Pair("manga", "مانجا (يابانية)")
) )
open fun getGenresSelection(): Array<Pair<String?, String>> = arrayOf( open fun getGenresSelection(): Array<Pair<String?, String>> = arrayOf(