From ab711b37edd25883ccc7d9ef08c15333a308e44c Mon Sep 17 00:00:00 2001 From: Chopper <156493704+choppeh@users.noreply.github.com> Date: Thu, 29 May 2025 13:26:46 -0300 Subject: [PATCH] Add NextScan (#8984) * Add NextScan * Fix status * Bump version * Use network.cloudflareClient * Fix lint * AndroidManifest.xml change pathPattern Co-authored-by: Vetle Ledaal * EtoshoreUrlActivity: Fix log tag Co-authored-by: Vetle Ledaal * URL_REGEX: Remove unneed wrapping Co-authored-by: Vetle Ledaal --------- Co-authored-by: Vetle Ledaal --- lib-multisrc/etoshore/AndroidManifest.xml | 22 ++ lib-multisrc/etoshore/build.gradle.kts | 5 + .../tachiyomi/multisrc/etoshore/Etoshore.kt | 247 ++++++++++++++++ .../multisrc/etoshore/EtoshoreUrlActivity.kt | 42 +++ src/pt/nextscan/build.gradle | 10 + .../nextscan/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 8588 bytes .../nextscan/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 4282 bytes .../nextscan/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 13720 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 27345 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 44532 bytes .../extension/pt/nextscan/NextScan.kt | 19 ++ src/tr/anisamanga/build.gradle | 4 +- .../extension/tr/anisamanga/AnisaManga.kt | 269 +----------------- 13 files changed, 356 insertions(+), 262 deletions(-) create mode 100644 lib-multisrc/etoshore/AndroidManifest.xml create mode 100644 lib-multisrc/etoshore/build.gradle.kts create mode 100644 lib-multisrc/etoshore/src/eu/kanade/tachiyomi/multisrc/etoshore/Etoshore.kt create mode 100644 lib-multisrc/etoshore/src/eu/kanade/tachiyomi/multisrc/etoshore/EtoshoreUrlActivity.kt create mode 100644 src/pt/nextscan/build.gradle create mode 100644 src/pt/nextscan/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/pt/nextscan/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/pt/nextscan/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/pt/nextscan/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/pt/nextscan/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/pt/nextscan/src/eu/kanade/tachiyomi/extension/pt/nextscan/NextScan.kt diff --git a/lib-multisrc/etoshore/AndroidManifest.xml b/lib-multisrc/etoshore/AndroidManifest.xml new file mode 100644 index 000000000..1635f61cd --- /dev/null +++ b/lib-multisrc/etoshore/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + diff --git a/lib-multisrc/etoshore/build.gradle.kts b/lib-multisrc/etoshore/build.gradle.kts new file mode 100644 index 000000000..dc076cc37 --- /dev/null +++ b/lib-multisrc/etoshore/build.gradle.kts @@ -0,0 +1,5 @@ +plugins { + id("lib-multisrc") +} + +baseVersionCode = 1 diff --git a/lib-multisrc/etoshore/src/eu/kanade/tachiyomi/multisrc/etoshore/Etoshore.kt b/lib-multisrc/etoshore/src/eu/kanade/tachiyomi/multisrc/etoshore/Etoshore.kt new file mode 100644 index 000000000..c57f2aa77 --- /dev/null +++ b/lib-multisrc/etoshore/src/eu/kanade/tachiyomi/multisrc/etoshore/Etoshore.kt @@ -0,0 +1,247 @@ +package eu.kanade.tachiyomi.multisrc.etoshore + +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.source.model.Filter +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.MangasPage +import eu.kanade.tachiyomi.source.model.Page +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.source.online.ParsedHttpSource +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import okhttp3.Response +import org.jsoup.Jsoup +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import rx.Observable + +abstract class Etoshore( + override val name: String, + override val baseUrl: String, + override val lang: String, +) : ParsedHttpSource() { + + override val supportsLatest = true + + override val client = network.cloudflareClient + + override fun headersBuilder() = super.headersBuilder() + .add("Referer", "$baseUrl/") + + // ============================== Popular ============================== + + open val popularFilter = FilterList( + SelectionList("", listOf(Tag(value = "views", query = "sort"))), + ) + + override fun popularMangaRequest(page: Int) = searchMangaRequest(page, "", popularFilter) + + override fun popularMangaParse(response: Response) = searchMangaParse(response) + + override fun popularMangaSelector() = throw UnsupportedOperationException() + + override fun popularMangaNextPageSelector() = throw UnsupportedOperationException() + + override fun popularMangaFromElement(element: Element) = throw UnsupportedOperationException() + + // ============================== Latest =============================== + + open val latestFilter = FilterList( + SelectionList("", listOf(Tag(value = "date", query = "sort"))), + ) + + override fun latestUpdatesRequest(page: Int) = searchMangaRequest(page, "", latestFilter) + + override fun latestUpdatesParse(response: Response) = searchMangaParse(response) + + override fun latestUpdatesSelector() = throw UnsupportedOperationException() + + override fun latestUpdatesNextPageSelector() = throw UnsupportedOperationException() + + override fun latestUpdatesFromElement(element: Element) = throw UnsupportedOperationException() + + // ============================== Search =============================== + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = "$baseUrl/page/$page".toHttpUrl().newBuilder() + .addQueryParameter("s", query) + filters.forEach { filter -> + when (filter) { + is SelectionList -> { + val selected = filter.selected().takeIf { it.value.isNotBlank() } + ?: return@forEach + url.addQueryParameter(selected.query, selected.value) + } + else -> {} + } + } + return GET(url.build(), headers) + } + + override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { + if (query.startsWith(PREFIX_SEARCH)) { + val slug = query.substringAfter(PREFIX_SEARCH) + return fetchMangaDetails(SManga.create().apply { url = "/manga/$slug/" }) + .map { manga -> MangasPage(listOf(manga), false) } + } + + return super.fetchSearchManga(page, query, filters) + } + + override fun searchMangaSelector() = ".search-posts .chapter-box .poster a" + + override fun searchMangaNextPageSelector() = ".navigation .naviright:has(a)" + + override fun searchMangaFromElement(element: Element) = SManga.create().apply { + title = element.attr("title") + thumbnail_url = element.selectFirst("img")?.let(::imageFromElement) + setUrlWithoutDomain(element.absUrl("href")) + } + + override fun searchMangaParse(response: Response): MangasPage { + if (filterList.isEmpty()) { + filterParse(response) + } + return super.searchMangaParse(response) + } + + // ============================== Details =============================== + + override fun mangaDetailsParse(document: Document) = SManga.create().apply { + title = document.selectFirst("h1")!!.text() + + description = document.selectFirst(".excerpt p")?.text() + + document.selectFirst(".details-right-con img")?.let { thumbnail_url = imageFromElement(it) } + + genre = document.select("div.meta-item span.meta-title:contains(Genres) + span a") + .joinToString { it.text() } + + author = document.selectFirst("div.meta-item span.meta-title:contains(Author) + span a") + ?.text() + + with(document) { + status = when { + containsClass(".finished") -> SManga.COMPLETED + containsClass(".publishing") -> SManga.ONGOING + containsClass(".on-hiatus") -> SManga.ON_HIATUS + containsClass(".discontinued") -> SManga.CANCELLED + else -> SManga.UNKNOWN + } + } + + setUrlWithoutDomain(document.location()) + } + + private fun Element.containsClass(cssSelector: String) = select(cssSelector).isNotEmpty() + + protected open fun imageFromElement(element: Element): String? { + val attributes = listOf( + "data-src", + "data-lazy-src", + "data-cfsrc", + "src", + ) + return attributes + .mapNotNull { attr -> element.takeIf { it.hasAttr(attr) }?.attr("abs:$attr") } + .maxOrNull() + ?: element.takeIf { it.hasAttr("srcset") }?.attr("abs:srcset")?.getSrcSetImage() + } + + protected open fun String.getSrcSetImage(): String? { + return this.split(" ") + .filter(URL_REGEX::matches) + .maxOfOrNull(String::toString) + } + + // ============================== Chapters ============================ + + override fun chapterListSelector() = ".chapter-list li a" + + override fun chapterListParse(response: Response): List { + return super.chapterListParse(response) + } + + override fun chapterFromElement(element: Element) = SChapter.create().apply { + name = element.selectFirst(".title")!!.text() + setUrlWithoutDomain(element.absUrl("href")) + } + + // ============================== Pages =============================== + + override fun pageListParse(document: Document): List { + return document.select(".chapter-images .chapter-item > img").mapIndexed { index, element -> + Page(index, document.location(), imageFromElement(element)) + } + } + + override fun imageUrlParse(document: Document) = "" + + // ============================= Filters ============================== + + private var filterList = emptyList>>() + + override fun getFilterList(): FilterList { + val filters = mutableListOf>() + + filters += if (filterList.isNotEmpty()) { + filterList.map { SelectionList(it.first, it.second) } + } else { + listOf(Filter.Header("Aperte 'Redefinir' para tentar mostrar os filtros")) + } + + return FilterList(filters) + } + + protected open fun parseSelection(document: Document, selector: String): Pair>? { + val selectorFilter = "#filter-form $selector .select-item-head .text" + + return document.selectFirst(selectorFilter)?.text()?.let { displayName -> + val tags = document.select("#filter-form $selector li").map { element -> + element.selectFirst("input")!!.let { input -> + Tag( + name = element.selectFirst(".text")!!.text(), + value = input.attr("value"), + query = input.attr("name"), + ) + } + } + displayName to mutableListOf().apply { + this += Tag("Default") + this += tags + } + } + } + + open val filterListSelector: List = listOf( + ".filter-genre", + ".filter-status", + ".filter-type", + ".filter-year", + ".filter-sort", + ) + + open fun filterParse(response: Response) { + val document = Jsoup.parseBodyFragment(response.peekBody(Long.MAX_VALUE).string()) + filterList = filterListSelector.mapNotNull { selector -> parseSelection(document, selector) } + } + + protected data class Tag(val name: String = "", val value: String = "", val query: String = "") + + private open class SelectionList(displayName: String, private val vals: List, state: Int = 0) : + Filter.Select(displayName, vals.map { it.name }.toTypedArray(), state) { + fun selected() = vals[state] + } + + // ============================= Utils ============================== + + private fun String.containsIn(array: Array): Boolean { + return this.lowercase() in array.map { it.lowercase() } + } + + companion object { + const val PREFIX_SEARCH = "id:" + val URL_REGEX = """^(https?://[^\s/$.?#].[^\s]*)$""".toRegex() + } +} diff --git a/lib-multisrc/etoshore/src/eu/kanade/tachiyomi/multisrc/etoshore/EtoshoreUrlActivity.kt b/lib-multisrc/etoshore/src/eu/kanade/tachiyomi/multisrc/etoshore/EtoshoreUrlActivity.kt new file mode 100644 index 000000000..f31329ba5 --- /dev/null +++ b/lib-multisrc/etoshore/src/eu/kanade/tachiyomi/multisrc/etoshore/EtoshoreUrlActivity.kt @@ -0,0 +1,42 @@ +package eu.kanade.tachiyomi.multisrc.etoshore + +import android.app.Activity +import android.content.ActivityNotFoundException +import android.content.Intent +import android.os.Bundle +import android.util.Log +import kotlin.system.exitProcess + +class EtoshoreUrlActivity : Activity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val pathSegments = intent?.data?.pathSegments + + if (pathSegments != null && pathSegments.size >= 2) { + val mainIntent = Intent().apply { + action = "eu.kanade.tachiyomi.SEARCH" + putExtra("query", "${getSLUG(pathSegments)}") + putExtra("filter", packageName) + } + try { + startActivity(mainIntent) + } catch (e: ActivityNotFoundException) { + Log.e("EtoshoreUrl", e.toString()) + } + } else { + Log.e("EtoshoreUrl", "could not parse uri from intent $intent") + } + + finish() + exitProcess(0) + } + + private fun getSLUG(pathSegments: MutableList): String? { + return if (pathSegments.size >= 2) { + val slug = pathSegments[1] + "${Etoshore.PREFIX_SEARCH}$slug" + } else { + null + } + } +} diff --git a/src/pt/nextscan/build.gradle b/src/pt/nextscan/build.gradle new file mode 100644 index 000000000..2b5551959 --- /dev/null +++ b/src/pt/nextscan/build.gradle @@ -0,0 +1,10 @@ +ext { + extName = 'Next Scan' + extClass = '.NextScan' + themePkg = 'etoshore' + baseUrl = 'https://nextscan.cloud' + overrideVersionCode = 0 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/pt/nextscan/res/mipmap-hdpi/ic_launcher.png b/src/pt/nextscan/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..742686639913a347ca9738922e114d4e32cc4954 GIT binary patch literal 8588 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 literal 0 HcmV?d00001 diff --git a/src/pt/nextscan/res/mipmap-xhdpi/ic_launcher.png b/src/pt/nextscan/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..834f1a96d2ffed5f55a9de82e16f59bee9667624 GIT binary patch literal 13720 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 literal 0 HcmV?d00001 diff --git a/src/pt/nextscan/src/eu/kanade/tachiyomi/extension/pt/nextscan/NextScan.kt b/src/pt/nextscan/src/eu/kanade/tachiyomi/extension/pt/nextscan/NextScan.kt new file mode 100644 index 000000000..33d10c038 --- /dev/null +++ b/src/pt/nextscan/src/eu/kanade/tachiyomi/extension/pt/nextscan/NextScan.kt @@ -0,0 +1,19 @@ +package eu.kanade.tachiyomi.extension.pt.nextscan + +import eu.kanade.tachiyomi.multisrc.etoshore.Etoshore +import eu.kanade.tachiyomi.network.interceptor.rateLimit +import eu.kanade.tachiyomi.source.model.SChapter +import okhttp3.Response + +class NextScan : Etoshore( + "Next Scan", + "https://nextscan.cloud", + "pt-BR", +) { + override val client = super.client.newBuilder() + .rateLimit(3) + .build() + + override fun chapterListParse(response: Response): List = + super.chapterListParse(response).reversed() +} diff --git a/src/tr/anisamanga/build.gradle b/src/tr/anisamanga/build.gradle index 811746d75..683e944e1 100644 --- a/src/tr/anisamanga/build.gradle +++ b/src/tr/anisamanga/build.gradle @@ -1,7 +1,9 @@ ext { extName = 'Anisa Manga' extClass = '.AnisaManga' - extVersionCode = 43 + themePkg = 'etoshore' + baseUrl = 'https://anisamanga.net' + overrideVersionCode = 43 isNsfw = true } diff --git a/src/tr/anisamanga/src/eu/kanade/tachiyomi/extension/tr/anisamanga/AnisaManga.kt b/src/tr/anisamanga/src/eu/kanade/tachiyomi/extension/tr/anisamanga/AnisaManga.kt index b868f4a98..576e0408f 100644 --- a/src/tr/anisamanga/src/eu/kanade/tachiyomi/extension/tr/anisamanga/AnisaManga.kt +++ b/src/tr/anisamanga/src/eu/kanade/tachiyomi/extension/tr/anisamanga/AnisaManga.kt @@ -1,34 +1,16 @@ package eu.kanade.tachiyomi.extension.tr.anisamanga -import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.multisrc.etoshore.Etoshore import eu.kanade.tachiyomi.network.interceptor.rateLimit -import eu.kanade.tachiyomi.source.model.Filter -import eu.kanade.tachiyomi.source.model.FilterList -import eu.kanade.tachiyomi.source.model.MangasPage import eu.kanade.tachiyomi.source.model.Page -import eu.kanade.tachiyomi.source.model.SChapter -import eu.kanade.tachiyomi.source.model.SManga -import eu.kanade.tachiyomi.source.online.ParsedHttpSource -import okhttp3.HttpUrl.Companion.toHttpUrl -import okhttp3.Request -import okhttp3.Response -import okio.IOException -import org.jsoup.Jsoup import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import rx.Observable - -// Etoshore -class AnisaManga : ParsedHttpSource() { - - override val name = "Anisa Manga" - - override val baseUrl = "https://anisamanga.net" - - override val lang = "tr" - - override val supportsLatest = true +import java.io.IOException +class AnisaManga : Etoshore( + "Anisa Manga", + "https://anisamanga.net", + "tr", +) { // Migrate from Madara to Etoshore override val versionId = 2 @@ -36,175 +18,9 @@ class AnisaManga : ParsedHttpSource() { .rateLimit(2) .build() - override fun headersBuilder() = super.headersBuilder() - .add("Referer", "$baseUrl/") - - // ============================== Popular ============================== - - open val popularFilter = FilterList( - SelectionList("", listOf(Tag(value = "views", query = "sort"))), - ) - - override fun popularMangaRequest(page: Int) = searchMangaRequest(page, "", popularFilter) - - override fun popularMangaParse(response: Response) = searchMangaParse(response) - - override fun popularMangaSelector() = throw UnsupportedOperationException() - - override fun popularMangaNextPageSelector() = throw UnsupportedOperationException() - - override fun popularMangaFromElement(element: Element) = throw UnsupportedOperationException() - - // ============================== Latest =============================== - - open val latestFilter = FilterList( - SelectionList("", listOf(Tag(value = "date", query = "sort"))), - ) - - override fun latestUpdatesRequest(page: Int) = searchMangaRequest(page, "", latestFilter) - - override fun latestUpdatesParse(response: Response) = searchMangaParse(response) - - override fun latestUpdatesSelector() = throw UnsupportedOperationException() - - override fun latestUpdatesNextPageSelector() = throw UnsupportedOperationException() - - override fun latestUpdatesFromElement(element: Element) = throw UnsupportedOperationException() - - // ============================== Search =============================== - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - val url = "$baseUrl/page/$page".toHttpUrl().newBuilder() - .addQueryParameter("s", query) - filters.forEach { filter -> - when (filter) { - is SelectionList -> { - val selected = filter.selected().takeIf { it.value.isNotBlank() } - ?: return@forEach - url.addQueryParameter(selected.query, selected.value) - } - else -> {} - } - } - return GET(url.build(), headers) - } - - override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { - if (query.startsWith(PREFIX_SEARCH)) { - val slug = query.substringAfter(PREFIX_SEARCH) - return fetchMangaDetails(SManga.create().apply { url = "/manga/$slug/" }) - .map { manga -> MangasPage(listOf(manga), false) } - } - - return super.fetchSearchManga(page, query, filters) - } - - override fun searchMangaSelector() = ".search-posts .chapter-box .poster a" - - override fun searchMangaNextPageSelector() = ".navigation .naviright:has(a)" - - override fun searchMangaFromElement(element: Element) = SManga.create().apply { - title = element.attr("title") - thumbnail_url = element.selectFirst("img")?.let(::imageFromElement) - setUrlWithoutDomain(element.absUrl("href")) - } - - override fun searchMangaParse(response: Response): MangasPage { - if (filterList.isEmpty()) { - filterParse(response) - } - return super.searchMangaParse(response) - } - - // ============================== Details =============================== - - override fun mangaDetailsParse(document: Document) = SManga.create().apply { - title = document.selectFirst("h1")!!.text() - - description = document.selectFirst(".excerpt p")?.text() - - document.selectFirst(".details-right-con img")?.let { thumbnail_url = imageFromElement(it) } - - genre = document.select("div.meta-item span.meta-title:contains(Genres) + span a") - .joinToString { it.text() } - - author = document.selectFirst("div.meta-item span.meta-title:contains(Author) + span a") - - ?.text() - - document.selectFirst(".status")?.text()?.let { - status = it.toMangaStatus() - } - - setUrlWithoutDomain(document.location()) - } - - protected open fun imageFromElement(element: Element): String? { - return when { - element.hasAttr("data-src") -> element.attr("abs:data-src") - element.hasAttr("data-lazy-src") -> element.attr("abs:data-lazy-src") - element.hasAttr("srcset") -> element.attr("abs:srcset").getSrcSetImage() - element.hasAttr("data-cfsrc") -> element.attr("abs:data-cfsrc") - else -> element.attr("abs:src") - } - } - - protected open fun String.getSrcSetImage(): String? { - return this.split(" ") - .filter(URL_REGEX::matches) - .maxOfOrNull(String::toString) - } - - protected val completedStatusList: Array = arrayOf( - "Finished", - "Completo", - ) - - protected open val ongoingStatusList: Array = arrayOf( - "Publishing", - "Ativo", - ) - - protected val hiatusStatusList: Array = arrayOf( - "on hiatus", - ) - - protected val canceledStatusList: Array = arrayOf( - "Canceled", - "Discontinued", - ) - - open fun String.toMangaStatus(): Int { - return when { - containsIn(completedStatusList) -> SManga.COMPLETED - containsIn(ongoingStatusList) -> SManga.ONGOING - containsIn(hiatusStatusList) -> SManga.ON_HIATUS - containsIn(canceledStatusList) -> SManga.CANCELLED - else -> SManga.UNKNOWN - } - } - - // ============================== Chapters ============================ - - override fun chapterListSelector() = ".chapter-list li a" - - override fun chapterListParse(response: Response): List { - return super.chapterListParse(response) - } - - override fun chapterFromElement(element: Element) = SChapter.create().apply { - name = element.selectFirst(".title")!!.text() - setUrlWithoutDomain(element.absUrl("href")) - } - - // ============================== Pages =============================== - override fun pageListParse(document: Document): List { verifyLoginRequired(document) - - return document.select(".chapter-images .chapter-item > img").mapIndexed { index, element -> - Page(index, document.location(), imageFromElement(element)) - } + return super.pageListParse(document) } private fun verifyLoginRequired(document: Document) { @@ -213,73 +29,4 @@ class AnisaManga : ParsedHttpSource() { throw IOException("Web görünümünde oturum açın") } } - - override fun imageUrlParse(document: Document) = "" - - // ============================= Filters ============================== - - private var filterList = emptyList>>() - - override fun getFilterList(): FilterList { - val filters = mutableListOf>() - - filters += if (filterList.isNotEmpty()) { - filterList.map { SelectionList(it.first, it.second) } - } else { - listOf(Filter.Header("Aperte 'Redefinir' para tentar mostrar os filtros")) - } - - return FilterList(filters) - } - - protected open fun parseSelection(document: Document, selector: String): Pair>? { - val selectorFilter = "#filter-form $selector .select-item-head .text" - - return document.selectFirst(selectorFilter)?.text()?.let { displayName -> - val tags = document.select("#filter-form $selector li").map { element -> - element.selectFirst("input")!!.let { input -> - Tag( - name = element.selectFirst(".text")!!.text(), - value = input.attr("value"), - query = input.attr("name"), - ) - } - } - displayName to mutableListOf().apply { - this += Tag("Default") - this += tags - } - } - } - - open val filterListSelector: List = listOf( - ".filter-genre", - ".filter-status", - ".filter-type", - ".filter-year", - ".filter-sort", - ) - - open fun filterParse(response: Response) { - val document = Jsoup.parseBodyFragment(response.peekBody(Long.MAX_VALUE).string()) - filterList = filterListSelector.mapNotNull { selector -> parseSelection(document, selector) } - } - - protected data class Tag(val name: String = "", val value: String = "", val query: String = "") - - private open class SelectionList(displayName: String, private val vals: List, state: Int = 0) : - Filter.Select(displayName, vals.map { it.name }.toTypedArray(), state) { - fun selected() = vals[state] - } - - // ============================= Utils ============================== - - private fun String.containsIn(array: Array): Boolean { - return this.lowercase() in array.map { it.lowercase() } - } - - companion object { - const val PREFIX_SEARCH = "id:" - val URL_REGEX = """^(https?://[^\s/$.?#].[^\s]*)${'$'}""".toRegex() - } }