MRM - Filter Update (#1953)

* Update build.gradle

* Update Filter Code

* Fix Catagory Filter
This commit is contained in:
happywillow0 2020-01-03 22:02:43 -05:00 committed by arkon
parent d553b51988
commit db37dab7e3
2 changed files with 11 additions and 10 deletions

View File

@ -5,7 +5,7 @@ ext {
appName = 'Tachiyomi: MyReadingManga'
pkgNameSuffix = 'all.myreadingmanga'
extClass = '.MyReadingMangaFactory'
extVersionCode = 29
extVersionCode = 30
libVersion = '1.2'
}

View File

@ -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<Pair<String, String>> = 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
}