From b0b1e0d5cd0b9bae4e577e7e34d905a1aab1b436 Mon Sep 17 00:00:00 2001 From: Chopper <156493704+choppeh@users.noreply.github.com> Date: Sun, 18 Aug 2024 08:43:13 -0300 Subject: [PATCH] Add KappaBeast (#4666) * Add KappaBeast * Fix Typo * Add 'open' to parseGenre and filter properties * Fix build --- .../multisrc/mangathemesia/MangaThemesia.kt | 6 +-- src/en/kappabeast/build.gradle | 9 ++++ .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2255 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1288 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 2874 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 4958 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 6934 bytes .../extension/en/kappabeast/KappaBeast.kt | 46 ++++++++++++++++++ .../extension/id/mangacan/MangaCan.kt | 27 +++------- 9 files changed, 66 insertions(+), 22 deletions(-) create mode 100644 src/en/kappabeast/build.gradle create mode 100644 src/en/kappabeast/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/en/kappabeast/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/en/kappabeast/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/en/kappabeast/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/en/kappabeast/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/en/kappabeast/src/eu/kanade/tachiyomi/extension/en/kappabeast/KappaBeast.kt diff --git a/lib-multisrc/mangathemesia/src/eu/kanade/tachiyomi/multisrc/mangathemesia/MangaThemesia.kt b/lib-multisrc/mangathemesia/src/eu/kanade/tachiyomi/multisrc/mangathemesia/MangaThemesia.kt index f30575bf4..7a7962d52 100644 --- a/lib-multisrc/mangathemesia/src/eu/kanade/tachiyomi/multisrc/mangathemesia/MangaThemesia.kt +++ b/lib-multisrc/mangathemesia/src/eu/kanade/tachiyomi/multisrc/mangathemesia/MangaThemesia.kt @@ -490,8 +490,8 @@ abstract class MangaThemesia( Pair(intl["order_by_filter_popular"], "popular"), ) - protected val popularFilter by lazy { FilterList(OrderByFilter("", orderByFilterOptions, "popular")) } - protected val latestFilter by lazy { FilterList(OrderByFilter("", orderByFilterOptions, "update")) } + protected open val popularFilter by lazy { FilterList(OrderByFilter("", orderByFilterOptions, "popular")) } + protected open val latestFilter by lazy { FilterList(OrderByFilter("", orderByFilterOptions, "update")) } protected class ProjectFilter( name: String, @@ -603,7 +603,7 @@ abstract class MangaThemesia( (!strict && url.pathSegments.size == n + 1 && url.pathSegments[n].isEmpty()) } - private fun parseGenres(document: Document): List? { + protected open fun parseGenres(document: Document): List? { return document.selectFirst("ul.genrez")?.select("li")?.map { li -> GenreData( li.selectFirst("label")!!.text(), diff --git a/src/en/kappabeast/build.gradle b/src/en/kappabeast/build.gradle new file mode 100644 index 000000000..d82622386 --- /dev/null +++ b/src/en/kappabeast/build.gradle @@ -0,0 +1,9 @@ +ext { + extName = 'Kappa Beast' + extClass = '.KappaBeast' + themePkg = 'mangathemesia' + baseUrl = 'https://kappabeast.com' + overrideVersionCode = 0 +} + +apply from: "$rootDir/common.gradle" diff --git a/src/en/kappabeast/res/mipmap-hdpi/ic_launcher.png b/src/en/kappabeast/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..5ae9ff19c065a17f5d73cc257abb00179adc7474 GIT binary patch literal 2255 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 Y4^rN$_oSuyLI3~&07*qoM6N<$f`~CxcK`qY literal 0 HcmV?d00001 diff --git a/src/en/kappabeast/res/mipmap-xxhdpi/ic_launcher.png b/src/en/kappabeast/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f1ad24177502464da7d2dafb548cb862b6a77e68 GIT binary patch literal 4958 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 SUtalUfW|#tl}hD@A^!s+4n#8m literal 0 HcmV?d00001 diff --git a/src/en/kappabeast/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/kappabeast/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..054d38bf3374d203852fe21f8fc841efa3371d68 GIT binary patch literal 6934 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 literal 0 HcmV?d00001 diff --git a/src/en/kappabeast/src/eu/kanade/tachiyomi/extension/en/kappabeast/KappaBeast.kt b/src/en/kappabeast/src/eu/kanade/tachiyomi/extension/en/kappabeast/KappaBeast.kt new file mode 100644 index 000000000..8aec1e03d --- /dev/null +++ b/src/en/kappabeast/src/eu/kanade/tachiyomi/extension/en/kappabeast/KappaBeast.kt @@ -0,0 +1,46 @@ +package eu.kanade.tachiyomi.extension.en.kappabeast + +import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia +import eu.kanade.tachiyomi.network.interceptor.rateLimit +import eu.kanade.tachiyomi.source.model.FilterList +import org.jsoup.nodes.Document + +class KappaBeast : MangaThemesia( + "Kappa Beast", + "https://kappabeast.com", + "en", + mangaUrlDirectory = "/series", +) { + override val client = super.client.newBuilder() + .rateLimit(3) + .build() + + override val typeFilterOptions = arrayOf( + Pair(intl["type_filter_option_manga"], "manga"), + ) + + override val popularFilter = FilterList( + OrderByFilter("", orderByFilterOptions, "popular"), + TypeFilter("", typeFilterOptions), + ) + + override val latestFilter = FilterList( + OrderByFilter("", orderByFilterOptions, "update"), + TypeFilter("", typeFilterOptions), + ) + + override fun searchMangaSelector() = ".listupd .maindet" + + override val seriesThumbnailSelector = ".sertothumb .ts-post-image" + + override val pageSelector = ".epcontent.entry-content img" + + override fun parseGenres(document: Document): List { + return document.select("li:has(input[id*='genre'])").map { li -> + GenreData( + li.selectFirst("label")!!.text(), + li.selectFirst("input[type=checkbox]")!!.attr("value"), + ) + } + } +} diff --git a/src/id/mangacan/src/eu/kanade/tachiyomi/extension/id/mangacan/MangaCan.kt b/src/id/mangacan/src/eu/kanade/tachiyomi/extension/id/mangacan/MangaCan.kt index 03aece8a2..81148a5b9 100644 --- a/src/id/mangacan/src/eu/kanade/tachiyomi/extension/id/mangacan/MangaCan.kt +++ b/src/id/mangacan/src/eu/kanade/tachiyomi/extension/id/mangacan/MangaCan.kt @@ -8,10 +8,8 @@ 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.SManga -import eu.kanade.tachiyomi.util.asJsoup import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.Request -import okhttp3.Response import org.jsoup.nodes.Document import rx.Observable @@ -31,8 +29,6 @@ class MangaCan : MangaThemesia( override val pageSelector = "div.images img" - private var genreList: Array> = emptyArray() - override fun imageRequest(page: Page): Request { return super.imageRequest(page).newBuilder() .removeHeader("Referer") @@ -40,15 +36,6 @@ class MangaCan : MangaThemesia( .build() } - override fun searchMangaParse(response: Response): MangasPage { - if (genreList.isEmpty()) { - genreList += "All" to "" - genreList += parseGenres(response.asJsoup(response.peekBody(Long.MAX_VALUE).string())) - } - - return super.searchMangaParse(response) - } - override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { if (query.startsWith(URL_SEARCH_PREFIX).not()) return super.fetchSearchManga(page, query, filters) val url = query.substringAfter(URL_SEARCH_PREFIX) @@ -87,11 +74,11 @@ class MangaCan : MangaThemesia( override fun getFilterList(): FilterList { val filters = mutableListOf>() - if (genreList.isNotEmpty()) { + if (!genrelist.isNullOrEmpty()) { filters.addAll( listOf( Filter.Header(intl["genre_exclusion_warning"]), - GenreFilter(intl["genre_filter_title"], genreList), + GenreFilter(intl["genre_filter_title"], genrelist?.map { it.name to it.value }!!.toTypedArray()), ), ) } else { @@ -102,10 +89,12 @@ class MangaCan : MangaThemesia( return FilterList(filters) } - private fun parseGenres(document: Document): Array> { - return document.select(".textwidget.custom-html-widget a").map { element -> - element.text() to element.attr("href") - }.toTypedArray() + override fun parseGenres(document: Document): List { + return mutableListOf(GenreData("All", "")).apply { + this += document.select(".textwidget.custom-html-widget a").map { element -> + GenreData(element.text(), element.attr("href")) + } + } } private class GenreFilter(