From 66551c4ecadedfbf6d7aa0375e44011e278c7eb1 Mon Sep 17 00:00:00 2001 From: stevenyomi <95685115+stevenyomi@users.noreply.github.com> Date: Tue, 8 Jul 2025 17:30:00 +0000 Subject: [PATCH] Remove duplicate YYmanhua (#9564) It is a mirror of Mangabz. --- src/zh/yymanhua/build.gradle | 8 - .../yymanhua/res/mipmap-hdpi/ic_launcher.png | Bin 3895 -> 0 bytes .../yymanhua/res/mipmap-mdpi/ic_launcher.png | Bin 2076 -> 0 bytes .../yymanhua/res/mipmap-xhdpi/ic_launcher.png | Bin 5687 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 10275 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 14764 -> 0 bytes .../extension/zh/yymanhua/Filters.kt | 29 --- .../extension/zh/yymanhua/YYmanhua.kt | 209 ------------------ 8 files changed, 246 deletions(-) delete mode 100644 src/zh/yymanhua/build.gradle delete mode 100644 src/zh/yymanhua/res/mipmap-hdpi/ic_launcher.png delete mode 100644 src/zh/yymanhua/res/mipmap-mdpi/ic_launcher.png delete mode 100644 src/zh/yymanhua/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 src/zh/yymanhua/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 src/zh/yymanhua/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 src/zh/yymanhua/src/eu/kanade/tachiyomi/extension/zh/yymanhua/Filters.kt delete mode 100644 src/zh/yymanhua/src/eu/kanade/tachiyomi/extension/zh/yymanhua/YYmanhua.kt diff --git a/src/zh/yymanhua/build.gradle b/src/zh/yymanhua/build.gradle deleted file mode 100644 index d8761aa9b..000000000 --- a/src/zh/yymanhua/build.gradle +++ /dev/null @@ -1,8 +0,0 @@ -ext { - extName = 'YYmanhua' - extClass = '.YYmanhua' - extVersionCode = 2 - isNsfw = false -} - -apply from: "$rootDir/common.gradle" diff --git a/src/zh/yymanhua/res/mipmap-hdpi/ic_launcher.png b/src/zh/yymanhua/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 6c0fc7c304cd40ee4c3a752ba236116d8368db75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3895 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�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 diff --git a/src/zh/yymanhua/src/eu/kanade/tachiyomi/extension/zh/yymanhua/Filters.kt b/src/zh/yymanhua/src/eu/kanade/tachiyomi/extension/zh/yymanhua/Filters.kt deleted file mode 100644 index 21286cec8..000000000 --- a/src/zh/yymanhua/src/eu/kanade/tachiyomi/extension/zh/yymanhua/Filters.kt +++ /dev/null @@ -1,29 +0,0 @@ -package eu.kanade.tachiyomi.extension.zh.yymanhua - -import eu.kanade.tachiyomi.source.model.Filter -import eu.kanade.tachiyomi.source.model.FilterList - -fun buildFilterList() = FilterList( - Filter.Header("过滤条件(搜索时无效)"), - ThemeFilter(), - StatusFilter(), - SortFilter(), -) - -class ThemeFilter : Filter.Select("题材", arrayOf("全部", "热血", "恋爱", "校园", "冒险", "科幻", "生活", "悬疑", "魔法", "运动")) { - override fun toString(): String { - return arrayOf("0", "31", "26", "1", "2", "25", "11", "17", "15", "34")[state] - } -} - -class StatusFilter : Filter.Select("状态", arrayOf("全部", "连载中", "完结")) { - override fun toString(): String { - return arrayOf("0", "1", "2")[state] - } -} - -class SortFilter : Filter.Select("排序", arrayOf("人气", "更新时间")) { - override fun toString(): String { - return arrayOf("10", "2")[state] - } -} diff --git a/src/zh/yymanhua/src/eu/kanade/tachiyomi/extension/zh/yymanhua/YYmanhua.kt b/src/zh/yymanhua/src/eu/kanade/tachiyomi/extension/zh/yymanhua/YYmanhua.kt deleted file mode 100644 index fd90ef1ae..000000000 --- a/src/zh/yymanhua/src/eu/kanade/tachiyomi/extension/zh/yymanhua/YYmanhua.kt +++ /dev/null @@ -1,209 +0,0 @@ -package eu.kanade.tachiyomi.extension.zh.yymanhua - -import eu.kanade.tachiyomi.network.GET -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 okhttp3.HttpUrl.Companion.toHttpUrl -import okhttp3.Request -import okhttp3.Response -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import java.text.SimpleDateFormat -import java.util.Calendar -import java.util.Locale -import java.util.TimeZone - -class YYmanhua : ParsedHttpSource() { - - override val baseUrl = "https://www.yymanhua.com" - override val lang = "zh" - override val name = "YY漫画" - override val supportsLatest = true - - companion object { - val DESC_REGEX = Regex("\\[\\+展开]|\\[-折叠]") - val DATE_REGEX = Regex("(?:连载中|已完结).*?章,? (.*?) (?:最新|完结)") - val DATE_FORMAT_REGEX1 = Regex("\\d{1,2}/\\d{1,2}") - val DATE_FORMAT_REGEX2 = Regex("\\d{1,2}月\\d{1,2}号") - val DATE_FORMAT_REGEX3 = Regex("\\d{4}-\\d{1,2}-\\d{1,2}") - val CHAPTER_REGEX = Regex("第(\\d+(?:\\.\\d+)?)[话話]") - val NUM_REGEX = Regex("\\d+") - val IMG_REGEX = Regex("var pix=\"(.*?)\".*?var pvalue=\\[\"(.*?)\"") - val DECODE_REGEX1 = Regex("return p;\\}\\('(.*?)',(\\d+),(\\d+),'(.*?)'") - val DECODE_REGEX2 = Regex("\\b\\w+\\b") - } - - override fun headersBuilder() = super.headersBuilder() - .set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 Edg/136.0.0.0") - .add("Referer", "$baseUrl/") - .add("Cookie", "yymanhua_lang=2") - - // Popular Page - - override fun popularMangaRequest(page: Int) = GET("$baseUrl/manga-list-p$page", headers) - - override fun popularMangaSelector() = ".mh-item" - - override fun popularMangaFromElement(element: Element) = SManga.create().apply { - title = element.selectFirst(".mh-item-detali .title a")!!.text() - element.selectFirst("a:nth-child(1)")!!.let { - thumbnail_url = it.selectFirst("img")?.absUrl("src") - this.setUrlWithoutDomain(it.absUrl("href")) - } - } - - // override fun popularMangaNextPageSelector(): String? = null - override fun popularMangaNextPageSelector() = ".page-pagination li:has(.active) + li a" - - // Latest Page - - override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/manga-list-0-0-2-p$page/", headers) - - override fun latestUpdatesSelector() = popularMangaSelector() - - override fun latestUpdatesFromElement(element: Element) = popularMangaFromElement(element) - - override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector() - - // Search Page - - override fun getFilterList() = buildFilterList() - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - val url = baseUrl.toHttpUrl().newBuilder() - if (query.isNotBlank()) { - url.addPathSegment("search") - .addQueryParameter("title", query) - .addQueryParameter("page", page.toString()) - } else { - url.addPathSegment("manga-list-${filters[1]}-${filters[2]}-${filters[3]}-p$page") - } - return GET(url.build(), headers) - } - - override fun searchMangaSelector() = popularMangaSelector() - - override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element) - - override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() - - // Manga Detail Page - - override fun mangaDetailsParse(document: Document) = SManga.create().apply { - description = document.selectFirst(".detail-info-content")?.text() - ?.replace(DESC_REGEX, "")?.trim() - val els = document.select(".detail-info-tip > span") - els[0].select("a").let { - author = it[0].text() - artist = it.getOrNull(1)?.text() - } - status = when (els[1].selectFirst("span > span")?.text()) { - "连载中", "連載中" -> SManga.ONGOING - "已完结", "已完結" -> SManga.COMPLETED - else -> SManga.UNKNOWN - } - genre = els[2].select(".item").joinToString { it.text() } - initialized = true - } - - // Manga Detail Page / Chapters Page (Separate) - - // override fun chapterListRequest(manga: SManga) = GET(baseUrl + manga.url, headers) - - override fun chapterListSelector() = throw UnsupportedOperationException() - - override fun chapterListParse(response: Response): List { - val document = response.asJsoup() - val info = document.selectFirst(".detail-list-form-title")!!.text() - val date = parseDate(DATE_REGEX.find(info)?.groups?.get(1)?.value) - return document.select("#chapterlistload a").map { - SChapter.create().apply { - this.setUrlWithoutDomain(it.absUrl("href")) - name = it.text() - chapter_number = CHAPTER_REGEX.find(name)?.groups?.get(1)?.value?.toFloat() ?: 0F - date_upload = date - } - } - } - - override fun chapterFromElement(element: Element) = SChapter.create().apply { - this.setUrlWithoutDomain(element.absUrl("href")) - name = element.text() - chapter_number = CHAPTER_REGEX.find(name)?.groups?.get(1)?.value?.toFloat() ?: -1F - } - - // Manga View Page - - override fun pageListParse(document: Document): List { - val cid = NUM_REGEX.find(document.location())?.groups?.get(0)?.value - return List(document.select(".reader-bottom-page-list a").size.takeIf { it > 0 } ?: 1) { i -> - Page(i, "${document.location()}chapterimage.ashx?cid=$cid&page=${i + 1}") - } - } - - // Image - - // override fun imageRequest(page: Page) = GET(page.url, headers) - - override fun imageUrlParse(response: Response): String { - val (_, pix, pvalue) = IMG_REGEX.find(decode(response.body.string()))?.groupValues!! - return pix + pvalue - } - - override fun imageUrlParse(document: Document) = throw UnsupportedOperationException() - - // date: 51分钟前 | 今天 00:00 | 昨天 19:06 | 前天 23:22 | 06/16 | 06月16号 | 2024-12-02 - private fun parseDate(date: String?): Long { - val calendar = Calendar.getInstance() - val today = calendar.timeInMillis - if (date == null) return today - val str = date.trim() - return when { - str.contains("前天") -> { - calendar.add(Calendar.DAY_OF_YEAR, -2) - calendar.timeInMillis - } - str.contains("前") || str.contains("今天") -> today - str.contains("昨天") -> { - calendar.add(Calendar.DAY_OF_YEAR, -1) - calendar.timeInMillis - } - str.matches(DATE_FORMAT_REGEX1) -> formatter(str, "MM/dd") - str.matches(DATE_FORMAT_REGEX2) -> formatter(str, "MM月dd号") - str.matches(DATE_FORMAT_REGEX3) -> formatter(str, "yyyy-MM-dd") - else -> today - } - } - - private fun formatter(dateStr: String, pattern: String): Long { - val sdf = SimpleDateFormat(pattern, Locale.getDefault()) - sdf.timeZone = TimeZone.getDefault() - val cal = Calendar.getInstance() - cal.time = sdf.parse(dateStr)!! - if (!pattern.contains("yyyy")) { - val currentYear = Calendar.getInstance().get(Calendar.YEAR) - cal.set(Calendar.YEAR, currentYear) - } - return cal.timeInMillis - } - - private fun decode(ciphertext: String): String { - val groups = DECODE_REGEX1.find(ciphertext)?.groupValues!! - val d = mutableMapOf() - val parts = groups[4].split("|") - val e = { c: Int -> - val mod = c % groups[2].toInt() - if (mod > 35) (mod + 29).toChar().toString() else mod.toString(36) - } - var counter = groups[3].toInt() - while (counter-- > 0) { - val i = e(counter) - d[i] = parts.getOrNull(counter)?.takeIf(String::isNotEmpty) ?: i - } - return DECODE_REGEX2.replace(groups[1]) { result -> d[result.value] ?: result.value } - } -}