From e6cc5e0f563a9ce85fd3c321af0a2eb31cc42433 Mon Sep 17 00:00:00 2001 From: Secozzi <49240133+Secozzi@users.noreply.github.com> Date: Mon, 23 Sep 2024 15:29:06 +0200 Subject: [PATCH] add weeb central (#5178) * add weeb central * stuff --- src/en/weebcentral/build.gradle | 8 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 5676 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2945 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 7958 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 14650 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 21272 bytes .../extension/en/weebcentral/Filters.kt | 164 ++++++++++++++++ .../extension/en/weebcentral/WeebCentral.kt | 184 ++++++++++++++++++ 8 files changed, 356 insertions(+) create mode 100644 src/en/weebcentral/build.gradle create mode 100644 src/en/weebcentral/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/en/weebcentral/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/en/weebcentral/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/en/weebcentral/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/en/weebcentral/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/en/weebcentral/src/eu/kanade/tachiyomi/extension/en/weebcentral/Filters.kt create mode 100644 src/en/weebcentral/src/eu/kanade/tachiyomi/extension/en/weebcentral/WeebCentral.kt diff --git a/src/en/weebcentral/build.gradle b/src/en/weebcentral/build.gradle new file mode 100644 index 000000000..ac13a189c --- /dev/null +++ b/src/en/weebcentral/build.gradle @@ -0,0 +1,8 @@ +ext { + extName = 'Weeb Central' + extClass = '.WeebCentral' + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/en/weebcentral/res/mipmap-hdpi/ic_launcher.png b/src/en/weebcentral/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ccadbf82d1e26de44f4a346a28421804366c14e2 GIT binary patch literal 5676 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 literal 0 HcmV?d00001 diff --git a/src/en/weebcentral/res/mipmap-xhdpi/ic_launcher.png b/src/en/weebcentral/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..9c288a81038c7c905be63d6f68f661befd2a7478 GIT binary patch literal 7958 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 M07*qoM6N<$f;{nFe*gdg literal 0 HcmV?d00001 diff --git a/src/en/weebcentral/res/mipmap-xxhdpi/ic_launcher.png b/src/en/weebcentral/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..47acb6883b44e8157a6e07f69df38420f0430790 GIT binary patch literal 14650 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 P00000NkvXXu0mjfA7wzZ literal 0 HcmV?d00001 diff --git a/src/en/weebcentral/src/eu/kanade/tachiyomi/extension/en/weebcentral/Filters.kt b/src/en/weebcentral/src/eu/kanade/tachiyomi/extension/en/weebcentral/Filters.kt new file mode 100644 index 000000000..a1190f626 --- /dev/null +++ b/src/en/weebcentral/src/eu/kanade/tachiyomi/extension/en/weebcentral/Filters.kt @@ -0,0 +1,164 @@ +package eu.kanade.tachiyomi.extension.en.weebcentral + +import eu.kanade.tachiyomi.source.model.Filter +import okhttp3.HttpUrl + +interface UriFilter { + fun addToUri(builder: HttpUrl.Builder) +} + +open class UriPartFilter( + name: String, + private val param: String, + private val vals: Array>, + private val default: String = "", +) : UriFilter, Filter.Select( + name, + vals.map { it.first }.toTypedArray(), + vals.indexOfFirst { it.second == default }.takeIf { it != -1 } ?: 0, +) { + override fun addToUri(builder: HttpUrl.Builder) { + builder.addQueryParameter(param, vals[state].second) + } +} + +open class UriMultiSelectOption(name: String, val value: String) : Filter.CheckBox(name) + +open class UriMultiSelectFilter( + name: String, + private val param: String, + private val options: Array>, +) : UriFilter, Filter.Group( + name, + options.map { UriMultiSelectOption(it.first, it.second) }, +) { + override fun addToUri(builder: HttpUrl.Builder) { + state.filter { it.state }.forEach { + builder.addQueryParameter(param, it.value) + } + } +} + +open class UriMultiTriSelectOption(name: String, val value: String) : Filter.TriState(name) + +open class UriMultiTriSelectFilter( + name: String, + private val includeUrlParameter: String, + private val excludeUrlParameter: String, + private val options: Array>, +) : UriFilter, Filter.Group( + name, + options.map { UriMultiTriSelectOption(it.first, it.second) }, +) { + override fun addToUri(builder: HttpUrl.Builder) { + state.forEach { + if (it.isIncluded()) { + builder.addQueryParameter(includeUrlParameter, it.value) + } + if (it.isExcluded()) { + builder.addQueryParameter(excludeUrlParameter, it.value) + } + } + } +} + +class SortFilter(default: String = "") : UriPartFilter( + "Sort", + "sort", + arrayOf( + Pair("Best Match", "Best Match"), + Pair("Alphabet", "Alphabet"), + Pair("Popularity", "Popularity"), + Pair("Subscribers", "Subscribers"), + Pair("Recently Added", "Recently Added"), + Pair("Latest Updates", "Latest Updates"), + ), + default, +) + +class SortOrderFilter : UriPartFilter( + "Sort Order", + "order", + arrayOf( + Pair("Ascending", "Ascending"), + Pair("Descending", "Descending"), + ), +) + +class OfficialTranslationFilter : UriPartFilter( + "Official Translation", + "official", + arrayOf( + Pair("Any", "Any"), + Pair("True", "True"), + Pair("False", "False"), + ), +) + +class StatusFilter : UriMultiSelectFilter( + "Series Status", + "included_status", + arrayOf( + Pair("Ongoing", "Ongoing"), + Pair("Complete", "Complete"), + Pair("Hiatus", "Hiatus"), + Pair("Canceled", "Canceled"), + ), +) + +class TypeFilter : UriMultiSelectFilter( + "Series Type", + "included_type", + arrayOf( + Pair("Manga", "Manga"), + Pair("Manhwa", "Manhwa"), + Pair("Manhua", "Manhua"), + Pair("OEL", "OEL"), + ), +) + +class TagFilter : UriMultiTriSelectFilter( + "Tags", + "included_tag", + "excluded_tag", + arrayOf( + Pair("Action", "Action"), + Pair("Adult", "Adult"), + Pair("Adventure", "Adventure"), + Pair("Comedy", "Comedy"), + Pair("Doujinshi", "Doujinshi"), + Pair("Drama", "Drama"), + Pair("Ecchi", "Ecchi"), + Pair("Fantasy", "Fantasy"), + Pair("Gender Bender", "Gender Bender"), + Pair("Harem", "Harem"), + Pair("Hentai", "Hentai"), + Pair("Historical", "Historical"), + Pair("Horror", "Horror"), + Pair("Isekai", "Isekai"), + Pair("Josei", "Josei"), + Pair("Lolicon", "Lolicon"), + Pair("Martial Arts", "Martial Arts"), + Pair("Mature", "Mature"), + Pair("Mecha", "Mecha"), + Pair("Mystery", "Mystery"), + Pair("Psychological", "Psychological"), + Pair("Romance", "Romance"), + Pair("School Life", "School Life"), + Pair("Sci-fi", "Sci-fi"), + Pair("Seinen", "Seinen"), + Pair("Shotacon", "Shotacon"), + Pair("Shoujo", "Shoujo"), + Pair("Shoujo Ai", "Shoujo Ai"), + Pair("Shounen", "Shounen"), + Pair("Shounen Ai", "Shounen Ai"), + Pair("Slice of Life", "Slice of Life"), + Pair("Smut", "Smut"), + Pair("Sports", "Sports"), + Pair("Supernatural", "Supernatural"), + Pair("Tragedy", "Tragedy"), + Pair("Yaoi", "Yaoi"), + Pair("Yuri", "Yuri"), + Pair("Other", "Other"), + ), +) diff --git a/src/en/weebcentral/src/eu/kanade/tachiyomi/extension/en/weebcentral/WeebCentral.kt b/src/en/weebcentral/src/eu/kanade/tachiyomi/extension/en/weebcentral/WeebCentral.kt new file mode 100644 index 000000000..4249e5bfb --- /dev/null +++ b/src/en/weebcentral/src/eu/kanade/tachiyomi/extension/en/weebcentral/WeebCentral.kt @@ -0,0 +1,184 @@ +package eu.kanade.tachiyomi.extension.en.weebcentral + +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.interceptor.rateLimit +import eu.kanade.tachiyomi.source.model.FilterList +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 org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import java.text.ParseException +import java.text.SimpleDateFormat +import java.util.Locale + +class WeebCentral : ParsedHttpSource() { + + override val name = "Weeb Central" + + override val baseUrl = "https://weebcentral.com" + + override val lang = "en" + + override val supportsLatest = true + + override val client = network.cloudflareClient.newBuilder() + .rateLimit(2) + .build() + + override fun headersBuilder() = super.headersBuilder() + .add("Referer", "$baseUrl/") + + private val dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH) + + // ============================== Popular =============================== + + override fun popularMangaRequest(page: Int): Request = searchMangaRequest( + page, + "", + defaultFilterList(SortFilter("Popularity")), + ) + + override fun popularMangaSelector(): String = searchMangaSelector() + + override fun popularMangaFromElement(element: Element): SManga = searchMangaFromElement(element) + + override fun popularMangaNextPageSelector(): String = searchMangaNextPageSelector() + + // =============================== Latest =============================== + + override fun latestUpdatesRequest(page: Int): Request = searchMangaRequest( + page, + "", + defaultFilterList(SortFilter("Latest Updates")), + ) + + override fun latestUpdatesSelector(): String = searchMangaSelector() + + override fun latestUpdatesFromElement(element: Element): SManga = searchMangaFromElement(element) + + override fun latestUpdatesNextPageSelector(): String = searchMangaNextPageSelector() + + // =============================== Search =============================== + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val filterList = filters.ifEmpty { getFilterList() } + val url = "$baseUrl/search".toHttpUrl().newBuilder().apply { + addQueryParameter("text", query) + filterList.filterIsInstance().forEach { + it.addToUri(this) + } + addQueryParameter("limit", FETCH_LIMIT.toString()) + addQueryParameter("offset", ((page - 1) * FETCH_LIMIT).toString()) + }.build() + + return GET(url, headers) + } + + override fun searchMangaSelector(): String = "#search-results > article:not(#search-more-container)" + + override fun searchMangaFromElement(element: Element): SManga = SManga.create().apply { + thumbnail_url = element.selectFirst("img")!!.attr("abs:src") + with(element.selectFirst("div > a")!!) { + title = text() + setUrlWithoutDomain(attr("abs:href")) + } + } + + override fun searchMangaNextPageSelector(): String = "#search-more-container > button" + + // =============================== Filters ============================== + + override fun getFilterList(): FilterList = defaultFilterList(SortFilter()) + + // =========================== Manga Details ============================ + + override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply { + with(document.select("section[x-data] > section")[0]) { + thumbnail_url = selectFirst("img")!!.attr("abs:src") + author = select("ul > li:has(strong:contains(Author)) > span > a").joinToString { it.text() } + genre = select("ul > li:has(strong:contains(Tag)) > span > a").joinToString { it.text() } + status = selectFirst("ul > li:has(strong:contains(Status)) > a").parseStatus() + } + + with(document.select("section[x-data] > section")[1]) { + title = selectFirst("h1")!!.text() + description = selectFirst("li:has(strong:contains(Description)) > p")?.text() + ?.replace("NOTE: ", "\n\nNOTE: ") + } + } + + private fun Element?.parseStatus(): Int = when (this?.text()?.lowercase()) { + "ongoing" -> SManga.ONGOING + "complete" -> SManga.COMPLETED + "hiatus" -> SManga.ON_HIATUS + "canceled" -> SManga.CANCELLED + else -> SManga.UNKNOWN + } + + // ============================== Chapters ============================== + + override fun chapterListRequest(manga: SManga): Request { + val url = (baseUrl + manga.url).toHttpUrl().newBuilder().apply { + removePathSegment(2) + addPathSegment("full-chapter-list") + }.build() + + return GET(url, headers) + } + + override fun chapterListSelector() = "a" + + override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply { + name = element.selectFirst("span.flex")!!.text() + setUrlWithoutDomain(element.attr("abs:href")) + element.selectFirst("time[datetime]")?.also { + date_upload = it.attr("datetime").parseDate() + } + } + + private fun String.parseDate(): Long { + return try { + dateFormat.parse(this)!!.time + } catch (_: ParseException) { + 0L + } + } + // =============================== Pages ================================ + + override fun pageListParse(document: Document): List { + return document.select("section[x-data~=scroll] > img").mapIndexed { index, element -> + Page(index, imageUrl = element.attr("abs:src")) + } + } + + override fun imageUrlParse(document: Document) = + throw UnsupportedOperationException() + + override fun imageRequest(page: Page): Request { + val imgHeaders = headersBuilder().apply { + add("Accept", "image/avif,image/webp,*/*") + add("Host", page.imageUrl!!.toHttpUrl().host) + }.build() + + return GET(page.imageUrl!!, imgHeaders) + } + + // ============================= Utilities ============================== + + private fun defaultFilterList(sortFilter: SortFilter): FilterList = FilterList( + sortFilter, + SortOrderFilter(), + OfficialTranslationFilter(), + StatusFilter(), + TypeFilter(), + TagFilter(), + ) + + companion object { + const val FETCH_LIMIT = 24 + } +}