From 9340d2df64407c1a6693ccbe0f95bbfbca2c29d5 Mon Sep 17 00:00:00 2001 From: Broccoli <4424781+lmk1988@users.noreply.github.com> Date: Wed, 4 May 2022 00:18:25 +0800 Subject: [PATCH] Add baimangu source (#11702) * Add baimangu * Update codes from suggestion --- src/zh/baimangu/AndroidManifest.xml | 2 + src/zh/baimangu/build.gradle | 15 + .../baimangu/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3112 bytes .../baimangu/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1929 bytes .../baimangu/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4412 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6860 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10697 bytes src/zh/baimangu/res/web_hi_res_512.png | Bin 0 -> 42710 bytes .../extension/zh/baimangu/Baimangu.kt | 331 ++++++++++++++++++ 9 files changed, 348 insertions(+) create mode 100644 src/zh/baimangu/AndroidManifest.xml create mode 100644 src/zh/baimangu/build.gradle create mode 100644 src/zh/baimangu/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/zh/baimangu/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/zh/baimangu/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/zh/baimangu/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/zh/baimangu/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/zh/baimangu/res/web_hi_res_512.png create mode 100644 src/zh/baimangu/src/eu/kanade/tachiyomi/extension/zh/baimangu/Baimangu.kt diff --git a/src/zh/baimangu/AndroidManifest.xml b/src/zh/baimangu/AndroidManifest.xml new file mode 100644 index 000000000..30deb7f79 --- /dev/null +++ b/src/zh/baimangu/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/src/zh/baimangu/build.gradle b/src/zh/baimangu/build.gradle new file mode 100644 index 000000000..1dfe24a58 --- /dev/null +++ b/src/zh/baimangu/build.gradle @@ -0,0 +1,15 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +ext { + extName = 'Baimangu (Darpou)' + pkgNameSuffix = 'zh.baimangu' + extClass = '.Baimangu' + extVersionCode = 1 +} + +dependencies { + implementation project(path: ':lib-ratelimit') +} + +apply from: "$rootDir/common.gradle" diff --git a/src/zh/baimangu/res/mipmap-hdpi/ic_launcher.png b/src/zh/baimangu/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d687405891e316f8f5b0fa2b950f05a81dc49a6f GIT binary patch literal 3112 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 literal 0 HcmV?d00001 diff --git a/src/zh/baimangu/src/eu/kanade/tachiyomi/extension/zh/baimangu/Baimangu.kt b/src/zh/baimangu/src/eu/kanade/tachiyomi/extension/zh/baimangu/Baimangu.kt new file mode 100644 index 000000000..331b930d7 --- /dev/null +++ b/src/zh/baimangu/src/eu/kanade/tachiyomi/extension/zh/baimangu/Baimangu.kt @@ -0,0 +1,331 @@ +package eu.kanade.tachiyomi.extension.zh.baimangu + +import android.app.Application +import android.content.SharedPreferences +import android.widget.Toast +import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.source.ConfigurableSource +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.Headers +import okhttp3.HttpUrl.Companion.toHttpUrlOrNull +import okhttp3.OkHttpClient +import okhttp3.Request +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get +import java.util.concurrent.TimeUnit +import java.util.regex.Pattern + +class Baimangu : ConfigurableSource, ParsedHttpSource() { + override val lang = "zh" + override val supportsLatest = true + override val name = "百漫谷" + + // Preference setting + private val preferences: SharedPreferences by lazy { + Injekt.get().getSharedPreferences("source_$id", 0x0000) + } + + override val baseUrl = preferences.getString(MAINSITE_URL_PREF, MAINSITE_URL_PREF_DEFAULT)!! + + // Client configs + private val mainSiteRateLimitInterceptor = SpecificHostRateLimitInterceptor( + baseUrl.toHttpUrlOrNull()!!, + preferences.getString(MAINSITE_RATEPERMITS_PREF, MAINSITE_RATEPERMITS_PREF_DEFAULT)!!.toInt(), + preferences.getString(MAINSITE_RATEPERIOD_PREF, MAINSITE_RATEPERIOD_PREF_DEFAULT)!!.toLong(), + TimeUnit.MILLISECONDS, + ) + + override val client: OkHttpClient = network.cloudflareClient.newBuilder() + .addNetworkInterceptor(mainSiteRateLimitInterceptor) + .build() + + override fun headersBuilder(): Headers.Builder = Headers.Builder() + .add("Referer", baseUrl) + + // The following images don't seem to work, hence we do not bother to retrieve them + private val invalidCoverImageDomains = arrayOf("serial-online", "res.cocomanga.com") + + // Common + private var commonSelector = "li.fed-list-item" + private var commonNextPageSelector = "a.fed-btns-info.fed-rims-info:nth-last-child(4)" + private fun commonMangaFromElement(element: Element): SManga { + val picElement = element.select("a.fed-list-pics").first() + val picUrl = picElement.attr("data-original") + val manga = SManga.create().apply { + title = element.select("a.fed-list-title").first().text() + + if (!invalidCoverImageDomains.any { picUrl.contains(it) }) { + thumbnail_url = picUrl + } + } + + manga.setUrlWithoutDomain(picElement.attr("href")) + + return manga + } + + // Popular Manga + override fun popularMangaRequest(page: Int) = GET("$baseUrl/vodshow/4--hits------$page---.html", headers) + override fun popularMangaNextPageSelector() = commonNextPageSelector + override fun popularMangaSelector() = commonSelector + override fun popularMangaFromElement(element: Element) = commonMangaFromElement(element) + + // Latest Updates + override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/fenlei/2-$page.html", headers) + override fun latestUpdatesNextPageSelector() = commonNextPageSelector + override fun latestUpdatesSelector() = commonSelector + override fun latestUpdatesFromElement(element: Element) = commonMangaFromElement(element) + + // Filter + // 最新漫画 - 1 + // 漫画更新 - 2 + // 更多漫画 - 3 + // 漫画大全 - 4 + private class ChannelFilter : Filter.Select( + "Channel", + arrayOf( + "最新漫画", + "漫画更新", + "更多漫画", + "漫画大全", + ), + 3 // means 漫画大全 (4) + ) + + private class SortFilter : Filter.Select("排序", arrayOf("按时间", "按人气", "按评分"), 0) + + override fun getFilterList() = FilterList( + ChannelFilter(), + SortFilter() + ) + + // Search + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + return if (query.isNotBlank()) { + GET("$baseUrl/vodsearch/$query----------$page---", headers) + } else { + var channelValue = "4" // 漫画大全 + var sortValue = "time" // 按时间 + + filters.forEach { filter -> + when (filter) { + is ChannelFilter -> { + channelValue = arrayOf("1", "2", "3", "4")[filter.state] + } + is SortFilter -> { + sortValue = arrayOf("time", "hits", "score")[filter.state] + } + else -> {} + } + } + + // https://www.darpou.com/vodshow/2-----------.html + // https://www.darpou.com/vodshow/2--hits------3---.html + + val url = "$baseUrl/vodshow/$channelValue--$sortValue------$page---" + + GET(url, headers) + } + } + + override fun searchMangaNextPageSelector() = commonNextPageSelector + override fun searchMangaSelector() = "dl.fed-deta-info, $commonSelector" + override fun searchMangaFromElement(element: Element): SManga { + if (element.tagName() == "li") { + return commonMangaFromElement(element) + } + + val picElement = element.select("a.fed-list-pics").first() + return SManga.create().apply { + title = element.select("dd.fed-deta-content a:first-child").first().text() + thumbnail_url = picElement.attr("data-original") + setUrlWithoutDomain(picElement.attr("href")) + } + } + + override fun mangaDetailsParse(document: Document): SManga { + val picElement = document.select("a.fed-list-pics").first() + val picUrl = picElement.attr("data-original") + val detailElements = document.select("dd.fed-deta-content ul.fed-part-rows") + return SManga.create().apply { + title = document.select("h1.fed-part-eone").first().text().trim() + + if (!invalidCoverImageDomains.any { picUrl.contains(it) }) { + thumbnail_url = picUrl + } + + // They don't seem to show the status, unless we query from the category, but that may be inaccurate + + author = detailElements.select("li:nth-child(1) a").firstOrNull()?.text()?.trim() + + genre = detailElements.select("li.fed-show-md-block:nth-last-child(2) a:not(:empty)")?.joinToString { it.text().trim() } + + // It has both "简介:" and "简介" in the description + description = detailElements.select("li.fed-show-md-block:nth-last-child(1)") + .firstOrNull()?.text()?.replace("简介:", "", ignoreCase = true) + ?.replace("简介", "", ignoreCase = true)?.trim() + } + } + + override fun chapterListSelector(): String = "div.fed-play-item ul.fed-part-rows:last-child a" + + override fun chapterFromElement(element: Element): SChapter { + return SChapter.create().apply { + name = element.text().trim() + setUrlWithoutDomain(element.attr("href")) + } + } + + override fun imageUrlParse(document: Document) = "" + + override fun pageListParse(document: Document): List { + val oScriptUrl = extractOScriptUrl(document) + + val oScriptResp = client.newCall(GET(oScriptUrl)).execute() + + if (!oScriptResp.isSuccessful) { + throw Error("Failed to request OScript URL") + } + + val content = oScriptResp.body!!.string() + return extractPagesFromOScript(content) + } + + private fun extractOScriptUrl(document: Document): String { + val theScriptData = document.selectFirst("script:containsData(oScript.src)")?.data() + ?: throw Exception("Unable to find OScript") + + val pattern = Pattern.compile("src(\\s*)=(\\s*)\"(.+)\";") + val matcher = pattern.matcher(theScriptData) + + if (matcher.find()) { + return matcher.group(3) ?: throw Exception("Unable to extract OScript") + } + + throw Error("Unable to match for OScript") + } + + private fun extractPagesFromOScript(content: String): List { + if (content.isEmpty()) { + throw Error("Empty OScript") + } + + if (!content.contains("show(") || !content.contains("]+)\"") + val matches = regex.findAll(content, 0) + return matches.mapIndexed { i, match -> + Page(i, "", match.groupValues[1]) + }.toList() + } + + override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { + val mainSiteUrlPreference = androidx.preference.EditTextPreference(screen.context).apply { + key = MAINSITE_URL_PREF + title = MAINSITE_URL_PREF_TITLE + summary = MAINSITE_URL_PREF_SUMMARY + + setDefaultValue(MAINSITE_URL_PREF_DEFAULT) + setOnPreferenceChangeListener { _, newValue -> + try { + val setting = preferences.edit().putString(MAINSITE_URL_PREF, newValue as String).commit() + Toast.makeText(screen.context, TOAST_RESTART, Toast.LENGTH_LONG).show() + setting + } catch (e: Exception) { + e.printStackTrace() + false + } + } + } + + val mainSiteRatePermitsPreference = androidx.preference.ListPreference(screen.context).apply { + key = MAINSITE_RATEPERMITS_PREF + title = MAINSITE_RATEPERMITS_PREF_TITLE + entries = MAINSITE_RATEPERMITS_PREF_ENTRIES_ARRAY + entryValues = MAINSITE_RATEPERMITS_PREF_ENTRIES_ARRAY + summary = MAINSITE_RATEPERMITS_PREF_SUMMARY + + setDefaultValue(MAINSITE_RATEPERMITS_PREF_DEFAULT) + setOnPreferenceChangeListener { _, newValue -> + try { + val setting = preferences.edit().putString(MAINSITE_RATEPERMITS_PREF, newValue as String).commit() + Toast.makeText(screen.context, TOAST_RESTART, Toast.LENGTH_LONG).show() + setting + } catch (e: Exception) { + e.printStackTrace() + false + } + } + } + + val mainSiteRatePeriodPreference = androidx.preference.ListPreference(screen.context).apply { + key = MAINSITE_RATEPERIOD_PREF + title = MAINSITE_RATEPERIOD_PREF_TITLE + entries = MAINSITE_RATEPERIOD_PREF_ENTRIES_ARRAY + entryValues = MAINSITE_RATEPERIOD_PREF_ENTRIES_ARRAY + summary = MAINSITE_RATEPERIOD_PREF_SUMMARY + + setDefaultValue(MAINSITE_RATEPERIOD_PREF_DEFAULT) + setOnPreferenceChangeListener { _, newValue -> + try { + val setting = preferences.edit().putString(MAINSITE_RATEPERIOD_PREF, newValue as String).commit() + Toast.makeText(screen.context, TOAST_RESTART, Toast.LENGTH_LONG).show() + setting + } catch (e: Exception) { + e.printStackTrace() + false + } + } + } + + screen.addPreference(mainSiteUrlPreference) + screen.addPreference(mainSiteRatePermitsPreference) + screen.addPreference(mainSiteRatePeriodPreference) + } + + companion object { + private const val TOAST_RESTART = "請重新启动tachiyomi" + + // --------------------------------------------------------------------------------------- + + private const val MAINSITE_URL_PREF = "mainSiteUrlPreference" + private const val MAINSITE_URL_PREF_DEFAULT = "https://www.darpou.com/" + + private const val MAINSITE_URL_PREF_TITLE = "主站URL" + private const val MAINSITE_URL_PREF_SUMMARY = "需要重启软件以生效。\n默认值:$MAINSITE_URL_PREF_DEFAULT" + + // --------------------------------------------------------------------------------------- + + private const val MAINSITE_RATEPERMITS_PREF = "mainSiteRatePermitsPreference" + private const val MAINSITE_RATEPERMITS_PREF_DEFAULT = "6" + + /** main site's connection limit */ + private const val MAINSITE_RATEPERMITS_PREF_TITLE = "主站连接限制" + + /** This value affects connection request amount to main site. Lowering this value may reduce the chance to get HTTP 403 error, but loading speed will be slower too. Tachiyomi restart required. Current value: %s" */ + private const val MAINSITE_RATEPERMITS_PREF_SUMMARY = "此值影响主站的连接请求量。需要重启软件以生效。\n默认值:$MAINSITE_RATEPERMITS_PREF_DEFAULT \n当前值:%s" + private val MAINSITE_RATEPERMITS_PREF_ENTRIES_ARRAY = (1..10).map { i -> i.toString() }.toTypedArray() + + // --------------------------------------------------------------------------------------- + + private const val MAINSITE_RATEPERIOD_PREF = "mainSiteRatePeriodMillisPreference" + private const val MAINSITE_RATEPERIOD_PREF_DEFAULT = "1000" + + /** main site's connection limit period */ + private const val MAINSITE_RATEPERIOD_PREF_TITLE = "主站连接限制期" + + /** This value affects the delay when hitting the connection limit to main site. Increasing this value may reduce the chance to get HTTP 403 error, but loading speed will be slower too. Tachiyomi restart required. Current value: %s" */ + private const val MAINSITE_RATEPERIOD_PREF_SUMMARY = "此值影响主站点连接限制时的延迟(毫秒)。需要重启软件以生效。\n默认值:$MAINSITE_RATEPERIOD_PREF_DEFAULT\n当前值:%s" + private val MAINSITE_RATEPERIOD_PREF_ENTRIES_ARRAY = (500..6000 step 500).map { i -> i.toString() }.toTypedArray() + } +}