Add new filter on sources
Add BurningScans
This commit is contained in:
@@ -35,6 +35,10 @@ internal class BatoToParser(context: MangaLoaderContext) : PagedMangaParser(
|
||||
|
||||
override val availableStates: Set<MangaState> = EnumSet.allOf(MangaState::class.java)
|
||||
|
||||
override val isTagsExclusionSupported = true
|
||||
|
||||
override val availableContentRating: Set<ContentRating> = EnumSet.of(ContentRating.SAFE)
|
||||
|
||||
override val configKeyDomain = ConfigKey.Domain(
|
||||
"bato.to",
|
||||
"batocomic.com",
|
||||
@@ -103,13 +107,29 @@ internal class BatoToParser(context: MangaLoaderContext) : PagedMangaParser(
|
||||
append(it.language)
|
||||
}
|
||||
|
||||
append("&genres=")
|
||||
if (filter.tags.isNotEmpty()) {
|
||||
append("&genres=")
|
||||
appendAll(filter.tags, ",") { it.key }
|
||||
}
|
||||
|
||||
append("|")
|
||||
if (filter.tagsExclude.isNotEmpty()) {
|
||||
appendAll(filter.tagsExclude, ",") { it.key }
|
||||
}
|
||||
|
||||
if (filter.contentRating.isNotEmpty()) {
|
||||
filter.contentRating.oneOrThrowIfMany()?.let {
|
||||
append(
|
||||
when (it) {
|
||||
ContentRating.SAFE -> append(",gore,bloody,violence,ecchi,adult,mature,smut,hentai")
|
||||
else -> append("")
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
append("&page=")
|
||||
append(page)
|
||||
append(page.toString())
|
||||
}
|
||||
|
||||
return parseList(url, page)
|
||||
@@ -121,7 +141,7 @@ internal class BatoToParser(context: MangaLoaderContext) : PagedMangaParser(
|
||||
append(domain)
|
||||
append("/browse?sort=update.za")
|
||||
append("&page=")
|
||||
append(page)
|
||||
append(page.toString())
|
||||
}
|
||||
return parseList(url, page)
|
||||
}
|
||||
|
||||
@@ -35,6 +35,8 @@ internal class MangaDexParser(context: MangaLoaderContext) : MangaParser(context
|
||||
override val availableStates: Set<MangaState> =
|
||||
EnumSet.of(MangaState.ONGOING, MangaState.FINISHED, MangaState.PAUSED, MangaState.ABANDONED)
|
||||
|
||||
override val isTagsExclusionSupported = true
|
||||
|
||||
|
||||
override suspend fun getList(offset: Int, filter: MangaListFilter?): List<Manga> {
|
||||
val domain = domain
|
||||
@@ -53,11 +55,15 @@ internal class MangaDexParser(context: MangaLoaderContext) : MangaParser(context
|
||||
}
|
||||
|
||||
is MangaListFilter.Advanced -> {
|
||||
filter.tags.forEach { tag ->
|
||||
filter.tags.forEach {
|
||||
append("&includedTags[]=")
|
||||
append(tag.key)
|
||||
append(it.key)
|
||||
}
|
||||
|
||||
filter.tagsExclude.forEach {
|
||||
append("&excludedTags[]=")
|
||||
append(it.key)
|
||||
}
|
||||
|
||||
if (filter.contentRating.isNotEmpty()) {
|
||||
filter.contentRating.forEach {
|
||||
|
||||
@@ -20,6 +20,10 @@ internal class MangaPark(context: MangaLoaderContext) :
|
||||
|
||||
override val availableStates: Set<MangaState> = EnumSet.allOf(MangaState::class.java)
|
||||
|
||||
override val availableContentRating: Set<ContentRating> = EnumSet.of(ContentRating.SAFE)
|
||||
|
||||
override val isTagsExclusionSupported = true
|
||||
|
||||
override val configKeyDomain = ConfigKey.Domain("mangapark.net")
|
||||
|
||||
private val tagsMap = SuspendLazy(::parseTags)
|
||||
@@ -42,9 +46,25 @@ internal class MangaPark(context: MangaLoaderContext) :
|
||||
|
||||
is MangaListFilter.Advanced -> {
|
||||
|
||||
append("&genres=")
|
||||
if (filter.tags.isNotEmpty()) {
|
||||
append("&genres=")
|
||||
append(filter.tags.joinToString(",") { it.key })
|
||||
appendAll(filter.tags, ",") { it.key }
|
||||
}
|
||||
|
||||
append("|")
|
||||
if (filter.tagsExclude.isNotEmpty()) {
|
||||
appendAll(filter.tagsExclude, ",") { it.key }
|
||||
}
|
||||
|
||||
if (filter.contentRating.isNotEmpty()) {
|
||||
filter.contentRating.oneOrThrowIfMany()?.let {
|
||||
append(
|
||||
when (it) {
|
||||
ContentRating.SAFE -> append(",gore,bloody,violence,ecchi,adult,mature,smut,hentai")
|
||||
else -> append("")
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
filter.states.oneOrThrowIfMany()?.let {
|
||||
|
||||
@@ -53,10 +53,20 @@ internal class BentomangaParser(context: MangaLoaderContext) : PagedMangaParser(
|
||||
|
||||
when (filter.sortOrder) {
|
||||
SortOrder.UPDATED -> url.addQueryParameter("order_by", "update")
|
||||
.addQueryParameter("order", "desc")
|
||||
|
||||
SortOrder.POPULARITY -> url.addQueryParameter("order_by", "views")
|
||||
.addQueryParameter("order", "desc")
|
||||
|
||||
SortOrder.RATING -> url.addQueryParameter("order_by", "top")
|
||||
.addQueryParameter("order", "desc")
|
||||
|
||||
SortOrder.NEWEST -> url.addQueryParameter("order_by", "create")
|
||||
.addQueryParameter("order", "desc")
|
||||
|
||||
SortOrder.ALPHABETICAL -> url.addQueryParameter("order_by", "name")
|
||||
.addQueryParameter("order", "asc")
|
||||
|
||||
SortOrder.ALPHABETICAL_DESC -> url.addQueryParameter("order_by", "name")
|
||||
.addQueryParameter("order", "desc")
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package org.koitharu.kotatsu.parsers.site.madara.pt
|
||||
|
||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||
import org.koitharu.kotatsu.parsers.model.MangaSource
|
||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||
|
||||
@MangaSourceParser("BURNINGSCANS", "BurningScans", "pt")
|
||||
internal class BurningScans(context: MangaLoaderContext) :
|
||||
MadaraParser(context, MangaSource.BURNINGSCANS, "burningscans.com") {
|
||||
override val datePattern = "dd/MM/yyyy"
|
||||
}
|
||||
Reference in New Issue
Block a user