From db37dab7e3791bcf7bd3a8457410723768dc2b81 Mon Sep 17 00:00:00 2001 From: happywillow0 <45346080+happywillow0@users.noreply.github.com> Date: Fri, 3 Jan 2020 22:02:43 -0500 Subject: [PATCH] MRM - Filter Update (#1953) * Update build.gradle * Update Filter Code * Fix Catagory Filter --- src/all/myreadingmanga/build.gradle | 2 +- .../all/myreadingmanga/MyReadingManga.kt | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/all/myreadingmanga/build.gradle b/src/all/myreadingmanga/build.gradle index 1778fd407..c95f4c81a 100644 --- a/src/all/myreadingmanga/build.gradle +++ b/src/all/myreadingmanga/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: MyReadingManga' pkgNameSuffix = 'all.myreadingmanga' extClass = '.MyReadingMangaFactory' - extVersionCode = 29 + extVersionCode = 30 libVersion = '1.2' } diff --git a/src/all/myreadingmanga/src/eu/kanade/tachiyomi/extension/all/myreadingmanga/MyReadingManga.kt b/src/all/myreadingmanga/src/eu/kanade/tachiyomi/extension/all/myreadingmanga/MyReadingManga.kt index edf9632bb..60141c6c1 100644 --- a/src/all/myreadingmanga/src/eu/kanade/tachiyomi/extension/all/myreadingmanga/MyReadingManga.kt +++ b/src/all/myreadingmanga/src/eu/kanade/tachiyomi/extension/all/myreadingmanga/MyReadingManga.kt @@ -10,7 +10,6 @@ import org.jsoup.nodes.Document import org.jsoup.nodes.Element import rx.Observable import java.io.IOException -import java.net.URLEncoder import java.text.SimpleDateFormat import java.util.Locale import java.util.concurrent.TimeUnit @@ -253,20 +252,22 @@ open class MyReadingManga(override val lang: String) : ParsedHttpSource() { //Filter Parsing, grabs home page as document and filters out Genres, Popular Tags, and Catagorys - private val filterdoc:Document? = try { OkHttpClient().newCall(GET("$baseUrl", headers)).execute().asJsoup() } catch (e: IOException) {null} - private val genresarray = filterdoc?.select(".tagcloud a[href*=/genre/]")?.map { Pair(it.attr("href").substringBeforeLast("/").substringAfterLast("/"), it.text())}?.toTypedArray() ?: arrayOf(Pair("","Error getting filters, try restarting app")) - private val poptagarray = filterdoc?.select(".tagcloud a[href*=/tag/]")?.map { Pair(it.attr("href").substringBeforeLast("/").substringAfterLast("/"), it.text())}?.toTypedArray() ?: arrayOf(Pair("","Error getting filters, try restarting app")) - private val cattagarray = filterdoc?.select(".level-0")?.map { Pair(it.attr("value"), it.text())}?.toTypedArray() ?: arrayOf(Pair("","Error getting filters, try restarting app")) - + private val getFilter:Document? = try { network.client.newCall(GET(baseUrl, headers)).execute().asJsoup() } catch (e: IOException) {null} + private fun returnFilter (css: String, attributekey: String): Array> = if (getFilter?.select(".cf-browser-verification").isNullOrEmpty()) { + getFilter?.select(css)?.map { Pair(it.attr(attributekey).substringBeforeLast("/").substringAfterLast("/"), it.text()) }?.toTypedArray() ?: arrayOf(Pair("","Error getting filters")) + } else { + arrayOf(Pair("","Open 'Latest' and force restart app")) + } + //Generates the filter lists for app override fun getFilterList(): FilterList { val filterList = FilterList( //MRM does not support genre filtering and text search at the same time Filter.Header("NOTE: Filters are ignored if using text search."), Filter.Header("Only one filter can be used at a time."), - GenreFilter(genresarray), - TagFilter(poptagarray), - CatFilter(cattagarray) + GenreFilter(returnFilter(".tagcloud a[href*=/genre/]", "href")), + TagFilter(returnFilter(".tagcloud a[href*=/tag/]","href")), + CatFilter(returnFilter(".level-0", "value")) ) return filterList }