Add source filter to marin.moe (#1166)
* Add source filters, include source in desc * Add source filters, include source in desc
This commit is contained in:
@ -6,7 +6,7 @@ ext {
|
||||
extName = 'marin.moe'
|
||||
pkgNameSuffix = 'en.marinmoe'
|
||||
extClass = '.MarinMoe'
|
||||
extVersionCode = 1
|
||||
extVersionCode = 2
|
||||
libVersion = '13'
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,8 @@ data class AnimeDetails(
|
||||
val release_date: String,
|
||||
val description: String,
|
||||
val genre_list: List<InfoData>,
|
||||
val production_list: List<InfoData>
|
||||
val production_list: List<InfoData>,
|
||||
val source_list: List<InfoData>
|
||||
) {
|
||||
@Serializable
|
||||
data class InfoType(
|
||||
|
@ -96,6 +96,7 @@ class MarinMoe : ConfigurableAnimeSource, AnimeHttpSource() {
|
||||
if (filters.status.isNotBlank()) url += "&${filters.status}"
|
||||
if (filters.contentRating.isNotBlank()) url += "&${filters.contentRating}"
|
||||
if (filters.genre.isNotBlank()) url += "&${filters.genre}"
|
||||
if (filters.source.isNotBlank()) url += "&${filters.source}"
|
||||
if (filters.group.isNotBlank()) url += "&filter[group][0][id]=${filters.group}&filter[group][0][opr]=include"
|
||||
if (filters.studio.isNotBlank()) url += "&filter[production][0][id]=${filters.studio}&filter[production][0][opr]=include"
|
||||
|
||||
@ -129,6 +130,7 @@ class MarinMoe : ConfigurableAnimeSource, AnimeHttpSource() {
|
||||
description += "\nContent Rating: ${details.content_rating.name}"
|
||||
description += "\nRelease Date: ${details.release_date}"
|
||||
description += "\nType: ${details.type.name}"
|
||||
description += "\nSource: ${details.source_list.joinToString(separator = ", ") { it.name }}"
|
||||
anime.description = description
|
||||
|
||||
return anime
|
||||
|
@ -40,6 +40,11 @@ object MarinMoeFilters {
|
||||
MarinMoeFiltersData.contentRating.map { CheckBoxVal(it.first, true) }
|
||||
)
|
||||
|
||||
class SourceFilter : CheckBoxFilterList(
|
||||
"Source",
|
||||
MarinMoeFiltersData.source.map { CheckBoxVal(it.first, false) }
|
||||
)
|
||||
|
||||
class GenreFilter : CheckBoxFilterList(
|
||||
"Genre",
|
||||
MarinMoeFiltersData.genre.map { CheckBoxVal(it.first, false) }
|
||||
@ -55,6 +60,7 @@ object MarinMoeFilters {
|
||||
TypeFilter(),
|
||||
StatusFilter(),
|
||||
ContentRatingFilter(),
|
||||
SourceFilter(),
|
||||
AnimeFilter.Separator(),
|
||||
GenreFilter(),
|
||||
GroupFilter(),
|
||||
@ -66,6 +72,7 @@ object MarinMoeFilters {
|
||||
val type: String = "",
|
||||
val status: String = "",
|
||||
val contentRating: String = "",
|
||||
val source: String = "",
|
||||
val genre: String = "",
|
||||
val group: String = "",
|
||||
val studio: String = ""
|
||||
@ -113,7 +120,17 @@ object MarinMoeFilters {
|
||||
}
|
||||
)
|
||||
|
||||
val genre = filters.filterIsInstance<GenreFilter>()
|
||||
val source: String = filters.filterIsInstance<SourceFilter>()
|
||||
.first()
|
||||
.state.mapNotNull { format ->
|
||||
if (format.state) {
|
||||
MarinMoeFiltersData.source.find { it.first == format.name }!!.second
|
||||
} else { null }
|
||||
}.withIndex().joinToString(separator = "&") {
|
||||
"filter[source][${it.index}][id]=${it.value}&filter[source][${it.index}][opr]=include"
|
||||
}
|
||||
|
||||
val genre: String = filters.filterIsInstance<GenreFilter>()
|
||||
.first()
|
||||
.state.mapNotNull { format ->
|
||||
if (format.state) {
|
||||
@ -128,6 +145,7 @@ object MarinMoeFilters {
|
||||
type,
|
||||
status,
|
||||
contentRating,
|
||||
source,
|
||||
genre,
|
||||
filters.asQueryPart<GroupFilter>(),
|
||||
filters.asQueryPart<StudioFilter>(),
|
||||
@ -182,6 +200,17 @@ object MarinMoeFilters {
|
||||
Pair("G - All Ages", "7"),
|
||||
)
|
||||
|
||||
val source = arrayOf(
|
||||
Pair("Blu-ray", "5"),
|
||||
Pair("DVD", "4"),
|
||||
Pair("LD", "8"),
|
||||
Pair("N/A", "1"),
|
||||
Pair("TV", "2"),
|
||||
Pair("VCD", "7"),
|
||||
Pair("VHS", "6"),
|
||||
Pair("Web", "3")
|
||||
)
|
||||
|
||||
val genre = arrayOf(
|
||||
Pair("Action", "1"),
|
||||
Pair("Adult Cast", "55"),
|
||||
|
Reference in New Issue
Block a user