From 461846edaadd5decfd20798550af06aff91518ab Mon Sep 17 00:00:00 2001 From: Barrell Titor <108460132+barrelltitor@users.noreply.github.com> Date: Mon, 1 Apr 2024 17:34:13 +0300 Subject: [PATCH] Readcomic.top source (#2192) * added readcomic source * added images * added isNsfw * fixing after review * added status filter * final - added tristate genre filter * changeed name and removed comment --- src/en/readcomictop/build.gradle | 8 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2686 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1543 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3320 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 5964 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 7843 bytes .../extension/en/readcomictop/ReadComicTop.kt | 234 ++++++++++++++++++ 7 files changed, 242 insertions(+) create mode 100644 src/en/readcomictop/build.gradle create mode 100644 src/en/readcomictop/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/en/readcomictop/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/en/readcomictop/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/en/readcomictop/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/en/readcomictop/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/en/readcomictop/src/eu/kanade/tachiyomi/extension/en/readcomictop/ReadComicTop.kt diff --git a/src/en/readcomictop/build.gradle b/src/en/readcomictop/build.gradle new file mode 100644 index 000000000..bc84fc938 --- /dev/null +++ b/src/en/readcomictop/build.gradle @@ -0,0 +1,8 @@ +ext { + extName = 'ReadComic.Top' + extClass = '.ReadComicTop' + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/en/readcomictop/res/mipmap-hdpi/ic_launcher.png b/src/en/readcomictop/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b180323a7fcb6de94a0ac4c78f49c3e12bbc8786 GIT binary patch literal 2686 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 literal 0 HcmV?d00001 diff --git a/src/en/readcomictop/res/mipmap-mdpi/ic_launcher.png b/src/en/readcomictop/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..cf7fde8cbb5ad137c7c412588fec650fc3c8b9a8 GIT binary patch literal 1543 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 literal 0 HcmV?d00001 diff --git a/src/en/readcomictop/src/eu/kanade/tachiyomi/extension/en/readcomictop/ReadComicTop.kt b/src/en/readcomictop/src/eu/kanade/tachiyomi/extension/en/readcomictop/ReadComicTop.kt new file mode 100644 index 000000000..cb7abba04 --- /dev/null +++ b/src/en/readcomictop/src/eu/kanade/tachiyomi/extension/en/readcomictop/ReadComicTop.kt @@ -0,0 +1,234 @@ +package eu.kanade.tachiyomi.extension.en.readcomictop + +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.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.OkHttpClient +import okhttp3.Request +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import java.text.SimpleDateFormat +import java.util.Locale + +class ReadComicTop : ParsedHttpSource() { + + override val name = "ReadComic.Top" + + override val baseUrl = "https://readcomic.top" + + override val lang = "en" + + override val supportsLatest = true + + override val client: OkHttpClient = network.cloudflareClient + + override fun popularMangaSelector() = "div.eg-box" + + override fun latestUpdatesSelector() = "ul.line-list" + + override fun popularMangaRequest(page: Int): Request { + val url = "$baseUrl/popular-comics".toHttpUrl().newBuilder().apply { + if (page > 1) addQueryParameter("page", page.toString()) + }.build() + return GET(url, headers) + } + + override fun latestUpdatesRequest(page: Int): Request { + val url = "$baseUrl/comic-updates".toHttpUrl().newBuilder().apply { + if (page > 1) addQueryParameter("page", page.toString()) + }.build() + return GET(url, headers) + } + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = "$baseUrl/advanced-search".toHttpUrl().newBuilder().apply { + addQueryParameter("key", query) + filters.forEach { filter -> + when (filter) { + is GenreFilter -> { + addQueryParameter("wg", filter.included.joinToString("%2C")) + addQueryParameter("wog", filter.excluded.joinToString("%2C")) + } + is StatusFilter -> if (filter.toUriPart().isNotBlank()) { + addQueryParameter("status", filter.toUriPart()) + } + else -> {} + } + } + if (page > 1) addQueryParameter("page", page.toString()) + }.build() + return GET(url, headers) + } + + override fun popularMangaFromElement(element: Element) = SManga.create().apply { + setUrlWithoutDomain(element.select("div.egb-right > a.egb-serie").attr("href")) + title = element.select("div.egb-right > a.egb-serie").text() + thumbnail_url = element.select("a.eg-image > img").attr("src") + } + + override fun latestUpdatesFromElement(element: Element) = SManga.create().apply { + with(element.select("ul.line-list > li > a.big-link")) { + setUrlWithoutDomain(attr("href")) + title = text() + } + thumbnail_url = "https://fakeimg.pl/200x300/?text=No%20Cover&font_size=62" + } + override fun searchMangaFromElement(element: Element) = SManga.create().apply { + with(element.select("div.dlb-right > a.dlb-title")) { + setUrlWithoutDomain(attr("href")) + title = text() + } + thumbnail_url = element.select("a.dlb-image > img").attr("src") + } + + override fun popularMangaNextPageSelector() = "div.general-nav > a:contains(Next)" + + override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector() + + override fun searchMangaSelector() = "div.dl-box" + + override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() + + override fun mangaDetailsParse(document: Document): SManga { + return SManga.create().apply { + title = document.select("h1.title").text() + thumbnail_url = document.select("div.anime-image > img").attr("src") + status = parseStatus(document.select("ul.anime-genres li.status").text()) + author = document.select("td:contains(Author:) + td").text() + description = document.select(".detail-desc-content > p").text() + genre = document.select("ul.anime-genres > li > a[href*='genre']").joinToString { it.text() } + } + } + + private fun parseStatus(element: String): Int = when { + element.contains("Completed") -> SManga.COMPLETED + element.contains("Ongoing") -> SManga.ONGOING + else -> SManga.UNKNOWN + } + + override fun chapterListSelector() = "ul.basic-list > li" + + override fun chapterFromElement(element: Element): SChapter { + return SChapter.create().apply { + with(element.select("a.ch-name")) { + setUrlWithoutDomain(attr("href")) + name = text() + } + date_upload = dateParse(element.select("span").text()) + } + } + + private val dateFormat by lazy { SimpleDateFormat("MM/dd/yyyy", Locale.ENGLISH) } + + private fun dateParse(dateStr: String): Long { + return try { + dateFormat.parse(dateStr)!!.time + } catch (_: Exception) { + 0L + } + } + + override fun pageListRequest(chapter: SChapter): Request { + return GET(baseUrl + chapter.url + "/full", headers) + } + + override fun pageListParse(document: Document): List { + return document.select("div.chapter-container img").mapIndexed { index, img -> + Page(index, "", img.attr("abs:src")) + } + } + + override fun imageUrlParse(document: Document) = throw UnsupportedOperationException() + + // Filters + + override fun getFilterList() = FilterList( + Filter.Header("Note: can't leave both filters as Any with a blank search string"), + Filter.Separator(), + GenreFilter(getGenreList), + StatusFilter(getStatusList), + ) + + private class Genre(name: String, val toUriPart: String) : Filter.TriState(name) + private class GenreFilter(genres: List) : Filter.Group("Genres", genres) { + val included: List + get() = state.filter { it.isIncluded() }.map { it.toUriPart } + + val excluded: List + get() = state.filter { it.isExcluded() }.map { it.toUriPart } + } + private class StatusFilter(statusPairs: Array>) : UriPartFilter("Status", statusPairs) + + open class UriPartFilter(displayName: String, private val vals: Array>) : + Filter.Select(displayName, vals.map { it.first }.toTypedArray()) { + fun toUriPart() = vals[state].second + } + private val getStatusList = arrayOf( + Pair("Any", ""), // You might want an option for any status + Pair("Ongoing", "ONG"), + Pair("Completed", "CMP"), + ) + private val getGenreList = listOf( + Genre("Any", ""), + Genre("Marvel", "Marvel"), + Genre("DC Comics", "DC%20Comics"), + Genre("Action", "Action"), + Genre("Adventure", "Adventure"), + Genre("Anthology", "Anthology"), + Genre("Anthropomorphic", "Anthropomorphic"), + Genre("Biography", "Biography"), + Genre("Children", "Children"), + Genre("Comedy", "Comedy"), + Genre("Crime", "Crime"), + Genre("Cyborgs", "Cyborgs"), + Genre("Dark Horse", "Dark%20Horse"), + Genre("Demons", "Demons"), + Genre("Drama", "Drama"), + Genre("Fantasy", "Fantasy"), + Genre("Family", "Family"), + Genre("Fighting", "Fighting"), + Genre("Gore", "Gore"), + Genre("Graphic Novels", "Graphic%20Novels"), + Genre("Historical", "Historical"), + Genre("Horror", "Horror"), + Genre("Leading Ladies", "Leading%20Ladies"), + Genre("Literature", "Literature"), + Genre("Magic", "Magic"), + Genre("Manga", "Manga"), + Genre("Martial Arts", "Martial%20Arts"), + Genre("Mature", "Mature"), + Genre("Mecha", "Mecha"), + Genre("Military", "Military"), + Genre("Movie Cinematic Link", "Movie%20Cinematic%20Link"), + Genre("Mystery", "Mystery"), + Genre("Mythology", "Mythology"), + Genre("Psychological", "Psychological"), + Genre("Personal", "Personal"), + Genre("Political", "Political"), + Genre("Post-Apocalyptic", "Post-Apocalyptic"), + Genre("Pulp", "Pulp"), + Genre("Robots", "Robots"), + Genre("Romance", "Romance"), + Genre("Sci-Fi", "Sci-Fi"), + Genre("Slice of Life", "Slice%20of%20Life"), + Genre("Science Fiction", "Science%20Fiction"), + Genre("Sports", "Sports"), + Genre("Spy", "Spy"), + Genre("Superhero", "Superhero"), + Genre("Supernatural", "Supernatural"), + Genre("Suspense", "Suspense"), + Genre("Thriller", "Thriller"), + Genre("Tragedy", "Tragedy"), + Genre("Vampires", "Vampires"), + Genre("Vertigo", "Vertigo"), + Genre("Video Games", "Video%20Games"), + Genre("War", "War"), + Genre("Western", "Western"), + Genre("Zombies", "Zombies"), + ) +}