From 04ca6e2fb7d7252f2850fe9df162b3339a664317 Mon Sep 17 00:00:00 2001
From: beerpsi <92439990+beerpiss@users.noreply.github.com>
Date: Sun, 14 Jan 2024 17:18:04 +0700
Subject: [PATCH] Add ColaManga/ColaManhua (#243)

* Add ColaManhua

* Remove unneeded preference change listener

Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>

---------

Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
---
 src/zh/onemanhua/AndroidManifest.xml          |   2 +
 src/zh/onemanhua/build.gradle                 |  16 +
 .../onemanhua/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3010 bytes
 .../onemanhua/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1609 bytes
 .../res/mipmap-xhdpi/ic_launcher.png          | Bin 0 -> 4274 bytes
 .../res/mipmap-xxhdpi/ic_launcher.png         | Bin 0 -> 7962 bytes
 .../res/mipmap-xxxhdpi/ic_launcher.png        | Bin 0 -> 11454 bytes
 .../extension/zh/onemanhua/Onemanhua.kt       | 394 ++++++++++++++++++
 8 files changed, 412 insertions(+)
 create mode 100644 src/zh/onemanhua/AndroidManifest.xml
 create mode 100644 src/zh/onemanhua/build.gradle
 create mode 100644 src/zh/onemanhua/res/mipmap-hdpi/ic_launcher.png
 create mode 100644 src/zh/onemanhua/res/mipmap-mdpi/ic_launcher.png
 create mode 100644 src/zh/onemanhua/res/mipmap-xhdpi/ic_launcher.png
 create mode 100644 src/zh/onemanhua/res/mipmap-xxhdpi/ic_launcher.png
 create mode 100644 src/zh/onemanhua/res/mipmap-xxxhdpi/ic_launcher.png
 create mode 100644 src/zh/onemanhua/src/eu/kanade/tachiyomi/extension/zh/onemanhua/Onemanhua.kt

diff --git a/src/zh/onemanhua/AndroidManifest.xml b/src/zh/onemanhua/AndroidManifest.xml
new file mode 100644
index 000000000..85f9d2409
--- /dev/null
+++ b/src/zh/onemanhua/AndroidManifest.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest package="eu.kanade.tachiyomi.extension" />
diff --git a/src/zh/onemanhua/build.gradle b/src/zh/onemanhua/build.gradle
new file mode 100644
index 000000000..4cfe9cfd5
--- /dev/null
+++ b/src/zh/onemanhua/build.gradle
@@ -0,0 +1,16 @@
+apply plugin: 'com.android.application'
+apply plugin: 'kotlin-android'
+apply plugin: 'kotlinx-serialization'
+
+ext {
+    extName = 'ColaManhua (OhManhua)'
+    pkgNameSuffix = 'zh.onemanhua'
+    extClass = '.Onemanhua'
+    extVersionCode = 12
+}
+
+dependencies {
+    implementation(project(":lib-synchrony"))
+}
+
+apply from: "$rootDir/common.gradle"
diff --git a/src/zh/onemanhua/res/mipmap-hdpi/ic_launcher.png b/src/zh/onemanhua/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..39a379fdf0a8049c71edea13c44772becadce4ef
GIT binary patch
literal 3010
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
Ef=fK7p#T5?

literal 0
HcmV?d00001

diff --git a/src/zh/onemanhua/res/mipmap-mdpi/ic_launcher.png b/src/zh/onemanhua/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..37e5873ed4cc5bbb56211ef992ad81716ecbcca5
GIT binary patch
literal 1609
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
Hu0mjf+7|fT

literal 0
HcmV?d00001

diff --git a/src/zh/onemanhua/res/mipmap-xhdpi/ic_launcher.png b/src/zh/onemanhua/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..558c74c88b29782b217b55efe86972993e447e75
GIT binary patch
literal 4274
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
U*(k!!&j0`b07*qoM6N<$g7*0uIRF3v

literal 0
HcmV?d00001

diff --git a/src/zh/onemanhua/res/mipmap-xxhdpi/ic_launcher.png b/src/zh/onemanhua/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd1d7c0b61154d5400d45b7fb42553c23279860b
GIT binary patch
literal 7962
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

literal 0
HcmV?d00001

diff --git a/src/zh/onemanhua/res/mipmap-xxxhdpi/ic_launcher.png b/src/zh/onemanhua/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..91c62beda484711c3c00a3aaa33883b5378bc608
GIT binary patch
literal 11454
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
PkPN6QYAH0lu#Ws66bP&w

literal 0
HcmV?d00001

diff --git a/src/zh/onemanhua/src/eu/kanade/tachiyomi/extension/zh/onemanhua/Onemanhua.kt b/src/zh/onemanhua/src/eu/kanade/tachiyomi/extension/zh/onemanhua/Onemanhua.kt
new file mode 100644
index 000000000..be13bda3c
--- /dev/null
+++ b/src/zh/onemanhua/src/eu/kanade/tachiyomi/extension/zh/onemanhua/Onemanhua.kt
@@ -0,0 +1,394 @@
+package eu.kanade.tachiyomi.extension.zh.onemanhua
+
+import android.annotation.SuppressLint
+import android.app.Application
+import android.content.SharedPreferences
+import android.os.Handler
+import android.os.Looper
+import android.util.Log
+import android.view.View
+import android.webkit.ConsoleMessage
+import android.webkit.CookieManager
+import android.webkit.JavascriptInterface
+import android.webkit.WebChromeClient
+import android.webkit.WebView
+import androidx.preference.PreferenceScreen
+import eu.kanade.tachiyomi.lib.synchrony.Deobfuscator
+import eu.kanade.tachiyomi.network.GET
+import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
+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 kotlinx.serialization.json.Json
+import kotlinx.serialization.json.jsonArray
+import kotlinx.serialization.json.jsonObject
+import kotlinx.serialization.json.jsonPrimitive
+import okhttp3.Headers
+import okhttp3.HttpUrl.Companion.toHttpUrl
+import okhttp3.MediaType.Companion.toMediaType
+import okhttp3.OkHttpClient
+import okhttp3.Request
+import okhttp3.ResponseBody.Companion.toResponseBody
+import org.jsoup.nodes.Document
+import org.jsoup.nodes.Element
+import uy.kohesive.injekt.Injekt
+import uy.kohesive.injekt.api.get
+import uy.kohesive.injekt.injectLazy
+import java.util.concurrent.CountDownLatch
+import java.util.concurrent.TimeUnit
+import javax.crypto.Cipher
+import javax.crypto.spec.IvParameterSpec
+import javax.crypto.spec.SecretKeySpec
+
+// Originally, the site was called One漫画. The name has been changing every once in awhile
+class Onemanhua : ConfigurableSource, ParsedHttpSource() {
+    override val id = 8252565807829914103 // name used to be "One漫画"
+    override val lang = "zh"
+    override val supportsLatest = true
+    override val name = "COLA漫画 (OH漫画)"
+    override val baseUrl = "https://www.colamanga.com"
+
+    // Preference setting
+    private val preferences: SharedPreferences by lazy {
+        Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
+    }
+
+    private val cookieManager by lazy { CookieManager.getInstance() }
+
+    override val client: OkHttpClient = network.cloudflareClient.newBuilder()
+        .rateLimitHost(
+            baseUrl.toHttpUrl(),
+            preferences.getString(MAINSITE_RATEPERMITS_PREF, MAINSITE_RATEPERMITS_PREF_DEFAULT)!!.toInt(),
+            preferences.getString(MAINSITE_RATEPERIOD_PREF, MAINSITE_RATEPERIOD_PREF_DEFAULT)!!.toLong(),
+            TimeUnit.MILLISECONDS,
+        )
+        .addInterceptor { chain ->
+            val response = chain.proceed(chain.request())
+
+            if (response.request.url.fragment?.contains("key") != true) {
+                return@addInterceptor response
+            }
+
+            val keyStr = response.request.url.fragment!!.substringAfter("key=")
+            val key = keyStr.toByteArray()
+
+            val cipher = Cipher.getInstance("AES/CBC/PKCS7Padding")
+            cipher.init(
+                Cipher.DECRYPT_MODE,
+                SecretKeySpec(key, "AES"),
+                IvParameterSpec("0000000000000000".toByteArray()),
+            )
+
+            val output = cipher.doFinal(response.body.bytes())
+            response.newBuilder()
+                .body(output.toResponseBody("image/jpeg".toMediaType()))
+                .build()
+        }
+        .build()
+
+    override fun headersBuilder(): Headers.Builder = Headers.Builder()
+        .add("Origin", baseUrl)
+        .add("Referer", "$baseUrl/")
+
+    // Common
+    private var commonSelector = "li.fed-list-item"
+    private var commonNextPageSelector = "a:contains(下页):not(.fed-btns-disad)"
+    private fun commonMangaFromElement(element: Element): SManga {
+        val picElement = element.selectFirst("a.fed-list-pics")!!
+        val manga = SManga.create().apply {
+            title = element.selectFirst("a.fed-list-title")!!.text()
+            thumbnail_url = picElement.attr("data-original")
+        }
+
+        manga.setUrlWithoutDomain(picElement.attr("href"))
+
+        return manga
+    }
+
+    // Popular Manga
+    override fun popularMangaRequest(page: Int) = GET("$baseUrl/show?orderBy=dailyCount&page=$page", 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/show?orderBy=update&page=$page", headers)
+    override fun latestUpdatesNextPageSelector() = commonNextPageSelector
+    override fun latestUpdatesSelector() = commonSelector
+    override fun latestUpdatesFromElement(element: Element) = commonMangaFromElement(element)
+
+    // Filter
+    private class StatusFilter : Filter.TriState("已完结")
+    private class SortFilter : Filter.Select<String>("排序", arrayOf("更新日", "收录日", "日点击", "月点击"), 2)
+
+    override fun getFilterList() = FilterList(
+        SortFilter(),
+        StatusFilter(),
+    )
+
+    // Search
+    override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
+        return if (query.isNotBlank()) {
+            GET("$baseUrl/search?searchString=$query&page=$page", headers)
+        } else {
+            val url = "$baseUrl/show".toHttpUrl().newBuilder()
+            url.addQueryParameter("page", page.toString())
+
+            filters.forEach { filter ->
+                when (filter) {
+                    is StatusFilter -> {
+                        if (!filter.isIgnored()) {
+                            url.addQueryParameter("status", arrayOf("0", "2", "1")[filter.state])
+                        }
+                    }
+                    is SortFilter -> {
+                        url.addQueryParameter("orderBy", arrayOf("update", "create", "dailyCount", "weeklyCount", "monthlyCount")[filter.state])
+                    }
+                    else -> {}
+                }
+            }
+            GET(url.toString(), 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.selectFirst("a.fed-list-pics")!!
+        val manga = SManga.create().apply {
+            title = element.selectFirst("h1.fed-part-eone a")!!.text()
+            thumbnail_url = picElement.attr("data-original")
+        }
+
+        manga.setUrlWithoutDomain(picElement.attr("href"))
+
+        return manga
+    }
+
+    override fun mangaDetailsParse(document: Document): SManga {
+        val picElement = document.selectFirst("a.fed-list-pics")!!
+        val detailElements = document.select("ul.fed-part-rows li.fed-col-xs12")
+        return SManga.create().apply {
+            title = document.selectFirst("h1.fed-part-eone")!!.text().trim()
+            thumbnail_url = picElement.attr("data-original")
+
+            status = when (
+                detailElements.firstOrNull {
+                    it.children().firstOrNull { it2 ->
+                        it2.hasClass("fed-text-muted") && it2.ownText() == "状态"
+                    } != null
+                }?.select("a")?.first()?.text()
+            ) {
+                "连载中" -> SManga.ONGOING
+                "已完结" -> SManga.COMPLETED
+                else -> SManga.UNKNOWN
+            }
+
+            author = detailElements.firstOrNull {
+                it.children().firstOrNull { it2 ->
+                    it2.hasClass("fed-text-muted") && it2.ownText() == "作者"
+                } != null
+            }?.select("a")?.first()?.text()
+
+            genre = detailElements.firstOrNull {
+                it.children().firstOrNull { it2 ->
+                    it2.hasClass("fed-text-muted") && it2.ownText() == "类别"
+                } != null
+            }?.select("a")?.joinToString { it.text() }
+
+            description = document.select("ul.fed-part-rows li.fed-col-xs12.fed-show-md-block .fed-part-esan")
+                .firstOrNull()?.text()?.trim()
+        }
+    }
+
+    override fun chapterListSelector(): String = "div:not(.fed-hidden) > div.all_data_list > ul.fed-part-rows a"
+
+    override fun chapterFromElement(element: Element): SChapter {
+        val chapter = SChapter.create().apply {
+            name = element.attr("title")
+        }
+        chapter.setUrlWithoutDomain(element.attr("href"))
+        return chapter
+    }
+
+    private fun randomString(length: Int = 10): String {
+        val charPool = ('a'..'z') + ('A'..'Z')
+        return List(length) { charPool.random() }.joinToString("")
+    }
+
+    internal class JsObject(val latch: CountDownLatch, val cookieManager: CookieManager) {
+
+        private val json: Json by injectLazy()
+
+        var images: List<String> = listOf()
+            private set
+
+        var key: String = ""
+            private set
+
+        var keyType: String = ""
+            private set
+
+        @JavascriptInterface
+        fun passJsonData(rawData: String) {
+            val data = json.parseToJsonElement(rawData).jsonObject
+            images = data["images"]!!.jsonArray.map { it.jsonPrimitive.content }
+            key = data["key"]!!.jsonPrimitive.content
+
+            latch.countDown()
+        }
+
+        @JavascriptInterface
+        fun passKeyType(key: String) {
+            keyType = key
+        }
+    }
+
+    private val keyMappingRegex = Regex("""[0-9A-Za-z_]+\s*==\s*['"](?<keyType>\d+)['"]\s*&&\s*\([0-9A-Za-z_]+\s*=\s*['"](?<key>[a-zA-Z0-9]+)['"]\)""")
+
+    private val keyMapping by lazy {
+        val obfuscatedReadJs = client.newCall(GET("$baseUrl/js/manga.read.js")).execute().body.string()
+        val readJs = Deobfuscator.deobfuscateScript(obfuscatedReadJs)
+            ?: throw Exception("Could not deobufuscate manga.read.js")
+
+        keyMappingRegex.findAll(readJs).associate { it.groups["keyType"]!!.value to it.groups["key"]!!.value }
+    }
+
+    @SuppressLint("SetJavaScriptEnabled")
+    override fun pageListParse(document: Document): List<Page> {
+        val interfaceName = randomString()
+        document.body().prepend(
+            """
+            <script>
+                (function () {
+                    __cr.init();
+                    __cad.setCookieValue();
+
+                    const pageCountKey = __cad.getCookieValue()[1] + mh_info.pageid.toString();
+                    const pageCount = parseInt($.cookie(pageCountKey) || "0");
+
+                    const images = [...Array(pageCount).keys()].map((i) => __cr.getPicUrl(i + 1));
+
+                    __cr.isfromMangaRead = 1
+                    const key = CryptoJS.enc.Utf8.stringify(__js.getDataParse())
+
+                    if (!window.image_info.keyType || window.image_info.keyType != "0") {
+                        window.$interfaceName.passKeyType(window.image_info.keyType)
+                    }
+                    window.$interfaceName.passJsonData(JSON.stringify({ images, key }))
+                })();
+            </script>
+            """.trimIndent(),
+        )
+
+        val handler = Handler(Looper.getMainLooper())
+        val latch = CountDownLatch(1)
+        val jsInterface = JsObject(latch, cookieManager)
+        var webView: WebView? = null
+
+        handler.post {
+            val webview = WebView(Injekt.get<Application>())
+            webView = webview
+            webview.settings.javaScriptEnabled = true
+            webview.settings.domStorageEnabled = true
+            webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null)
+            webview.settings.useWideViewPort = false
+            webview.settings.loadWithOverviewMode = false
+            webview.settings.userAgentString = webview.settings.userAgentString.replace("Mobile", "eliboM").replace("Android", "diordnA")
+            webview.addJavascriptInterface(jsInterface, interfaceName)
+
+            webview.webChromeClient = object : WebChromeClient() {
+                override fun onConsoleMessage(consoleMessage: ConsoleMessage?): Boolean {
+                    if (consoleMessage == null) { return false }
+                    val logContent = "wv: ${consoleMessage.message()} (${consoleMessage.sourceId()}, line ${consoleMessage.lineNumber()})"
+                    when (consoleMessage.messageLevel()) {
+                        ConsoleMessage.MessageLevel.DEBUG -> Log.d("onemanhua", logContent)
+                        ConsoleMessage.MessageLevel.ERROR -> Log.e("onemanhua", logContent)
+                        ConsoleMessage.MessageLevel.LOG -> Log.i("onemanhua", logContent)
+                        ConsoleMessage.MessageLevel.TIP -> Log.i("onemanhua", logContent)
+                        ConsoleMessage.MessageLevel.WARNING -> Log.w("onemanhua", logContent)
+                        else -> Log.d("onemanhua", logContent)
+                    }
+
+                    return true
+                }
+            }
+            webview.loadDataWithBaseURL(document.location(), document.toString(), "text/html", "UTF-8", null)
+        }
+
+        latch.await()
+        handler.post { webView?.destroy() }
+
+        val key = if (jsInterface.keyType.isNotEmpty()) {
+            keyMapping[jsInterface.keyType]
+                ?: throw Exception("Could not find key mapping for keyType ${jsInterface.keyType}")
+        } else {
+            jsInterface.key
+        }
+
+        return jsInterface.images.mapIndexed { i, url ->
+            var imageUrl = url
+            if (imageUrl.startsWith("//")) {
+                imageUrl = "https:$imageUrl"
+            }
+            Page(i, imageUrl = imageUrl + "#key=$key")
+        }
+    }
+
+    override fun imageUrlParse(document: Document) = ""
+
+    override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) {
+        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)
+        }
+
+        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)
+        }
+
+        screen.addPreference(mainSiteRatePermitsPreference)
+        screen.addPreference(mainSiteRatePeriodPreference)
+    }
+
+    companion object {
+        private const val MAINSITE_RATEPERMITS_PREF = "mainSiteRatePermitsPreference"
+        private const val MAINSITE_RATEPERMITS_PREF_DEFAULT = "1"
+
+        /** 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 = "此值影响主站的连接请求量。降低此值可以减少获得HTTP 403错误的几率,但加载速度也会变慢。需要重启软件以生效。\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 = "2500"
+
+        /** 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 = "此值影响主站点连接限制时的延迟(毫秒)。增加这个值可能会减少出现HTTP 403错误的机会,但加载速度也会变慢。需要重启软件以生效。\n默认值:$MAINSITE_RATEPERIOD_PREF_DEFAULT\n当前值:%s"
+        private val MAINSITE_RATEPERIOD_PREF_ENTRIES_ARRAY = (2000..6000 step 500).map { i -> i.toString() }.toTypedArray()
+    }
+}