From 8e86f6b7231602e606c4b99becf897c0263fed29 Mon Sep 17 00:00:00 2001 From: suhaien <129636286+suhaien@users.noreply.github.com> Date: Tue, 7 Jan 2025 18:28:21 +0000 Subject: [PATCH] Add 11toon (#7006) * Add 11toon * update search * update parsers --- src/ko/toon11/build.gradle | 8 + src/ko/toon11/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 5232 bytes src/ko/toon11/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2856 bytes .../toon11/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 6494 bytes .../toon11/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 11301 bytes .../toon11/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 15872 bytes .../tachiyomi/extension/ko/toon11/Toon11.kt | 265 ++++++++++++++++++ 7 files changed, 273 insertions(+) create mode 100644 src/ko/toon11/build.gradle create mode 100644 src/ko/toon11/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/ko/toon11/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/ko/toon11/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/ko/toon11/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/ko/toon11/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/ko/toon11/src/eu/kanade/tachiyomi/extension/ko/toon11/Toon11.kt diff --git a/src/ko/toon11/build.gradle b/src/ko/toon11/build.gradle new file mode 100644 index 000000000..48b3f9a3e --- /dev/null +++ b/src/ko/toon11/build.gradle @@ -0,0 +1,8 @@ +ext { + extName = '11toon' + extClass = '.Toon11' + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/ko/toon11/res/mipmap-hdpi/ic_launcher.png b/src/ko/toon11/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..398b19fb97b854ca90a631aa2dd9014d68c18392 GIT binary patch literal 5232 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 Eg8bVTy8r+H literal 0 HcmV?d00001 diff --git a/src/ko/toon11/res/mipmap-xxhdpi/ic_launcher.png b/src/ko/toon11/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17ec634d6af845868720df7e18925d2fba716b2a GIT binary patch literal 11301 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 literal 0 HcmV?d00001 diff --git a/src/ko/toon11/res/mipmap-xxxhdpi/ic_launcher.png b/src/ko/toon11/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..51d9e9d30fd2483b6f75789c1be50b78f9877b81 GIT binary patch literal 15872 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 H(mdpUX{qOZ literal 0 HcmV?d00001 diff --git a/src/ko/toon11/src/eu/kanade/tachiyomi/extension/ko/toon11/Toon11.kt b/src/ko/toon11/src/eu/kanade/tachiyomi/extension/ko/toon11/Toon11.kt new file mode 100644 index 000000000..ff86dbed3 --- /dev/null +++ b/src/ko/toon11/src/eu/kanade/tachiyomi/extension/ko/toon11/Toon11.kt @@ -0,0 +1,265 @@ +package eu.kanade.tachiyomi.extension.ko.toon11 + +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 eu.kanade.tachiyomi.util.asJsoup +import kotlinx.serialization.decodeFromString +import kotlinx.serialization.json.Json +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.OkHttpClient +import okhttp3.Request +import okhttp3.Response +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import java.text.ParseException +import java.text.SimpleDateFormat +import java.util.ArrayList +import java.util.Date +import java.util.Locale + +class Toon11 : ParsedHttpSource() { + + override val name = "11toon" + + override val baseUrl = "https://www.11toon.com" + + override val lang = "ko" + + override val supportsLatest = true + + override val client: OkHttpClient = network.cloudflareClient + + override fun popularMangaSelector() = "li[data-id]" + + override fun latestUpdatesSelector() = popularMangaSelector() + + override fun popularMangaRequest(page: Int) = GET("$baseUrl/bbs/board.php?bo_table=toon_c&is_over=0", headers) + + override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/bbs/board.php?bo_table=toon_c&sord=&type=upd&page=$page", headers) + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + return if (query.isNotBlank()) { + val url = "$baseUrl/bbs/search_stx.php".toHttpUrl().newBuilder().apply { + addQueryParameter("stx", query) + }.build() + GET(url, headers) + } else { + var urlString = "" + var isOver = "" + var genre = "" + + filters.forEach { filter -> + when (filter) { + is SortFilter -> urlString = filter.selected + is StatusFilter -> isOver = filter.selected + is GenreFilter -> genre = filter.selected + else -> {} + } + } + + val url = urlString.toHttpUrl().newBuilder().apply { + addQueryParameter("is_over", isOver) + if (page > 1) addQueryParameter("page", page.toString()) + if (genre.isNotEmpty()) addQueryParameter("sca", genre) + }.build() + + GET(url, headers) + } + } + + override fun popularMangaFromElement(element: Element) = SManga.create().apply { + setUrlWithoutDomain(element.selectFirst("a")!!.absUrl("href")) + title = element.selectFirst(".homelist-title")!!.text() + thumbnail_url = element.selectFirst(".homelist-thumb")?.absUrl("data-mobile-image") + } + + override fun latestUpdatesFromElement(element: Element) = SManga.create().apply { + setUrlWithoutDomain(element.selectFirst("a")!!.absUrl("href")) + title = element.selectFirst(".homelist-title")!!.text() + element.selectFirst(".homelist-thumb")?.also { + thumbnail_url = "https:" + it.attr("style").substringAfter("url('").substringBefore("')") + } + } + + override fun popularMangaNextPageSelector() = ".pg_end" + + override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector() + + override fun searchMangaSelector() = popularMangaSelector() + + override fun searchMangaFromElement(element: Element) = SManga.create().apply { + title = element.selectFirst(".homelist-title")!!.text() + val dataId = element.attr("data-id") + setUrlWithoutDomain("$baseUrl/bbs/board.php?bo_table=toons&stx=$title&is=$dataId") + element.selectFirst(".homelist-thumb")?.also { + thumbnail_url = "https:" + it.attr("style").substringAfter("url('").substringBefore("')") + } + } + + override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() + + override fun mangaDetailsParse(document: Document): SManga { + return SManga.create().apply { + title = document.selectFirst("h2.title")!!.text() + thumbnail_url = document.selectFirst("img.banner")?.absUrl("src") + document.selectFirst("span:contains(분류) + span")?.also { status = parseStatus(it.text()) } + document.selectFirst("span:contains(작가) + span")?.also { author = it.text() } + document.selectFirst("span:contains(소개) + span")?.also { description = it.text() } + document.selectFirst("span:contains(장르) + span")?.also { genre = it.text().split(",").joinToString() } + } + } + + private fun parseStatus(element: String): Int = when { + "완결" in element -> SManga.COMPLETED + "주간" in element || "월간" in element || "연재" in element || "격주" in element -> SManga.ONGOING + else -> SManga.UNKNOWN + } + + private tailrec fun parseChapters(nextURL: String, chapters: ArrayList) { + val newpage = fetchPagesFromNav(nextURL) + newpage.select(chapterListSelector()).forEach { + chapters.add(chapterFromElement(it)) + } + val newURL = newpage.selectFirst(".pg_current ~ .pg_page")?.absUrl("href") + if (!newURL.isNullOrBlank()) parseChapters(newURL, chapters) + } + + override fun chapterListParse(response: Response): List { + val document = response.asJsoup() + val nav = document.selectFirst("span.pg") + val chapters = ArrayList() + + document.select(chapterListSelector()).forEach { + chapters.add(chapterFromElement(it)) + } + + if (nav == null) { + return chapters + } + + val pg2url = nav.selectFirst(".pg_current ~ .pg_page")!!.absUrl("href") + + // recursively build the chapter list + + parseChapters(pg2url, chapters) + + return chapters + } + + private fun fetchPagesFromNav(url: String) = client.newCall(GET(url, headers)).execute().asJsoup() + + override fun chapterListSelector() = "#comic-episode-list > li" + + override fun chapterFromElement(element: Element): SChapter { + val urlEl = element.selectFirst("button") + val dateEl = element.selectFirst(".free-date") + + return SChapter.create().apply { + urlEl!!.also { + setUrlWithoutDomain(it.attr("onclick").substringAfter("location.href='.").substringBefore("'")) + name = it.selectFirst(".episode-title")!!.text() + } + dateEl?.also { date_upload = dateParse(it.text()) } + } + } + + private val dateFormat = SimpleDateFormat("yy.MM.dd", Locale.ENGLISH) + + private fun dateParse(dateAsString: String): Long { + val date: Date? = try { + dateFormat.parse(dateAsString) + } catch (e: ParseException) { + null + } + return date?.time ?: 0L + } + + override fun pageListRequest(chapter: SChapter): Request { + return GET(baseUrl + "/bbs" + chapter.url, headers) + } + + override fun pageListParse(document: Document): List { + val rawImageLinks = document.selectFirst("script + script[type^=text/javascript]:not([src])")!!.data() + val imgList = extractList(rawImageLinks) + + return imgList.mapIndexed { i, img -> + Page(i, imageUrl = "https:$img") + } + } + + private val imgListRegex = """img_list\s*=\s*(\[.*?])""".toRegex(RegexOption.DOT_MATCHES_ALL) + + private fun extractList(jsString: String): List { + val matchResult = imgListRegex.find(jsString) + val listString = matchResult?.groupValues?.get(1) ?: return emptyList() + return Json.decodeFromString>(listString) + } + + override fun imageUrlParse(document: Document) = throw UnsupportedOperationException() + + // Filters + + override fun getFilterList() = FilterList( + Filter.Header("Note: can't combine search query with filters, status filter only has effect in 인기만화"), + Filter.Separator(), + SortFilter(getSortList, 0), + StatusFilter(getStatusList, 0), + GenreFilter(getGenreList, 0), + ) + + class SelectFilterOption(val name: String, val value: String) + + abstract class SelectFilter(name: String, private val options: List, default: Int = 0) : Filter.Select(name, options.map { it.name }.toTypedArray(), default) { + val selected: String + get() = options[state].value + } + + class SortFilter(options: List, default: Int) : SelectFilter("Sort", options, default) + class StatusFilter(options: List, default: Int) : SelectFilter("Status", options, default) + class GenreFilter(options: List, default: Int) : SelectFilter("Genre", options, default) + + private val getSortList = listOf( + SelectFilterOption("인기만화", "$baseUrl/bbs/board.php?bo_table=toon_c"), + SelectFilterOption("최신만화", "$baseUrl/bbs/board.php?bo_table=toon_c&tablename=최신만화&type=upd"), + ) + + private val getStatusList = listOf( + SelectFilterOption("전체", "0"), + SelectFilterOption("완결", "1"), + ) + + private val getGenreList = listOf( + SelectFilterOption("전체", ""), + SelectFilterOption("SF", "SF"), + SelectFilterOption("무협", "무협"), + SelectFilterOption("TS", "TS"), + SelectFilterOption("개그", "개그"), + SelectFilterOption("드라마", "드라마"), + SelectFilterOption("러브코미디", "러브코미디"), + SelectFilterOption("먹방", "먹방"), + SelectFilterOption("백합", "백합"), + SelectFilterOption("붕탁", "붕탁"), + SelectFilterOption("스릴러", "스릴러"), + SelectFilterOption("스포츠", "스포츠"), + SelectFilterOption("시대", "시대"), + SelectFilterOption("액션", "액션"), + SelectFilterOption("순정", "순정"), + SelectFilterOption("일상+치유", "일상%2B치유"), + SelectFilterOption("추리", "추리"), + SelectFilterOption("판타지", "판타지"), + SelectFilterOption("학원", "학원"), + SelectFilterOption("호러", "호러"), + SelectFilterOption("BL", "BL"), + SelectFilterOption("17", "17"), + SelectFilterOption("이세계", "이세계"), + SelectFilterOption("전생", "전생"), + SelectFilterOption("라노벨", "라노벨"), + SelectFilterOption("애니화", "애니화"), + SelectFilterOption("TL", "TL"), + ) +}