Add new filter on sources

Add BurningScans
pull/421/head
devi 2 years ago
parent 7c89f53988
commit a172fa5a5b

@ -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)
}
if (filter.tags.isNotEmpty()) {
append("&genres=")
if (filter.tags.isNotEmpty()) {
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 -> {
if (filter.tags.isNotEmpty()) {
append("&genres=")
append(filter.tags.joinToString(",") { it.key })
if (filter.tags.isNotEmpty()) {
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"
}
Loading…
Cancel
Save