From 7b8233ebe8611b1f4ad6b17d2d4247a0f90fcbf1 Mon Sep 17 00:00:00 2001 From: stevenyomi <95685115+stevenyomi@users.noreply.github.com> Date: Wed, 29 Mar 2023 06:13:08 +0800 Subject: [PATCH] MCCMS: update sources (#15843) * MCCMS: update sources * Change cover placeholder * Refactor --- .../haoman6/res/mipmap-hdpi/ic_launcher.png | Bin 2393 -> 0 bytes .../haoman6/res/mipmap-mdpi/ic_launcher.png | Bin 1510 -> 0 bytes .../haoman6/res/mipmap-xhdpi/ic_launcher.png | Bin 3144 -> 0 bytes .../haoman6/res/mipmap-xxhdpi/ic_launcher.png | Bin 5664 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 7211 -> 0 bytes .../mccms/haoman6/res/web_hi_res_512.png | Bin 21694 -> 0 bytes .../overrides/mccms/haoman6/src/Haoman6.kt | 18 --- .../overrides/mccms/haoman8/src/Haoman8.kt | 6 +- .../overrides/mccms/haoman8/src/MCCMSAcgn.kt | 117 ++++++++++++++++++ .../mccms/kuaikuai3/src/Kuaikuai3.kt | 7 ++ .../mccms/kuaikuai3/src/MCCMSReduced.kt | 105 ++++++++++++++++ .../manhuawu/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2637 bytes .../manhuawu/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1511 bytes .../manhuawu/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3326 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6181 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 8030 bytes .../mccms/manhuawu/res/web_hi_res_512.png | Bin 0 -> 36250 bytes .../overrides/mccms/manhuawu/src/Manhuawu.kt | 11 ++ .../multisrc/mccms/DecryptInterceptor.kt | 30 +++-- .../kanade/tachiyomi/multisrc/mccms/MCCMS.kt | 16 +-- .../tachiyomi/multisrc/mccms/MCCMSDto.kt | 7 +- .../multisrc/mccms/MCCMSGenerator.kt | 65 ++-------- .../tachiyomi/multisrc/mccms/MCCMSWeb.kt | 14 ++- 23 files changed, 299 insertions(+), 97 deletions(-) delete mode 100644 multisrc/overrides/mccms/haoman6/res/mipmap-hdpi/ic_launcher.png delete mode 100644 multisrc/overrides/mccms/haoman6/res/mipmap-mdpi/ic_launcher.png delete mode 100644 multisrc/overrides/mccms/haoman6/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 multisrc/overrides/mccms/haoman6/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 multisrc/overrides/mccms/haoman6/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 multisrc/overrides/mccms/haoman6/res/web_hi_res_512.png delete mode 100644 multisrc/overrides/mccms/haoman6/src/Haoman6.kt create mode 100644 multisrc/overrides/mccms/haoman8/src/MCCMSAcgn.kt create mode 100644 multisrc/overrides/mccms/kuaikuai3/src/Kuaikuai3.kt create mode 100644 multisrc/overrides/mccms/kuaikuai3/src/MCCMSReduced.kt create mode 100644 multisrc/overrides/mccms/manhuawu/res/mipmap-hdpi/ic_launcher.png create mode 100644 multisrc/overrides/mccms/manhuawu/res/mipmap-mdpi/ic_launcher.png create mode 100644 multisrc/overrides/mccms/manhuawu/res/mipmap-xhdpi/ic_launcher.png create mode 100644 multisrc/overrides/mccms/manhuawu/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 multisrc/overrides/mccms/manhuawu/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 multisrc/overrides/mccms/manhuawu/res/web_hi_res_512.png create mode 100644 multisrc/overrides/mccms/manhuawu/src/Manhuawu.kt diff --git a/multisrc/overrides/mccms/haoman6/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/mccms/haoman6/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 244552949495c93cd8f1d47d6637a25e7322b972..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2393 zcmV-f38wamP)85u<@h=9S;!blN+>Xfk+bZi~RRx{&BE7q1;XGB5>$dBPyzzAtcn1S+- zRR~j3S}H_Zs3z6(#rOwbN z`bHlU1*b!CadFpRFt|M)$CDX+bN$D2Ts-3l1OnUXW1>v@*3qL!hlWC-v#|!@76ZI& z^sTC@YAAh8M3Aqpt*ySQtq0Xnwq&zGbhT zmUV5sVaA<1RaaNfbNcGK$+(N@J9;1bNMGFs=wb(&sGz#V)MNpwo)>QhY3XxYy>DsU zt}=)xN%d^zHbAMK>75C&M8q#yok%ov;_ahNM7pi&n)ViAmqc?b#Nb7CyHpvJQrWG& zg_u{Bw6}#~GHW_cEQ`2VNIK0Rrx*aIR|pavS4w0tw^j%)re8+@YVJg;>{X!bPr$(s zA_wKK15O`r&Vci0%eAzG92)wlb7~K+gdkKnwt;n`*1k{q>0^@oM2%|Hg-kfWC(=1YSBKP~iKW78G zHwrj3ZkuqMF{s?zfU(~*072Cphy+K4fTN!R3!jvIp8K}g#=_<_%4r4x>YHj{_CqEN zB8@DW|BJ}|8|r~KX2}&N+g^PZICH{$4KxLS+9SZ;QUO04px1^0#p8fgw6RdD#sYsF z+#G{|s*iw~4?sP413-JBFEHm(;6H1;3NhXtI|(cpB8(s?&wmG)bceiZfPNXd|Jv!m zm|nu3f`@_H!=hiNl`fTIj_;Gt;Q�M&Dvgw20@_0QHIlhbb*M%ZPJ92tJEqn^7uLWk_F97{@V&wjLgETm5@*R@F!l{0+5}0(m)*MCguG%A3 zSpv0l9YF0draz16?><C?g-o@?3fpcq=bIAr^~tAU0(ud*0`!yf}vejs60UIgrWSHPjhZ2L1XzK@s|=I%0R zh6X>6?Jci?3(}YWEUx4}v#N7@tU7wf&ZqctqM+gwpD@8awlqQ)FyEi(-Oqam=Sx{@H z3i}umvCNba#whG2A)Go4Ou0({;(1K^X9ivT8v%&pW0vzI#F!llA2EfWh%iHl^+r=L z5>O790L{sat&)umP|Q$dMCoE-qt=)H#()X^BkCdK+Q!N|nn80Pm!x4D`y@cL&nmpC zq{T5ZM$vg1)9%*Sq^=2X1|Sxeu~sHIk0UtLlta6r*5yfxr`|BUD9SGm0ABo|0F~8M zLMyu)lqn6!l)QmZ)ST(}Xcn7u>8hUK5WE9By_$>JS8egH#d%}AisdUJL1OmO06iKT z=+Y$u5RYY6JMxKSBx)B0dgUmY%)a+Got?~_OlMF3Su-f0WTuGn@Gc_ytk-;dfS2zB zp6vwW_61HH@Q6VtzXawzF5yMzXZ#3iWDj|t|Db%&N$1WIC^|_-6h;GNr)Ty$G&PDdcf{_lzVs);h@W12&vwjLZ-%A6cvbsPq z84xIj7Ps*`hAy*|(IK`&|AopM2xNCP^Dr3)#avhLUerO#&$Fi)xscM#G-D>;L)Ap%jGJh-(&ZMjC z&aSl;|GE^lPPPvnZJ(0;Yl;X>GJkGzWr~|Ce{hm+>6UKk=0^KJK1%M17b}yi00000 LNkvXXu0mjf2x@n* diff --git a/multisrc/overrides/mccms/haoman6/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/mccms/haoman6/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 177f76bc9ea59999209fb2e4d661ef224ef6c718..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1510 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 ZsQg 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 diff --git a/multisrc/overrides/mccms/haoman6/src/Haoman6.kt b/multisrc/overrides/mccms/haoman6/src/Haoman6.kt deleted file mode 100644 index 0f67d99ff..000000000 --- a/multisrc/overrides/mccms/haoman6/src/Haoman6.kt +++ /dev/null @@ -1,18 +0,0 @@ -package eu.kanade.tachiyomi.extension.zh.haoman6 - -import eu.kanade.tachiyomi.multisrc.mccms.MCCMSWeb -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.source.model.SChapter -import eu.kanade.tachiyomi.source.model.SManga - -class Haoman6 : MCCMSWeb("好漫6", "https://www.haoman6.com") { - override fun SManga.cleanup() = apply { - description = description?.substringBefore(title) - title = title.removeSuffix("(最新在线)").removeSuffix("-") - } - - override fun pageListRequest(chapter: SChapter) = - GET(baseUrl + chapter.url, headers) - - override val lazyLoadImageAttr = "mob-ec" -} diff --git a/multisrc/overrides/mccms/haoman8/src/Haoman8.kt b/multisrc/overrides/mccms/haoman8/src/Haoman8.kt index 35fe914e7..f3e4d26a5 100644 --- a/multisrc/overrides/mccms/haoman8/src/Haoman8.kt +++ b/multisrc/overrides/mccms/haoman8/src/Haoman8.kt @@ -1,7 +1,3 @@ package eu.kanade.tachiyomi.extension.zh.haoman8 -import eu.kanade.tachiyomi.multisrc.mccms.MCCMS - -class Haoman8 : MCCMS("好漫8", "https://caiji.haoman8.com", hasCategoryPage = true) { - override val lazyLoadImageAttr = "data-original" -} +class Haoman8 : MCCMSAcgn("好漫8", "https://www.haoman8.com", hasCategoryPage = false) diff --git a/multisrc/overrides/mccms/haoman8/src/MCCMSAcgn.kt b/multisrc/overrides/mccms/haoman8/src/MCCMSAcgn.kt new file mode 100644 index 000000000..3da0c9e93 --- /dev/null +++ b/multisrc/overrides/mccms/haoman8/src/MCCMSAcgn.kt @@ -0,0 +1,117 @@ +package eu.kanade.tachiyomi.extension.zh.haoman8 + +import eu.kanade.tachiyomi.multisrc.mccms.MCCMSWeb +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.MangasPage +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.util.asJsoup +import kotlinx.serialization.Serializable +import kotlinx.serialization.decodeFromString +import kotlinx.serialization.json.Json +import okhttp3.Request +import okhttp3.Response +import org.jsoup.nodes.Document +import org.jsoup.select.Evaluator +import uy.kohesive.injekt.injectLazy +import java.text.SimpleDateFormat +import java.util.Locale + +// TODO: Category page +open class MCCMSAcgn( + name: String, + baseUrl: String, + lang: String = "zh", + hasCategoryPage: Boolean = true, +) : MCCMSWeb(name, baseUrl, lang, hasCategoryPage) { + + override fun parseListing(document: Document): MangasPage { + if (document.location().contains("search")) { + return searchMangaParse(document) + } + val list = document.selectFirst(Evaluator.Class("acgn-comic-list")) + ?: return MangasPage(emptyList(), false) + val mangas = list.children().map { + SManga.create().apply { + val titleElement = it.selectFirst(Evaluator.Tag("h3"))!!.child(0) + url = titleElement.attr("href") + title = titleElement.ownText() + thumbnail_url = it.selectFirst(Evaluator.Tag("img"))!! + .attr("style").split("'")[1] + }.cleanup() + } + val hasNextPage = run { // default pagination + val pagination = document.selectFirst(Evaluator.Class("acgn-pages"))!! + pagination.children().last()!!.tagName() == "a" + } + return MangasPage(mangas, hasNextPage) + } + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val request = super.searchMangaRequest(page, query, filters) + return if (query.isNotBlank()) { + // TODO: Fix Captcha + throw Exception("暂不支持搜索,请等待后续插件更新") + // request.newBuilder().headers(headers).build() + } else { + request + } + } + + private fun searchMangaParse(document: Document): MangasPage { + val entries = document.select(Evaluator.Class("comic-list-item")).map { + SManga.create().apply { + val titleElement = it.selectFirst(Evaluator.Class("comic-name"))!!.child(0) + url = titleElement.attr("href") + title = titleElement.ownText() + author = it.selectFirst(Evaluator.Class("comic-author"))?.ownText() + genre = it.selectFirst(Evaluator.Class("comic-tags"))?.run { + children().joinToString { it.ownText() } + } + thumbnail_url = it.selectFirst(Evaluator.Tag("img"))!!.attr("src") + }.cleanup() + } + return MangasPage(entries, false) + } + + override fun mangaDetailsParse(response: Response) = SManga.create().apply { + val document = response.asJsoup().selectFirst(Evaluator.Class("acgn-model-detail-frontcover"))!! + title = document.selectFirst(Evaluator.Tag("h1"))!!.ownText() + description = document.selectFirst(Evaluator.Class("desc-content"))?.ownText() + genre = document.select("ul.tags > a[href]").joinToString { it.ownText() } + thumbnail_url = document.selectFirst(Evaluator.Tag("img"))?.attr("src") + } + + override fun chapterListParse(response: Response): List { + val document = response.asJsoup() + val scripts = document.select(Evaluator.Tag("script")) + val js = scripts[scripts.size - 2].data() + val start = js.indexOf('[') + val end = js.lastIndexOf(']') + 1 + val replaced = js.substring(start, end).replace('\'', '"') + val list: List = json.decodeFromString(replaced) + val dateFormat = dateFormat + return list.asReversed().map { it.toSChapter(dateFormat) } + } + + override val lazyLoadImageAttr get() = "data-echo" + + @Serializable + class AcgnChapter( + private val name: String, + private val url: String, + private val time: String, + ) { + fun toSChapter(dateFormat: SimpleDateFormat) = SChapter.create().apply { + url = this@AcgnChapter.url + name = this@AcgnChapter.name + date_upload = dateFormat.parse(time)?.time ?: 0 + } + } + + private val json: Json by injectLazy() + + private val dateFormat by lazy { + SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH) + } +} diff --git a/multisrc/overrides/mccms/kuaikuai3/src/Kuaikuai3.kt b/multisrc/overrides/mccms/kuaikuai3/src/Kuaikuai3.kt new file mode 100644 index 000000000..d5992be4d --- /dev/null +++ b/multisrc/overrides/mccms/kuaikuai3/src/Kuaikuai3.kt @@ -0,0 +1,7 @@ +package eu.kanade.tachiyomi.extension.zh.kuaikuai3 + +class Kuaikuai3 : MCCMSReduced("快快漫画3", "https://mobile3.manhuaorg.com") { + + override fun headersBuilder() = super.headersBuilder() + .set("User-Agent", "okhttp/3.14.7") +} diff --git a/multisrc/overrides/mccms/kuaikuai3/src/MCCMSReduced.kt b/multisrc/overrides/mccms/kuaikuai3/src/MCCMSReduced.kt new file mode 100644 index 000000000..278022b98 --- /dev/null +++ b/multisrc/overrides/mccms/kuaikuai3/src/MCCMSReduced.kt @@ -0,0 +1,105 @@ +package eu.kanade.tachiyomi.extension.zh.kuaikuai3 + +import eu.kanade.tachiyomi.multisrc.mccms.DecryptInterceptor +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.interceptor.rateLimitHost +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.MangasPage +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.HttpSource +import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import okhttp3.Response +import org.jsoup.select.Evaluator + +open class MCCMSReduced( + override val name: String, + override val baseUrl: String, +) : HttpSource() { + override val lang = "zh" + override val supportsLatest get() = false + + override val client by lazy { + network.client.newBuilder() + .rateLimitHost(baseUrl.toHttpUrl(), 2) + .addInterceptor(DecryptInterceptor) + .build() + } + + private fun searchOnly(): Nothing = throw Exception("此图源只支持搜索") + private val noWebView = "https://stevenyomi.github.io/echo#本图源不支持网页查看" + + override fun popularMangaRequest(page: Int) = searchOnly() + override fun popularMangaParse(response: Response) = searchOnly() + override fun latestUpdatesRequest(page: Int) = searchOnly() + override fun latestUpdatesParse(response: Response) = searchOnly() + + override fun getMangaUrl(manga: SManga) = noWebView + override fun getChapterUrl(chapter: SChapter) = noWebView + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = "$baseUrl/index.php/search".toHttpUrl().newBuilder() + .addQueryParameter("key", query) + .build() + return GET(url, headers) + } + + override fun searchMangaParse(response: Response): MangasPage { + val document = response.asJsoup() + val placeholder = "$baseUrl/template/pc/default/images/bg_loadimg_3x4.png" + val entries = document.select(Evaluator.Tag("a")).map { link -> + SManga.create().apply { + url = link.attr("href") + title = link.ownText() + thumbnail_url = placeholder + } + } + return MangasPage(entries, false) + } + + override fun mangaDetailsParse(response: Response): SManga { + val document = response.asJsoup() + val metaProperties = HashMap() + for (element in document.head().children()) { + if (element.tagName() == "meta" && element.hasAttr("property")) { + val key = element.attr("property").removePrefix("og:") + metaProperties[key] = element.attr("content") + } + } + return SManga.create().apply { + title = metaProperties["title"]!! + author = metaProperties["novel:author"] + description = metaProperties["description"] + val statusText = metaProperties["novel:status"] + status = when { + statusText == null -> SManga.UNKNOWN + '连' in statusText -> SManga.ONGOING + '完' in statusText -> SManga.COMPLETED + else -> SManga.UNKNOWN + } + thumbnail_url = metaProperties["image"] + } + } + + override fun chapterListParse(response: Response): List { + val document = response.asJsoup() + return document.select(Evaluator.Class("j-chapter-link")).asReversed().map { link -> + SChapter.create().apply { + url = link.attr("href") + name = link.ownText() + } + } + } + + override fun pageListParse(response: Response): List { + val document = response.asJsoup() + return document.select(Evaluator.Tag("img")).mapIndexed { index, img -> + Page(index, imageUrl = img.attr("data-original")) + } + } + + override fun imageUrlParse(response: Response) = throw UnsupportedOperationException() +} diff --git a/multisrc/overrides/mccms/manhuawu/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/mccms/manhuawu/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..7f9656e60925d5fb55255ff83be3b470c8787ced GIT binary patch literal 2637 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 literal 0 HcmV?d00001 diff --git a/multisrc/overrides/mccms/manhuawu/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/mccms/manhuawu/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..2937585cb8fcdfca597833e14bc57210fbd26e25 GIT binary patch literal 1511 zcmVi)QPhZ-`g{uK0#&&yY7Z z8)UI9yjG8x3k=gu!)32izTsNSFxL`hJN>F}2n4=2;qt44^Sm+pTT%qc+LfdO2XFmD zz6SpJrq54bY62jTcF7zk1mQKNuODAIE0SK7?GhXKJ)kz4sf{B^cNBc_0|nMZ4DimP zwQ?BUc7Lb4E9Z@b0Qnh^jEuX7Z2tC%Dktt64{Fo{V+%NJ;(mhUr?}jC59@b5zE^^ zn)$c}ELN!6iof1d<;bv|IwXxy)%^&ECmy3*yo1#k@ko(;4P=efLt!=*rX4F-XVCyoa z!oEy&0?uCgK1<%I%uP+c53=o!<`!2|3x!6f3^3mkKJ&~H_upFJ%e#x*R?(bUj1r+O zY-bsLuof` z8wF<+<&1%IOOnvf@#zm;i67FrLb46d=JAGV?Rca)W55M&+CLKoAmMUL-ho8UNH95SgA^4juaf zx?Ie60x^XN^xpqMaX)KPe-dTw01ehi6=i7{DB$ed6<6`DJ=Fg49OAWEaS`RYjfU5V zv4+tT|Idi;H!D|v8DEQ1hzMEiv0=)ezmpz}-?p>(CudHEm37LHebN*xCodyJS1uRYQ>Q&6LM;}UI zj}K)Y^LZ@da27;R+rN&82T`{ciT`Eq1*Gu|)Sm`Z?_cOzL1<_^`V!Tz9VUw&Dzkzy zc^F7{Ai44rxbkCqk+qL?85A+WnYZwERv9>Y0MzOsC=g;KGi;=~cmX7sMvL?yF9Rk>FW-m}s{*K=Q?1DMZD+1f0=lF5cNk%1auWtf4rpLqWQ>+G#@_;Lau8dMORRjdx36|=rY8+ zkN*mIlh8Vkv@SsNBysGlLC}g+e8y)s^Epgl{S;b5sPZSFQ>ihaJp=Yg=Mz!+>fM-S zA5-@`y%nzkX$F{XZ?uqB2!I%QuWHySn}7*I31^q3V@TEl*a_$y4CKZ71~l(;H2p{r z1P!(ri6(hB2EwVSssFLXNHm366Im4C9yoB|_S2_N|9fF!p;4>VWHYO)p{u2<32@(S ztjfSRa1c1OiFIe9VH_xLWX&qT0S1yERyL{1i3SHyuyNFusGDqI-UcjT{vo?`@HPMd N002ovPDHLkV1i0M$-w{s literal 0 HcmV?d00001 diff --git a/multisrc/overrides/mccms/manhuawu/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/mccms/manhuawu/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b4d91407ec2653c6e2ebef621ed3fd066dddb0df GIT binary patch literal 3326 zcmV1&kqY%fK}1lz5WJCs7b5mbrNvz8jra$o z7hcpt^+E*2BDM%6APQDNsS%?w)vVckn2${|J3Hq!a}qP`W=`iMC6tWk2k*}840Aa9 zJm;MEowLwrG#ZUYqtR$I8U+}lFm$X3!xk{ND88vgJnhBv+ z0Ib_zmZJ4OQ!Ew-NTWok6@Ux?Gsy%4$ru0}*L9zTMu|189F^+GP^@_DOeWIz5!nqeT*%I!iFM-A`?az1KeC(6~01p9SF%3W@iT~jg4T@& zTRo}f*54mL;_Z9`UcJ7sA~;w3*`y*(M1q)AdMk?`*_O^6K#;LD@ri<@_xWVxZKuls zl3X*z$yN>G8=oQqiK9w`rnGHNURn&0i{I`TxcX=_Ufy31gKd7s5GZ!!v*yi0s@E{7qGhgvLLKGBSxMiU{V&?;lAfweG=1{}Hj zJPzOW9!w(xIZV<+p0XrNRUxQ186=3=@$s>&ILZ?WZCv{aFj*t+@4SRPx#tpVQBKPe zgDD*b&~4P^ovw)w9?nLcjZ2h_Y6dey@7_V|YCH)Q{9qC+)|en2RS>AUBqBsnst}TR zpvA&Fy{>FbZm4?pwVgq}=_#mE@_vmeXDK~108Bcm#eR?qFLu@AVAhBc-;dUQQSID^ z?);ljr5sFQvHUY)p_Jr+Xyk9?yO|19a7~8S54k|X3^NXOhk!x6(Y9xw+|*uAVfMpx{~<#O*C)$_&kALzkh2+j zo2*(D*N14mLpDl<2Kjf!<~_)>H-yIrkV;@q-!M`0F(g zxU^@Kf*GJxSB#W6Uix+cDl5^Rj1k+aX*7r>NQHox@cq~eSn_{Q=xC6(-B3B77Rq>L zXbyiaaX^mLq&m9;mXSpgo?pQAKc2_b!WZ%$veh8s>D>*D?nNhGPWU)_<%GOFSj}XUdPe`~v#%C|#>ybw=xo}yb)8b?2?}k2>w=q1=G3OKJDjf6TNbo6s zD`vV(IQQeChzE0)*sktsFp;$Y#(-;+mDrKXxrbWlUvAAOM2;c~;@&HJfZQ znN5N*gIN^?B^uO&p7bbs@!-LW7f}$zi{#)*Pojr-@a|FYpdd&Dk6uIsAz>kgtYS8C zv%Bt}*_oZ`>8fW>HJM=(#+`NW(D~r&_qw4k@2ju6UsY+!PO`{)`$ra6KB1lbHl9C4 z2k#eNfX|+&4yKNt(~QtlWg}6)S%0IGF^kJt{L3@nxNliyv2D3Fdd^~SI~lQ z$Y^%~z5Z67gBO5c7Q)*+hJ-aJoy~07@{0VMlY1d{0Olgp8J$D^^d#&PP^nx z(0+7z?tI?HY6q9mx*eSJxu?}G);8(c4XoSB;+Bs_;-WfWdAFxsGw1NP554m$u@{EY z9E5c*P<~(cLP>NA`WzNz;DAu3!SH{er~>>A=>C36wF|vJaw@2afj%ARHmV8;gf%aO zL=SkOIQR-O^(@*=0Y%~xlcM+n*tPw215$$W<4C`gtv;8kdL(e}@fQFnet zx4s3}LZbU26JY!6Uq~)3;Sm}n4w1lkL9%=h&4CE1L?9qx0Hq*{2C`gyo-xj!hsO{3 zXGL_tn1wGR2VX{N=OJo<1fvCtA3-v5=ye2#b{5bpPeOPY01*M8^89?phd==9up4dC z>+7V~R_Oh{ifeYp?igp@eUaekbnygGyS_*91uADTCqIYsqkynK7)Y++5zOLY1b}G1 z?nnA%Jq9~cTS zgqfXU1pG7^gQ-j)@Fu$X6`)8y1wmj2 zMcxah8Z-Uc)09ph8DUb%=?d$BI|WcrslAUJeUHhY=*{zxt^f=_*84n6B~eKA)pMAs z^5|76TT}<6t9N^Q`X!|H0h2;Ezd_f(AV&aZYS%ZwwG+mLxvxU`nFgbvMRb54nc4+( zI2wZ*=EMaM!z9q=_voK*fTnl^Q+F*RxYZ^A|Fm~5zim`e82|1#c49k;(?UrQPz6dQ zs|%`B2+{=`HmneOY@w=xDxio$A0ddwp?NrMX-RFz_Kau7 za}ReO%4A&EGn26*O?`jTC);zaMEQ=+eVltU6P1bg&VuE${c5-A%m6a0J*F_X&(F>! z`Jte_%b?9m0B_>}xBefPhML=Zh>p7!$i6v?zN9h(%$?vlpz$);^hY=v1a$razxN?% z_Y;6R!8T>`@CjSzl73@5wsF~4XL?3rKY`O10ONk(lrlT@DWHtUHlEr)fwn#dUta`T zSNl)cGgIh=H&p0h9;jR_B4*+8e zr2P)4H*B-x74b499Ke|G+mkk0-`&L2rMI2yVfce^5Hi!ZBNi;gwXcEJUWu636u(WG z=m~(2aeD{a?6h4Q3Jn5Nl>Wb_o62cu4MAw==KID?Vi4*NYtVkY8`_nS-tAu@Pv10@ z1H1-+!i*35PP8_qh=Fi|`u(41efyhj@_^w-e@>>MM1WOGdP*pIP?Tc$*9g#W?x1n` zD$I>X=m)Q;*H*r4ot}R(*UeG$b0~F?g*{Ao9~@9 zfVTkZ2ob>OX#+DeIABZ(%bwU!3Nj!$Eaz;hFd^j6!w-xJh@g;pA22omz2ek|p#BVS z)ek@v2uFg_odLi^?0Z0TZy0FD*LkU3ejC2w1a;Un)GDv<$@0g%KC06}01APFbv6%8u`s9vxC z14$$rjm8E58rlPVgyvRORz4?5By6v2&phukNxP_Vp%)ew7S3-9NHUO3f$f#;ndhC7 zGz+pq(?YK;EiHXesZ_R1(zdOo#5uOq%3C#$d7-5w> zFAAPFnK=DELp)fo{OcnL`L99Ar)nRcm@WCZFNs7Vkw{X;|JRn;U9GL3LI3~&07*qo IM6N<$f>(4bFaQ7m literal 0 HcmV?d00001 diff --git a/multisrc/overrides/mccms/manhuawu/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/mccms/manhuawu/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0dcdb829869b97682f36d2f5c018221d9c580231 GIT binary patch literal 6181 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 DDxt$5 literal 0 HcmV?d00001 diff --git a/multisrc/overrides/mccms/manhuawu/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/mccms/manhuawu/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..7f3305374f0a8b7f080c013f0ea0d225141d9ea5 GIT binary patch literal 8030 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%0A|P*NnS6{Ue0?pCqCcGR`- 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 T6R!rr0)pXS<7{1bEP(h=hR~P} literal 0 HcmV?d00001 diff --git a/multisrc/overrides/mccms/manhuawu/src/Manhuawu.kt b/multisrc/overrides/mccms/manhuawu/src/Manhuawu.kt new file mode 100644 index 000000000..d3138e9aa --- /dev/null +++ b/multisrc/overrides/mccms/manhuawu/src/Manhuawu.kt @@ -0,0 +1,11 @@ +package eu.kanade.tachiyomi.extension.zh.manhuawu + +import eu.kanade.tachiyomi.multisrc.mccms.MCCMS +import eu.kanade.tachiyomi.multisrc.mccms.MangaDto + +class Manhuawu : MCCMS("漫画屋", "https://www.mhua5.com", hasCategoryPage = true) { + + override fun MangaDto.prepare() = copy(url = "/comic-$id.html") + + override fun getMangaId(url: String) = url.substringAfterLast('-').substringBeforeLast('.') +} diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/DecryptInterceptor.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/DecryptInterceptor.kt index b2098f511..c0021b3dc 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/DecryptInterceptor.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/DecryptInterceptor.kt @@ -1,5 +1,6 @@ package eu.kanade.tachiyomi.multisrc.mccms +import android.util.Base64 import okhttp3.Interceptor import okhttp3.MediaType.Companion.toMediaType import okhttp3.Response @@ -12,25 +13,38 @@ object DecryptInterceptor : Interceptor { override fun intercept(chain: Interceptor.Chain): Response { val request = chain.request() val response = chain.proceed(request) - val key = when (request.url.topPrivateDomain()) { - "bcebos.com" -> key1 - null -> key2 + val host = request.url.host + val type = when { + host.endsWith("bcebos.com") -> 1 + host.endsWith("mhrsrc.com") -> 2 else -> return response } - val data = decrypt(response.body.bytes(), key) + val data = decrypt(response.body.bytes(), type) val body = data.toResponseBody("image/jpeg".toMediaType()) return response.newBuilder().body(body).build() } @Synchronized - private fun decrypt(input: ByteArray, key: SecretKeySpec): ByteArray { + private fun decrypt(input: ByteArray, type: Int): ByteArray { val cipher = cipher - cipher.init(Cipher.DECRYPT_MODE, key, iv) - return cipher.doFinal(input) + val decodedInput: ByteArray + when (type) { + 1 -> { + decodedInput = input + cipher.init(Cipher.DECRYPT_MODE, key1, iv) + } + 2 -> { + decodedInput = Base64.decode(input, Base64.DEFAULT) + cipher.init(Cipher.DECRYPT_MODE, key2, iv2) + } + else -> return input + } + return cipher.doFinal(decodedInput) } private val cipher by lazy(LazyThreadSafetyMode.NONE) { Cipher.getInstance("DESede/CBC/PKCS5Padding") } private val key1 by lazy(LazyThreadSafetyMode.NONE) { SecretKeySpec("OW84U8Eerdb99rtsTXWSILDO".toByteArray(), "DESede") } - private val key2 by lazy(LazyThreadSafetyMode.NONE) { SecretKeySpec("OW84U8Eerdb99rtsTXWSILEC".toByteArray(), "DESede") } + private val key2 by lazy(LazyThreadSafetyMode.NONE) { SecretKeySpec("ys6n2GvmgEyB3rELDX1gaTBf".toByteArray(), "DESede") } private val iv by lazy(LazyThreadSafetyMode.NONE) { IvParameterSpec("SK8bncVu".toByteArray()) } + private val iv2 by lazy(LazyThreadSafetyMode.NONE) { IvParameterSpec("2pnB3NI2".toByteArray()) } } diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMS.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMS.kt index cabad627b..393448915 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMS.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMS.kt @@ -18,7 +18,6 @@ import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.Request import okhttp3.Response import rx.Observable -import rx.Single import uy.kohesive.injekt.injectLazy import kotlin.concurrent.thread @@ -49,13 +48,14 @@ open class MCCMS( .add("Referer", baseUrl) protected open fun SManga.cleanup(): SManga = this + protected open fun MangaDto.prepare(): MangaDto = this override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/api/data/comic?page=$page&size=$PAGE_SIZE&order=hits", headers) override fun popularMangaParse(response: Response): MangasPage { val list: List = response.parseAs() - return MangasPage(list.map { it.toSManga().cleanup() }, list.size >= PAGE_SIZE) + return MangasPage(list.map { it.prepare().toSManga().cleanup() }, list.size >= PAGE_SIZE) } override fun latestUpdatesRequest(page: Int): Request = @@ -91,14 +91,14 @@ open class MCCMS( .toString() return client.newCall(GET(url, headers)) .asObservableSuccess().map { response -> - val list: List = response.parseAs() + val list = response.parseAs>().map { it.prepare() } list.find { it.url == manga.url }!!.toSManga().cleanup() } } - override fun mangaDetailsParse(response: Response) = throw UnsupportedOperationException("Not used.") + override fun mangaDetailsParse(response: Response): SManga = throw UnsupportedOperationException("Not used.") - override fun fetchChapterList(manga: SManga): Observable> = Single.create> { subscriber -> + override fun fetchChapterList(manga: SManga): Observable> = Observable.fromCallable { val id = getMangaId(manga.url) val dataResponse = client.newCall(GET("$baseUrl/api/data/chapter?mid=$id", headers)).execute() val dataList: List = dataResponse.parseAs() // unordered @@ -107,12 +107,12 @@ open class MCCMS( val response = client.newCall(GET("$baseUrl/api/comic/chapter?mid=$id", headers)).execute() val list: List = response.parseAs() val result = list.map { it.toSChapter(date = dateMap[it.id.toInt()] ?: 0) }.asReversed() - subscriber.onSuccess(result) - }.toObservable() + result + } protected open fun getMangaId(url: String) = url.substringAfterLast('/') - override fun chapterListParse(response: Response) = throw UnsupportedOperationException("Not used.") + override fun chapterListParse(response: Response): List = throw UnsupportedOperationException("Not used.") override fun pageListRequest(chapter: SChapter): Request = GET(baseUrl + chapter.url, pcHeaders) diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSDto.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSDto.kt index ac7da6577..739982867 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSDto.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSDto.kt @@ -9,7 +9,8 @@ import java.util.Locale internal const val PAGE_SIZE = 30 @Serializable -class MangaDto( +data class MangaDto( + val id: String, private val name: String, private val pic: String, private val serialize: String, @@ -28,8 +29,8 @@ class MangaDto( val date = dateFormat.parse(addtime)?.time ?: 0 val isUpdating = System.currentTimeMillis() - date <= 30L * 24 * 3600 * 1000 // a month status = when { - serialize.startsWith('连') || isUpdating -> SManga.ONGOING - serialize.startsWith('完') -> SManga.COMPLETED + '连' in serialize || isUpdating -> SManga.ONGOING + '完' in serialize -> SManga.COMPLETED else -> SManga.UNKNOWN } thumbnail_url = pic diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSGenerator.kt index 88b2aad20..1c30f3e5b 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSGenerator.kt @@ -6,24 +6,8 @@ import generator.ThemeSourceGenerator class MCCMSGenerator : ThemeSourceGenerator { override val themeClass = "MCCMS" override val themePkg = "mccms" - override val baseVersionCode = 5 + override val baseVersionCode = 6 override val sources = listOf( - SingleLang( - name = "Haoman6", - baseUrl = "https://www.haoman6.com", - lang = "zh", - className = "Haoman6", - sourceName = "好漫6", - overrideVersionCode = 3, - ), - SingleLang( // previously: app2.haoman6.com, app2.haomanwu.com - name = "Haomanwu", - baseUrl = "https://move.bookcomic.org", - lang = "zh", - className = "Haomanwu", - sourceName = "好漫屋", - overrideVersionCode = 3, - ), SingleLang( // same as: www.haoman6.cc name = "Haoman6 (g-lens)", baseUrl = "https://www.g-lens.com", @@ -32,58 +16,31 @@ class MCCMSGenerator : ThemeSourceGenerator { sourceName = "好漫6 (g-lens)", overrideVersionCode = 0, ), - SingleLang( // same as: www.haoman8.com + SingleLang( // same as: caiji.haoman8.com name = "Haoman8", - baseUrl = "https://caiji.haoman8.com", + baseUrl = "https://www.haoman8.com", lang = "zh", className = "Haoman8", sourceName = "好漫8", overrideVersionCode = 0, ), SingleLang( - name = "Kuaikuai Manhua", - baseUrl = "https://mobile.manhuaorg.com", + name = "Kuaikuai Manhua 3", + baseUrl = "https://mobile3.manhuaorg.com", lang = "zh", - className = "Kuaikuai", - sourceName = "快快漫画", + className = "Kuaikuai3", + sourceName = "快快漫画3", overrideVersionCode = 0, ), SingleLang( - name = "bz Manhua", - baseUrl = "https://www2.pupumanhua.com", + name = "Manhuawu", + baseUrl = "https://www.mhua5.com", lang = "zh", - className = "bzManhua", - sourceName = "包子漫画搬运", + className = "Manhuawu", + sourceName = "漫画屋", overrideVersionCode = 0, ), // The following sources are from https://www.yy123.cyou/ and are configured to use MCCMSNsfw - SingleLang( // 103=寄宿日记, same as: www.hanman.top (different URL format) - name = "Damao Manhua", - baseUrl = "https://www.hanman.cyou", - lang = "zh", - isNsfw = true, - className = "DamaoManhua", - sourceName = "大猫漫画", - overrideVersionCode = 0, - ), - SingleLang( // 103=诡秘的姐妹 - name = "Heihei Manhua", - baseUrl = "https://www.hhmh.cyou", - lang = "zh", - isNsfw = true, - className = "HHMH", - sourceName = "嘿嘿漫画", - overrideVersionCode = 0, - ), - SingleLang( // 103=望月仙女傳說, same as: www.hanman.men - name = "Tudou Manhua", - baseUrl = "https://www.ptcomic.com", - lang = "zh", - isNsfw = true, - className = "PtComic", - sourceName = "土豆漫画", - overrideVersionCode = 0, - ), SingleLang( // 103=校园梦精记, same as: www.hmanwang.com, www.quanman8.com, www.lmmh.cc, www.xinmanba.com name = "Dida Manhua", baseUrl = "https://www.didamanhua.com", diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSWeb.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSWeb.kt index c0c7d3483..78dc6a174 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSWeb.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSWeb.kt @@ -21,7 +21,7 @@ open class MCCMSWeb( hasCategoryPage: Boolean = true, ) : MCCMS(name, baseUrl, lang, hasCategoryPage) { - fun parseListing(document: Document): MangasPage { + protected open fun parseListing(document: Document): MangasPage { val mangas = document.select(Evaluator.Class("common-comic-item")).map { SManga.create().apply { val titleElement = it.selectFirst(Evaluator.Class("comic__title"))!!.child(0) @@ -84,6 +84,12 @@ open class MCCMSWeb( override fun fetchMangaDetails(manga: SManga): Observable { if (manga.url == "/index.php/search") return Observable.just(manga) return client.newCall(GET(baseUrl + manga.url, pcHeaders)).asObservableSuccess().map { response -> + mangaDetailsParse(response) + } + } + + override fun mangaDetailsParse(response: Response): SManga { + return run { SManga.create().apply { val document = response.asJsoup().selectFirst(Evaluator.Class("de-info__box"))!! title = document.selectFirst(Evaluator.Class("comic-title"))!!.ownText() @@ -98,6 +104,12 @@ open class MCCMSWeb( override fun fetchChapterList(manga: SManga): Observable> { if (manga.url == "/index.php/search") return Observable.just(emptyList()) return client.newCall(GET(baseUrl + manga.url, pcHeaders)).asObservableSuccess().map { response -> + chapterListParse(response) + } + } + + override fun chapterListParse(response: Response): List { + return run { response.asJsoup().selectFirst(Evaluator.Class("chapter__list-box"))!!.children().map { val link = it.child(0) SChapter.create().apply {