From 7c293c64d374dc75977dbdf8dcd2976a26426d11 Mon Sep 17 00:00:00 2001 From: Secozzi <49240133+Secozzi@users.noreply.github.com> Date: Mon, 16 Jan 2023 10:49:02 +0100 Subject: [PATCH] Add toggle for special episodes for marin.moe (#1174) Co-authored-by: jmir1 --- src/en/marinmoe/build.gradle | 2 +- .../animeextension/en/marinmoe/DataModel.kt | 1 + .../animeextension/en/marinmoe/MarinMoe.kt | 16 +++++++++++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/en/marinmoe/build.gradle b/src/en/marinmoe/build.gradle index 055306c29..fc0199ae2 100644 --- a/src/en/marinmoe/build.gradle +++ b/src/en/marinmoe/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'marin.moe' pkgNameSuffix = 'en.marinmoe' extClass = '.MarinMoe' - extVersionCode = 3 + extVersionCode = 4 libVersion = '13' } diff --git a/src/en/marinmoe/src/eu/kanade/tachiyomi/animeextension/en/marinmoe/DataModel.kt b/src/en/marinmoe/src/eu/kanade/tachiyomi/animeextension/en/marinmoe/DataModel.kt index c3f7e1670..d5b71a010 100644 --- a/src/en/marinmoe/src/eu/kanade/tachiyomi/animeextension/en/marinmoe/DataModel.kt +++ b/src/en/marinmoe/src/eu/kanade/tachiyomi/animeextension/en/marinmoe/DataModel.kt @@ -75,6 +75,7 @@ data class AnimeDetails( val title: String, val sort: Float, val slug: String, + val type: Int, val release_date: String, ) diff --git a/src/en/marinmoe/src/eu/kanade/tachiyomi/animeextension/en/marinmoe/MarinMoe.kt b/src/en/marinmoe/src/eu/kanade/tachiyomi/animeextension/en/marinmoe/MarinMoe.kt index b6bf335db..afbec6f76 100644 --- a/src/en/marinmoe/src/eu/kanade/tachiyomi/animeextension/en/marinmoe/MarinMoe.kt +++ b/src/en/marinmoe/src/eu/kanade/tachiyomi/animeextension/en/marinmoe/MarinMoe.kt @@ -5,6 +5,7 @@ import android.app.Application import android.content.SharedPreferences import androidx.preference.ListPreference import androidx.preference.PreferenceScreen +import androidx.preference.SwitchPreferenceCompat import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.AnimesPage @@ -144,6 +145,7 @@ class MarinMoe : ConfigurableAnimeSource, AnimeHttpSource() { val dataPage = document.select("div#app").attr("data-page").replace(""", "\"") val dataJson = json.decodeFromString(dataPage) + val includeSpecial = preferences.getBoolean("preferred_special", true) dataJson.props.episode_list.data.forEach { val episode = SEpisode.create() @@ -155,7 +157,7 @@ class MarinMoe : ConfigurableAnimeSource, AnimeHttpSource() { val parsedDate = parseDate(it.release_date) if (parsedDate.time != -1L) episode.date_upload = parsedDate.time - episodes.add(episode) + if (includeSpecial || it.type != 2) episodes.add(episode) } var next = dataJson.props.episode_list.links.next @@ -327,8 +329,20 @@ class MarinMoe : ConfigurableAnimeSource, AnimeHttpSource() { } } + val specialPref = SwitchPreferenceCompat(screen.context).apply { + key = "preferred_special" + title = "Include Special Episodes" + setDefaultValue(true) + + setOnPreferenceChangeListener { _, newValue -> + val new = newValue as Boolean + preferences.edit().putBoolean(key, new).commit() + } + } + screen.addPreference(videoQualityPref) screen.addPreference(groupPref) screen.addPreference(subPref) + screen.addPreference(specialPref) } }