From f09c11a01cc48a11d0b81eb4276f0bc80e6e7d66 Mon Sep 17 00:00:00 2001
From: beerpsi <92439990+beerpiss@users.noreply.github.com>
Date: Fri, 9 Feb 2024 17:53:19 +0700
Subject: [PATCH] Add MangaDig and make ColaManga a multisrc (#1139)
* Add MangaDig and make ColaManga a multisrc
* Make MangaDig NSFW
* Fix linting
* Fix next page selector
---
.../colamanga/default/AndroidManifest.xml | 21 +
.../colamanga/default/additional.gradle | 3 +
.../mangadig/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2222 bytes
.../mangadig/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1118 bytes
.../mangadig/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 2721 bytes
.../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 5092 bytes
.../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 6102 bytes
.../colamanga/mangadig/src/MangaDig.kt | 123 +++++
.../onemanhua/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2381 bytes
.../onemanhua/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1222 bytes
.../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3503 bytes
.../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6320 bytes
.../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 8766 bytes
.../colamanga/onemanhua/src/Onemanhua.kt | 120 +++++
.../tachiyomi/multisrc/colamanga/ColaManga.kt | 334 ++++++++++++
.../multisrc/colamanga/ColaMangaFilters.kt | 32 ++
.../multisrc/colamanga/ColaMangaGenerator.kt | 25 +
.../colamanga/ColaMangaImageInterceptor.kt | 37 ++
.../multisrc/colamanga/ColaMangaIntl.kt | 51 ++
.../colamanga/ColaMangaUrlActivity.kt | 35 ++
src/zh/onemanhua/build.gradle | 11 -
.../onemanhua/res/mipmap-hdpi/ic_launcher.png | Bin 3010 -> 0 bytes
.../onemanhua/res/mipmap-mdpi/ic_launcher.png | Bin 1609 -> 0 bytes
.../res/mipmap-xhdpi/ic_launcher.png | Bin 4274 -> 0 bytes
.../res/mipmap-xxhdpi/ic_launcher.png | Bin 7962 -> 0 bytes
.../res/mipmap-xxxhdpi/ic_launcher.png | Bin 11454 -> 0 bytes
.../extension/zh/onemanhua/Onemanhua.kt | 496 ------------------
27 files changed, 781 insertions(+), 507 deletions(-)
create mode 100644 multisrc/overrides/colamanga/default/AndroidManifest.xml
create mode 100644 multisrc/overrides/colamanga/default/additional.gradle
create mode 100644 multisrc/overrides/colamanga/mangadig/res/mipmap-hdpi/ic_launcher.png
create mode 100644 multisrc/overrides/colamanga/mangadig/res/mipmap-mdpi/ic_launcher.png
create mode 100644 multisrc/overrides/colamanga/mangadig/res/mipmap-xhdpi/ic_launcher.png
create mode 100644 multisrc/overrides/colamanga/mangadig/res/mipmap-xxhdpi/ic_launcher.png
create mode 100644 multisrc/overrides/colamanga/mangadig/res/mipmap-xxxhdpi/ic_launcher.png
create mode 100644 multisrc/overrides/colamanga/mangadig/src/MangaDig.kt
create mode 100644 multisrc/overrides/colamanga/onemanhua/res/mipmap-hdpi/ic_launcher.png
create mode 100644 multisrc/overrides/colamanga/onemanhua/res/mipmap-mdpi/ic_launcher.png
create mode 100644 multisrc/overrides/colamanga/onemanhua/res/mipmap-xhdpi/ic_launcher.png
create mode 100644 multisrc/overrides/colamanga/onemanhua/res/mipmap-xxhdpi/ic_launcher.png
create mode 100644 multisrc/overrides/colamanga/onemanhua/res/mipmap-xxxhdpi/ic_launcher.png
create mode 100644 multisrc/overrides/colamanga/onemanhua/src/Onemanhua.kt
create mode 100644 multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaManga.kt
create mode 100644 multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaFilters.kt
create mode 100644 multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaGenerator.kt
create mode 100644 multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaImageInterceptor.kt
create mode 100644 multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaIntl.kt
create mode 100644 multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaUrlActivity.kt
delete mode 100644 src/zh/onemanhua/build.gradle
delete mode 100644 src/zh/onemanhua/res/mipmap-hdpi/ic_launcher.png
delete mode 100644 src/zh/onemanhua/res/mipmap-mdpi/ic_launcher.png
delete mode 100644 src/zh/onemanhua/res/mipmap-xhdpi/ic_launcher.png
delete mode 100644 src/zh/onemanhua/res/mipmap-xxhdpi/ic_launcher.png
delete mode 100644 src/zh/onemanhua/res/mipmap-xxxhdpi/ic_launcher.png
delete mode 100644 src/zh/onemanhua/src/eu/kanade/tachiyomi/extension/zh/onemanhua/Onemanhua.kt
diff --git a/multisrc/overrides/colamanga/default/AndroidManifest.xml b/multisrc/overrides/colamanga/default/AndroidManifest.xml
new file mode 100644
index 000000000..52dcdacdb
--- /dev/null
+++ b/multisrc/overrides/colamanga/default/AndroidManifest.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/multisrc/overrides/colamanga/default/additional.gradle b/multisrc/overrides/colamanga/default/additional.gradle
new file mode 100644
index 000000000..0ffbe4386
--- /dev/null
+++ b/multisrc/overrides/colamanga/default/additional.gradle
@@ -0,0 +1,3 @@
+dependencies {
+ implementation(project(":lib:synchrony"))
+}
diff --git a/multisrc/overrides/colamanga/mangadig/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/colamanga/mangadig/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..e280e2d123c333232991852b96ffc2408a98c863
GIT binary patch
literal 2222
zcmV;f2vPTmP)a)wzj)8P5Zrn5Mb7SFc_N
zZiGmj&mBukOYe6arxj5O;^wcctbCZb?zF+~p|xvWUES9dEgMk^;^s6oG<-)~ciX^v
z#FpEWF7ARTM}T91D|6mJf%YN?bw!jTz%jseV+7j!eJoJTOOW3oJ
zoJoj8=$5NsYPlYr0u3+L@W66`1$sMC
zLYv`WMum>gQzbsuCtpQ{>|k7}77&8P5=fRtZf0
zeR9W&Iukz<;ooxSVeQ7$9IJ~{|)E~J>VJ=)(5UGz^+Y!KC=>36*ylv}
zf8LGOt`NE$2%*Q35c{4CGiL%q!ZzUul`vBJ)8}wCgsunC$K4CnBkOghUSAeB&J%OCY97tq&
zdH5A@8ZyZdOCkP#010pw9H9c?;Ix%NBGM!hI}Vl>;v^H=l8-nZ%EY@71{^6V5b3_B
zz^;t#SVh{*n@qLhPB^V4;J@dLr}*qaq_2Z3*CQ+(i)}Cbx;MmL$8rG;0y{{abRYab
z?#$5%SA><>FK~UbN)~jyE@qR19KR2LL0k4Ixng&&A+8}}ZLlg=bHqd{oM!%11c9R}
z4ZeT{vV1EL0(_l75!9A`%8~Ban^o6^JnA}jkiPO;t|e=O-INE3x|G=EAegz6))a`2
z3%~705!;m=7s`dwz;hsUJp@j30oDoE<{AjwjEq2zR0pmrT@HYeF#_uVj|5`x6L=i3
ze9I6FvtS0hM;dx@Xa`oThX041xQ4k(V{p-?p|S^`6;aLA#)$>gqPsPkTDfwZNcM5+e4&|`k4r?opzuyD+^pRKk)
zrq(U?J&B%pX^8x&^z^CzP(7n4h8Aeq=U@j-x}Q5jJQ2*egw
zXFbnzjk@4%tP6TlZwNh(;0Zev?3!eDk2v6rux>O`2C_iG5e~j(eWLL$7qQj%UN_9gTemQSRxLAgPGW`keQ0m-QnIvsT`1;`J
z8tKEpo6(+r*61wPS&e`gieLkNFBi4kU9^~I20j@<5Ar4%z~LgSu_GWca9H7l42|N
zJC(-=ss9-)5DPSDR!bB
z^CRHek^j0FlW{DLSA@Z_C+Bi)TK87O`@*3okSCBQkS9>bgC~$DkSCBQkSCBQkS9=W
zZLKHJ+I}3WprGIf$8n&6JQ
z>s41>bt3)T>MBGj$USkl-+ue48}lQX+tS*J)&V!&bkoIod3mw2EQ_SLLykgcUI7l8
zrb+qv`3d*ld+!wij?9%gZy2_3SN4$e&p-dXfddD=MUm^hWXY1jop~)>xUkpo;ltm%
z{PN2$AZ~}!+C3;<8zT~{d?c+CXq`ms90ZMP5=M^07*qoM6N<$f(JP(#sB~S
literal 0
HcmV?d00001
diff --git a/multisrc/overrides/colamanga/mangadig/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/colamanga/mangadig/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd935fa4e209fb587dcf85135cfe079ddc26d8aa
GIT binary patch
literal 1118
zcmV-k1flzhP)N)rILp=0zJ2?9EX!&sggA~=hBCw`OS`5`o8En;`EOBGwKdWhx~_NR9k~oQ
zQr+WuUJPjr$|T3LamLH^{X(lUxqodz*>o>-4lGFlnESz7%Zoew)7@wM)mWE!#0?
z<9bZmx(^fg*}N;mNT4U}#GsvtJ0Kh#-hpLsHVlP#Xf-a1=fIC`r`iViZpcIIyKvU@
zgErtds2$#d*7sLvy}yUt{4wlp{xYTytbpTk?3};%_;1us??P&HH{_-dLF-3rhW?Kr
z?#>y|2LA=6^ZQWfe@pdl;m@H7_|k5u-M@f7I${tXfKLNG#dl1I)
zv+LwN@D8tq-1<2flS?B2uQkRMggz<0ef|CBp`ff^gzt1<&%E~oVESHA-7H9klx`nxDZ;;
zZ+NE?)@~gSss8Qo4z9$xSPPm!?e-}kyp+4hta%NommlVNxDfitY*4#=l(=S2JxC;d
zZrcgZg52y;*sFTtf_OIkq#fZ4=tKYK!MzyT;J;boT(qJ8LGArRpxtKipn69)f`x1a
z`q+H5d!IvY^(>^iH^H1zHhcl4%}X#RmBfV*j?Pcjp*Blg^CFDE8fX1r7VxD#Ah^Ap
z4a4A*kbi75q&hcJyG{&Oz}F5_|KCO1-U}DPoK+qAh^&DDK1BV08|;2K@!$7>R4PPUJ8=z=0l@TR#uA>nGek
z4DZBp$c^uV*5{|thnUZ05+IRjAmAtMgtKlCv?2eHKuZ=m1>d&r?l~|f6rm@5E4Pp~
z@Hg0N`koVZ1>}}bpSmMT(e7p88KW8C*9u+0-99CL0`ZwHw|J7C_@A&>bmb=)#N9KO
zj>yk=cfFG?9l8MHyQkVjAUQCnSB5@1SM-J^
z61XlRfk+?{hy)(CEGr3V4BNKVc(%(4+(>o*#*G_$A&s$V)29CMY@G2j-0||uFTb*Q
z@!|ooSWHzE1*uu_3@cWw81nx6@4pt$Ms+#Z@NTN7sotP^H`Μ*
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
bfXd<#S|$6Wq2!$C00000NkvXXu0mjfidsVs
literal 0
HcmV?d00001
diff --git a/multisrc/overrides/colamanga/mangadig/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/colamanga/mangadig/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..ad18e27b52cb77c1d5048f9be52b6dfa20e29327
GIT binary patch
literal 5092
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
literal 0
HcmV?d00001
diff --git a/multisrc/overrides/colamanga/mangadig/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/colamanga/mangadig/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..07f2ab0f8b5a9d7d2974f9377f6ed0f9e0938ddf
GIT binary patch
literal 6102
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
literal 0
HcmV?d00001
diff --git a/multisrc/overrides/colamanga/onemanhua/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/colamanga/onemanhua/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..7317a3dc5d657bc20df0db69a685d491c061c9a2
GIT binary patch
literal 3503
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.getSharedPreferences("source_$id", 0x0000)
+ }
+
+ override val client = network.cloudflareClient.newBuilder()
+ .rateLimitHost(
+ baseUrl.toHttpUrl(),
+ preferences.getString(RATE_LIMIT_PREF_KEY, RATE_LIMIT_PREF_DEFAULT)!!.toInt(),
+ preferences.getString(RATE_LIMIT_PERIOD_PREF_KEY, RATE_LIMIT_PERIOD_PREF_DEFAULT)!!.toLong(),
+ TimeUnit.MILLISECONDS,
+ )
+ .addInterceptor(ColaMangaImageInterceptor())
+ .build()
+
+ override fun headersBuilder() = super.headersBuilder()
+ .add("Origin", baseUrl)
+ .add("Referer", "$baseUrl/")
+
+ override fun popularMangaRequest(page: Int) =
+ GET("$baseUrl/show?orderBy=dailyCount&page=$page", headers)
+
+ override fun popularMangaSelector() = "li.fed-list-item"
+
+ override fun popularMangaFromElement(element: Element) = SManga.create().apply {
+ element.selectFirst("a.fed-list-title")!!.let {
+ setUrlWithoutDomain(it.attr("href"))
+ title = it.text()
+ }
+ thumbnail_url = element.selectFirst("a.fed-list-pics")?.absUrl("data-original")
+ }
+
+ override fun latestUpdatesRequest(page: Int) =
+ GET("$baseUrl/show?orderBy=update&page=$page", headers)
+
+ override fun latestUpdatesSelector() = popularMangaSelector()
+
+ override fun latestUpdatesFromElement(element: Element) = popularMangaFromElement(element)
+
+ override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector()
+
+ override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
+ val url = if (query.isNotEmpty()) {
+ "$baseUrl/search".toHttpUrl().newBuilder().apply {
+ filters.ifEmpty { getFilterList() }
+ .firstOrNull { it is SearchTypeFilter }
+ ?.let { (it as SearchTypeFilter).addToUri(this) }
+
+ addQueryParameter("searchString", query)
+ addQueryParameter("page", page.toString())
+ }.build()
+ } else {
+ "$baseUrl/show".toHttpUrl().newBuilder().apply {
+ filters.ifEmpty { getFilterList() }
+ .filterIsInstance()
+ .filterNot { it is SearchTypeFilter }
+ .forEach { it.addToUri(this) }
+
+ addQueryParameter("page", page.toString())
+ }.build()
+ }
+
+ return GET(url, headers)
+ }
+
+ override fun fetchSearchManga(
+ page: Int,
+ query: String,
+ filters: FilterList,
+ ): Observable {
+ return if (query.startsWith(PREFIX_SLUG_SEARCH)) {
+ val slug = query.removePrefix(PREFIX_SLUG_SEARCH)
+ val url = "/$slug/"
+
+ fetchMangaDetails(SManga.create().apply { this.url = url })
+ .map { MangasPage(listOf(it.apply { this.url = url }), false) }
+ } else {
+ super.fetchSearchManga(page, query, filters)
+ }
+ }
+
+ override fun searchMangaSelector() = "dl.fed-data-info, ${popularMangaSelector()}"
+
+ override fun searchMangaFromElement(element: Element): SManga {
+ if (element.tagName() == "li") {
+ return popularMangaFromElement(element)
+ }
+
+ return SManga.create().apply {
+ element.selectFirst("h1.fed-part-eone a")!!.let {
+ setUrlWithoutDomain(it.attr("href"))
+ title = it.text()
+ }
+
+ thumbnail_url = element.selectFirst("a.fed-list-pics")?.absUrl("data-original")
+ }
+ }
+
+ override fun searchMangaNextPageSelector() = popularMangaSelector()
+
+ protected abstract val statusTitle: String
+ protected abstract val authorTitle: String
+ protected abstract val genreTitle: String
+ protected abstract val statusOngoing: String
+ protected abstract val statusCompleted: String
+
+ override fun mangaDetailsParse(document: Document) = SManga.create().apply {
+ title = document.selectFirst("h1.fed-part-eone")!!.text()
+ thumbnail_url = document.selectFirst("a.fed-list-pics")?.absUrl("data-orignal")
+ author = document.selectFirst("span.fed-text-muted:contains($authorTitle) + a")?.text()
+ genre = document.select("span.fed-text-muted:contains($genreTitle) ~ a").joinToString { it.text() }
+ description = document
+ .selectFirst("ul.fed-part-rows li.fed-col-xs12.fed-show-md-block .fed-part-esan")
+ ?.ownText()
+ status = when (document.selectFirst("span.fed-text-muted:contains($statusTitle) + a")?.text()) {
+ statusOngoing -> SManga.ONGOING
+ statusCompleted -> SManga.COMPLETED
+ else -> SManga.UNKNOWN
+ }
+ }
+
+ override fun chapterListSelector(): String = "div:not(.fed-hidden) > div.all_data_list > ul.fed-part-rows a"
+
+ override fun chapterFromElement(element: Element) = SChapter.create().apply {
+ setUrlWithoutDomain(element.attr("href"))
+ name = element.attr("title")
+ }
+
+ @SuppressLint("SetJavaScriptEnabled")
+ override fun pageListParse(document: Document): List {
+ val interfaceName = randomString()
+
+ document.body().prepend(
+ """
+
+ """.trimIndent(),
+ )
+
+ val handler = Handler(Looper.getMainLooper())
+ val latch = CountDownLatch(1)
+ val jsInterface = JsInterface(latch, json)
+ var webView: WebView? = null
+
+ handler.post {
+ val innerWv = WebView(Injekt.get())
+ webView = innerWv
+ innerWv.settings.javaScriptEnabled = true
+ innerWv.settings.domStorageEnabled = true
+ innerWv.settings.blockNetworkImage = true
+ innerWv.setLayerType(View.LAYER_TYPE_SOFTWARE, null)
+ innerWv.addJavascriptInterface(jsInterface, interfaceName)
+
+ innerWv.loadDataWithBaseURL(document.location(), document.outerHtml(), "text/html", "UTF-8", null)
+ }
+
+ latch.await(30L, TimeUnit.SECONDS)
+ handler.post { webView?.destroy() }
+
+ if (latch.count == 1L) {
+ throw Exception(intl.timedOutDecryptingImageLinks)
+ }
+
+ val key = if (jsInterface.keyType.isNotEmpty()) {
+ keyMapping[jsInterface.keyType]
+ ?: throw Exception(intl.couldNotFindKey(jsInterface.keyType))
+ } else {
+ jsInterface.key
+ }
+
+ return jsInterface.images.mapIndexed { i, it ->
+ val imageUrl = buildString(it.length + 6) {
+ if (it.startsWith("//")) {
+ append("https:")
+ }
+
+ append(it)
+
+ if (key.isNotEmpty()) {
+ append("#")
+ append(ColaMangaImageInterceptor.KEY_PREFIX)
+ append(key)
+ }
+ }
+
+ Page(i, imageUrl = imageUrl)
+ }
+ }
+
+ override fun imageUrlParse(document: Document) = throw UnsupportedOperationException()
+
+ override fun getFilterList() = FilterList(
+ SearchTypeFilter(intl),
+ )
+
+ override fun setupPreferenceScreen(screen: PreferenceScreen) {
+ ListPreference(screen.context).apply {
+ key = RATE_LIMIT_PREF_KEY
+ title = intl.rateLimitPrefTitle
+ summary = intl.rateLimitPrefSummary(RATE_LIMIT_PREF_DEFAULT)
+ entries = RATE_LIMIT_PREF_ENTRIES
+ entryValues = RATE_LIMIT_PREF_ENTRIES
+
+ setDefaultValue(RATE_LIMIT_PREF_DEFAULT)
+ }.also(screen::addPreference)
+
+ ListPreference(screen.context).apply {
+ key = RATE_LIMIT_PERIOD_PREF_KEY
+ title = intl.rateLimitPeriodPrefTitle
+ summary = intl.rateLimitPeriodPrefSummary(RATE_LIMIT_PERIOD_PREF_DEFAULT)
+ entries = RATE_LIMIT_PERIOD_PREF_ENTRIES
+ entryValues = RATE_LIMIT_PERIOD_PREF_ENTRIES
+
+ setDefaultValue(RATE_LIMIT_PERIOD_PREF_DEFAULT)
+ }.also(screen::addPreference)
+ }
+
+ private val keyMappingRegex = Regex("""[0-9A-Za-z_]+\s*==\s*['"](?\d+)['"]\s*&&\s*\([0-9A-Za-z_]+\s*=\s*['"](?[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(intl.couldNotDeobufscateScript)
+
+ keyMappingRegex.findAll(readJs).associate { it.groups["keyType"]!!.value to it.groups["key"]!!.value }
+ }
+
+ private fun randomString() = buildString(15) {
+ val charPool = ('a'..'z') + ('A'..'Z')
+
+ for (i in 0 until 15) {
+ append(charPool.random())
+ }
+ }
+
+ @Suppress("UNUSED")
+ private class JsInterface(private val latch: CountDownLatch, private val json: Json) {
+ var images: List = listOf()
+ private set
+
+ var key: String = ""
+ private set
+
+ var keyType: String = ""
+ private set
+
+ @JavascriptInterface
+ fun passData(rawData: String, keyType: String) {
+ val data = json.parseToJsonElement(rawData).jsonObject
+
+ images = data["images"]!!.jsonArray.map { it.jsonPrimitive.content }
+ key = data["key"]!!.jsonPrimitive.content
+
+ if (keyType != "0") {
+ this.keyType = keyType
+ }
+
+ latch.countDown()
+ }
+ }
+
+ companion object {
+ internal const val PREFIX_SLUG_SEARCH = "slug:"
+ }
+}
+
+private const val RATE_LIMIT_PREF_KEY = "mainSiteRatePermitsPreference"
+private const val RATE_LIMIT_PREF_DEFAULT = "1"
+private val RATE_LIMIT_PREF_ENTRIES = (1..10).map { i -> i.toString() }.toTypedArray()
+
+private const val RATE_LIMIT_PERIOD_PREF_KEY = "mainSiteRatePeriodMillisPreference"
+private const val RATE_LIMIT_PERIOD_PREF_DEFAULT = "2500"
+private val RATE_LIMIT_PERIOD_PREF_ENTRIES = (2000..6000 step 500).map { i -> i.toString() }.toTypedArray()
diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaFilters.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaFilters.kt
new file mode 100644
index 000000000..8f21403da
--- /dev/null
+++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaFilters.kt
@@ -0,0 +1,32 @@
+package eu.kanade.tachiyomi.multisrc.colamanga
+
+import eu.kanade.tachiyomi.source.model.Filter
+import okhttp3.HttpUrl
+
+interface UriFilter {
+ fun addToUri(builder: HttpUrl.Builder)
+}
+
+open class UriPartFilter(
+ name: String,
+ private val param: String,
+ private val vals: Array>,
+ state: Int = 0,
+) : Filter.Select(name, vals.map { it.first }.toTypedArray(), state), UriFilter {
+ override fun addToUri(builder: HttpUrl.Builder) {
+ val uriPart = vals[state].second
+
+ if (uriPart.isNotEmpty()) {
+ builder.addQueryParameter(param, uriPart)
+ }
+ }
+}
+
+class SearchTypeFilter(intl: ColaMangaIntl) : UriPartFilter(
+ intl.searchType,
+ "type",
+ arrayOf(
+ intl.searchTypeFuzzy to "1",
+ intl.searchTypeExact to "2",
+ ),
+)
diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaGenerator.kt
new file mode 100644
index 000000000..9b8f45423
--- /dev/null
+++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaGenerator.kt
@@ -0,0 +1,25 @@
+package eu.kanade.tachiyomi.multisrc.colamanga
+
+import generator.ThemeSourceData.SingleLang
+import generator.ThemeSourceGenerator
+
+class ColaMangaGenerator : ThemeSourceGenerator {
+
+ override val themePkg = "colamanga"
+
+ override val themeClass = "ColaManga"
+
+ override val baseVersionCode = 1
+
+ override val sources = listOf(
+ SingleLang("COLAMANGA", "https://www.colamanga.com", "zh", overrideVersionCode = 15, className = "Onemanhua"),
+ SingleLang("MangaDig", "https://mangadig.com", "en", isNsfw = true),
+ )
+
+ companion object {
+ @JvmStatic
+ fun main(args: Array) {
+ ColaMangaGenerator().createAll()
+ }
+ }
+}
diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaImageInterceptor.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaImageInterceptor.kt
new file mode 100644
index 000000000..0a7d45126
--- /dev/null
+++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaImageInterceptor.kt
@@ -0,0 +1,37 @@
+package eu.kanade.tachiyomi.multisrc.colamanga
+
+import okhttp3.Interceptor
+import okhttp3.MediaType.Companion.toMediaType
+import okhttp3.Response
+import okhttp3.ResponseBody.Companion.toResponseBody
+import javax.crypto.Cipher
+import javax.crypto.spec.IvParameterSpec
+import javax.crypto.spec.SecretKeySpec
+
+class ColaMangaImageInterceptor : Interceptor {
+ private val iv = "0000000000000000".toByteArray()
+ private val mediaType = "image/jpeg".toMediaType()
+
+ override fun intercept(chain: Interceptor.Chain): Response {
+ val request = chain.request()
+ val response = chain.proceed(request)
+
+ if (request.url.fragment?.startsWith(KEY_PREFIX) != true) {
+ return response
+ }
+
+ val key = request.url.fragment!!.substringAfter(KEY_PREFIX).toByteArray()
+ val output = Cipher.getInstance("AES/CBC/PKCS7Padding").let {
+ it.init(Cipher.DECRYPT_MODE, SecretKeySpec(key, "AES"), IvParameterSpec(iv))
+ it.doFinal(response.body.bytes())
+ }
+
+ return response.newBuilder()
+ .body(output.toResponseBody(mediaType))
+ .build()
+ }
+
+ companion object {
+ internal const val KEY_PREFIX = "key="
+ }
+}
diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaIntl.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaIntl.kt
new file mode 100644
index 000000000..0bebd6aee
--- /dev/null
+++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaIntl.kt
@@ -0,0 +1,51 @@
+package eu.kanade.tachiyomi.multisrc.colamanga
+
+class ColaMangaIntl(private val lang: String) {
+
+ val rateLimitPrefTitle = when (lang) {
+ "zh" -> "主站连接限制"
+ else -> "Rate limit"
+ }
+
+ fun rateLimitPrefSummary(defaultValue: String) = when (lang) {
+ "zh" -> "此值影响主站的连接请求量。降低此值可以减少获得HTTP 403错误的几率,但加载速度也会变慢。需要重启软件以生效。\n默认值:$defaultValue\n当前值:%s"
+ else -> "Number of requests made to the website. Lowering this value may reduce the chance of getting HTTP 403. Tachiyomi restart required.\nDefault value: $defaultValue\nCurrent value: %s"
+ }
+
+ val rateLimitPeriodPrefTitle = when (lang) {
+ "zh" -> "主站连接限制期"
+ else -> "Rate limit period"
+ }
+
+ fun rateLimitPeriodPrefSummary(defaultValue: String) = when (lang) {
+ "zh" -> "此值影响主站点连接限制时的延迟(毫秒)。增加这个值可能会减少出现HTTP 403错误的机会,但加载速度也会变慢。需要重启软件以生效。\n默认值:$defaultValue\n当前值:%s"
+ else -> "Time in milliseconds to wait after using up all allowed requests. Lowering this value may reduce the chance of getting HTTP 403. Tachiyomi restart required.\nDefault value: $defaultValue\nCurrent value: %s"
+ }
+
+ val timedOutDecryptingImageLinks = when (lang) {
+ else -> "Timed out decrypting image links"
+ }
+
+ val couldNotDeobufscateScript = when (lang) {
+ else -> "Could not deobfuscate script"
+ }
+
+ fun couldNotFindKey(forKeyType: String) = when (lang) {
+ else -> "Could not find key for keyType $forKeyType"
+ }
+
+ val searchType = when (lang) {
+ "zh" -> "搜索类型"
+ else -> "Search type"
+ }
+
+ val searchTypeFuzzy = when (lang) {
+ "zh" -> "模糊"
+ else -> "Fuzzy"
+ }
+
+ val searchTypeExact = when (lang) {
+ "zh" -> "精确"
+ else -> "Exact"
+ }
+}
diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaUrlActivity.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaUrlActivity.kt
new file mode 100644
index 000000000..309b1e765
--- /dev/null
+++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/colamanga/ColaMangaUrlActivity.kt
@@ -0,0 +1,35 @@
+package eu.kanade.tachiyomi.multisrc.colamanga
+
+import android.app.Activity
+import android.content.ActivityNotFoundException
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import kotlin.system.exitProcess
+
+class ColaMangaUrlActivity : Activity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ val pathSegments = intent?.data?.pathSegments
+
+ if (pathSegments != null && pathSegments.size > 0) {
+ val intent = Intent().apply {
+ action = "eu.kanade.tachiyomi.SEARCH"
+ putExtra("query", "${ColaManga.PREFIX_SLUG_SEARCH}${pathSegments[0]}")
+ putExtra("filter", packageName)
+ }
+
+ try {
+ startActivity(intent)
+ } catch (e: ActivityNotFoundException) {
+ Log.e("ColaMangaUrlActivity", "Could not start activity", e)
+ }
+ } else {
+ Log.e("ColaMangaUrlActivity", "Could not parse URI from intent $intent")
+ }
+
+ finish()
+ exitProcess(0)
+ }
+}
diff --git a/src/zh/onemanhua/build.gradle b/src/zh/onemanhua/build.gradle
deleted file mode 100644
index 022ab9505..000000000
--- a/src/zh/onemanhua/build.gradle
+++ /dev/null
@@ -1,11 +0,0 @@
-ext {
- extName = 'COLAMANGA'
- extClass = '.Onemanhua'
- extVersionCode = 15
-}
-
-apply from: "$rootDir/common.gradle"
-
-dependencies {
- implementation(project(":lib:synchrony"))
-}
diff --git a/src/zh/onemanhua/res/mipmap-hdpi/ic_launcher.png b/src/zh/onemanhua/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index 39a379fdf0a8049c71edea13c44772becadce4ef..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 3010
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