From 357589e91274e696f9ef18610a1850c44ee12c92 Mon Sep 17 00:00:00 2001 From: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com> Date: Thu, 21 Dec 2023 17:52:58 +0500 Subject: [PATCH] MangaPark v5 (#19341) * MangaPark: cleanup fresh start * basic functionality * webview urls * filters * review changes * description logic & id in url & a filter * bump versionId to differentiate from old v2 extension which was removed * update icons * Domain preference --- src/all/mangapark/AndroidManifest.xml | 22 +- src/all/mangapark/build.gradle | 8 +- .../mangapark/res/mipmap-hdpi/ic_launcher.png | Bin 3577 -> 3415 bytes .../mangapark/res/mipmap-mdpi/ic_launcher.png | Bin 1986 -> 1923 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 5451 -> 4269 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 10219 -> 7500 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 15264 -> 10203 bytes src/all/mangapark/res/web_hi_res_512.png | Bin 74726 -> 40545 bytes .../all/mangapark/CookieInterceptor.kt | 46 ++ .../extension/all/mangapark/MangaPark.kt | 410 ++++++++--------- .../extension/all/mangapark/MangaParkDto.kt | 139 ++++++ .../all/mangapark/MangaParkFactory.kt | 207 +++++---- .../all/mangapark/MangaParkFilters.kt | 422 ++++++------------ .../all/mangapark/MangaParkPayloadDto.kt | 31 ++ .../all/mangapark/MangaParkQueries.kt | 100 +++++ .../all/mangapark/MangaParkUrlActivity.kt | 51 --- 16 files changed, 733 insertions(+), 703 deletions(-) create mode 100644 src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/CookieInterceptor.kt create mode 100644 src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkDto.kt create mode 100644 src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkPayloadDto.kt create mode 100644 src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkQueries.kt delete mode 100644 src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkUrlActivity.kt diff --git a/src/all/mangapark/AndroidManifest.xml b/src/all/mangapark/AndroidManifest.xml index 9c5dbd1fb..8072ee00d 100644 --- a/src/all/mangapark/AndroidManifest.xml +++ b/src/all/mangapark/AndroidManifest.xml @@ -1,22 +1,2 @@ - - - - - - - - - - - - - - + diff --git a/src/all/mangapark/build.gradle b/src/all/mangapark/build.gradle index 03046c8c2..b57b5c530 100644 --- a/src/all/mangapark/build.gradle +++ b/src/all/mangapark/build.gradle @@ -3,15 +3,11 @@ apply plugin: 'kotlin-android' apply plugin: 'kotlinx-serialization' ext { - extName = 'MangaPark v3' + extName = 'MangaPark' pkgNameSuffix = 'all.mangapark' extClass = '.MangaParkFactory' - extVersionCode = 18 + extVersionCode = 19 isNsfw = true } apply from: "$rootDir/common.gradle" - -dependencies { - implementation(project(':lib-cryptoaes')) -} \ No newline at end of file diff --git a/src/all/mangapark/res/mipmap-hdpi/ic_launcher.png b/src/all/mangapark/res/mipmap-hdpi/ic_launcher.png index d75a3acbcbf6c72c4998d5d49d207a7c20c6eb60..aa0ab84beb7d29056019b8266d9f016a6a279323 100644 GIT binary patch delta 3413 zcmV-b4XX0_8`m0;BYzDZNklrr}L=)GTWH*}odAt~7Of<%*F(zvyW<3y1qM#rMidRGtZ#hH|6%deXnAxhH z>6z}H?&)UdP~W58o9EEe{dd*ZU)5h#|KF;hQLG}MYQ)Dn0)LGF$uOi5phkdf3nGmS zvJ-;{NEXb;9aOy$6Z)6^E(wzoW7X?pW4*^l43BhibMK*6sXVQLuCtBN4!^oyud3A6 zRc9Z~NKcwReta3;(5lLE0BK_5;@U(+j#{tLXoes--Uzvilohg%Ly7rz8AO^IDivt; zIw;rc>rd_4^?ysu+?bf#s8+p{YSsW!fAGNvzH{GvYpbiP+c>A$W(RIl z4qS#KSBu3XDS!|V@VIaz|NYi}{{J+nCC(sa3dtL0x`o11ZHt3uTZ)T{R`%=^^dXM- zK+Mgo0pxl9TJHP)Z2}fJ1t2>it!x-GK(`BTecmgiJpokNP=LG;pe5D-Ql^YTO4w;I zWy4qi^nVd*Sz%XzlqsSR9M*#yaJs!*%*Y`70c3YzoDL2@p4t^4y_IR+riX7Q)Rhn8 z02kBC2!LiuB`)iHy6;TDT^?Qa;r?2&{!2!HBePu2O5nUe7%~2#)UJcoH86+ zY-W(3%q%9SOHG{?uIAo>EBGlWz7LW8L!f&n|9}4rpqg4OLPaE`l7!uYIrj7{% zH&-m_6tbtjUI!<#@*w%tHMoVKlvh^MP^Qa!AmFb|84O+??vE}&q;OSDE!-=ug7mXD z@PCs71d_oujhPgF_4RHFZ_J2*fYv@%0jjO5hm!jbAoI#C`0eOLD8=twK)KjzG%A=k zEdqLmw0SfEDzB`8lUez2;aVYF$|;8G8ZDzJ7aZnqqg7*vb%#mAdr2Boi*C6m={&M8 z5AK#x{$?4kxB%&K;4Z;_uy9rsKfX!c!GBIcTB(ceOvr@9V^=_1Z|)jMfkQesanryj zuRjCc5-w3yQwK{o9%N#S95@Exael@4GjDnX^a%}6z#=CDbSyImzTcg}xPTBCE^~~I z#{4seVNq|%#9`N=Oo&U)GXKt@jF3GnBHcUs!~7YM;3_+#IT;`=2GNyU4#D-C)PGjt z3+q-~aOk^V3vZZ@PrQ|{c!RQ}`~iHt{s7#^fGibzSoW}Yq#*suY&!yF<e$yn!vI*o&`6|vc=^gxELu?P1Eyt2~c>qT;LGm;IPWS zJ9{K_3TkPxg~)L*{UU7t{fuJQVjc&FRWZ*F!1&hr(E{kgwIcWqU4jZp6H7!qL3k*< zdl3BnFHbUsCkd4kU;gI^P=5?+D0|rZb_i?%3uZ=13Pi1ZcO=cuj~P=M)njUi?~Bj@<&Ch5PvkGYjLj`)~^%9 zj1M;y#yoK}KqAK9zE=S&zE1?2?u8=u+=a7HTfb&79}CW;Q&%BA30cS)gz_W;?+ms% zuI1n5n<{t`-0NESc);5j-z=wmM**al?zbGuxC}ql}Jbwg!Kbj4D(EZ2_%`wgl2|rJw#1UXZR4;gLL~jQ%=&JQq4X%=_ zwkARL4O-?l2r294ssUty)m>)iyF?2l1 z59taM(Y>g2pdq&HKLrWtmn>T;T=RKI>tV*Ya2Ul)9Gwi%UW^&L4`a>5@xYF4TfnQ& z4~0#;k71vvh>wNB0N$dR2fP^*1%cFDGfK(*DtLR<9$vOCbS>e{Is`U{cV>@*rtYpB ze%qtvs(?XSt$z-dZBBrkTO}sF=+@Cgx-q_g=HgBGc1M~yZV14!7Qn|n)txD5g|g$o z8Q6E^g2|QnF3kIj`J<_E${*0Pz4HOOjLq|PzZ}Iru{k-U*h91)+&7phG{401Be%c| zpeasRm~M7OYRxX58_l$6g_4hr`;}V`LurMfh&7ETaDOfKI0fs-@Xjy|bt2uk`wVPr z+RHGAVgePYI}gP}m_0mMDp@JkF(R}!L zW-hGVp30d$`G|;>J1`3y zw|(_<3Q)4g3W4K-{ho!hMldm=p>iEpQdS|0%)M~)2rZj=BIpCK_Z`65{o!DM5`T|h zf$e{s1}ZbSMzY^&;f|JG#Dt#kaa@W0_SZD#XEtC5V~doQj>R%(Ilw6Xe1q9M&1zhs zm@^l5eHh$|D-HyR_UQZ&cLLJUNUnkG?P)=f8t|0psnyc`qpf>SKniBUby`C^gt~vz zF_Gi9CFGzn|9R{n4pikOuPvrzUN z+P)RE_4j4mqM>VRser-N6MwHI_Sqs- z7}K62Z)~zr?2!iBfdEnFdJ?l@Z%=n-x7aw`rJ;Ohmo4Vo^I8W2L`fONA=)Is+iPe~ z{T)7*0|BbQZFSTNrS6<9@xtL4SiOM*0eZNG+3W6&0LdWP2#`|%@=W_PYf;BeA@8Ww zYO62Q*^Btj8^^#POjUGwIe$4T`u7Z7iU%6>Ius=&p0RuOPaYN#^@WS8OEak#>YQhk zJ?~@ysIIQAJR?1A!K5)Gx8s2Zy->%zk{J;Z5%k%*4I6`lJ3VDj^&XY6@^W+1mMonA zxA^#Ys+$`0N+xCKw94i)JUTk$lVzWM-nLzb-fph0l%Cp_?mlF6$bYTswb}>y`FZD; ze)!(PxScz*Q6<`tjqgfWt|?fne5huimmhrk^a&4~HD}JSb{#u}YSb=G9P;g!#2(Ri=jBR6796vPP>+UQ0jHQl zE046|N#KaBNGURu08XK;5%eLz9%~mf0z`n&9vk}D^j}l350eEr4uPD8R0AQ`9|0cr%uHgEhN^J8?fsv#Wb00000NkvXXu0mjf&SHHx delta 3576 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

n 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 BE}8%U diff --git a/src/all/mangapark/res/mipmap-xxhdpi/ic_launcher.png b/src/all/mangapark/res/mipmap-xxhdpi/ic_launcher.png index 764ff8bcb0814ca0a1c75d637589e2ed51913d94..caf61063c0f618321cc7765292d79457c9ab05c1 100644 GIT binary patch literal 7500 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 A<^TWy literal 15264 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 Rg^k<-3NotFHIn8b{|Anudhq}N diff --git a/src/all/mangapark/res/web_hi_res_512.png b/src/all/mangapark/res/web_hi_res_512.png index f789273b63021a1971b5d6d0782f64b761080e17..3d37f6a4c774aa93621d641dd6abc65cc8493164 100644 GIT binary patch literal 40545 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 diff --git a/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/CookieInterceptor.kt b/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/CookieInterceptor.kt new file mode 100644 index 000000000..09a4691b7 --- /dev/null +++ b/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/CookieInterceptor.kt @@ -0,0 +1,46 @@ +package eu.kanade.tachiyomi.extension.all.mangapark + +import android.util.Log +import android.webkit.CookieManager +import okhttp3.Interceptor +import okhttp3.Response + +class CookieInterceptor( + private val domain: String, + private val key: String, + private val value: String, +) : Interceptor { + + init { + val url = "https://$domain/" + val cookie = "$key=$value; Domain=$domain; Path=/" + setCookie(url, cookie) + } + + override fun intercept(chain: Interceptor.Chain): Response { + val request = chain.request() + if (!request.url.host.endsWith(domain)) return chain.proceed(request) + + val cookie = "$key=$value" + val cookieList = request.header("Cookie")?.split("; ") ?: emptyList() + if (cookie in cookieList) return chain.proceed(request) + + setCookie("https://$domain/", "$cookie; Domain=$domain; Path=/") + val prefix = "$key=" + val newCookie = buildList(cookieList.size + 1) { + cookieList.filterNotTo(this) { it.startsWith(prefix) } + add(cookie) + }.joinToString("; ") + val newRequest = request.newBuilder().header("Cookie", newCookie).build() + return chain.proceed(newRequest) + } + + private fun setCookie(url: String, value: String) { + try { + CookieManager.getInstance().setCookie(url, value) + } catch (e: Exception) { + // Probably running on Tachidesk + Log.e("MangaPark", "failed to set cookie", e) + } + } +} diff --git a/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaPark.kt b/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaPark.kt index 108711b15..affd6491d 100644 --- a/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaPark.kt +++ b/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaPark.kt @@ -1,289 +1,251 @@ package eu.kanade.tachiyomi.extension.all.mangapark -import eu.kanade.tachiyomi.lib.cryptoaes.CryptoAES -import eu.kanade.tachiyomi.lib.cryptoaes.Deobfuscator +import android.app.Application +import android.widget.Toast +import androidx.preference.ListPreference +import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.asObservableSuccess +import eu.kanade.tachiyomi.network.POST +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.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.ParsedHttpSource +import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.util.asJsoup +import kotlinx.serialization.decodeFromString +import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json -import kotlinx.serialization.json.jsonArray -import kotlinx.serialization.json.jsonPrimitive import okhttp3.HttpUrl.Companion.toHttpUrl -import okhttp3.OkHttpClient +import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.Request +import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.Response -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import rx.Observable +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy -import java.util.Calendar -import java.util.Locale -import java.util.concurrent.TimeUnit -open class MangaPark( - final override val lang: String, - private val siteLang: String, -) : ParsedHttpSource() { +class MangaPark( + override val lang: String, + private val siteLang: String = lang, +) : HttpSource(), ConfigurableSource { - override val name: String = "MangaPark v3" - - override val baseUrl: String = "https://mangapark.net" + override val name = "MangaPark" override val supportsLatest = true - override val id: Long = when (lang) { - "zh-Hans" -> 6306867705763005424 - "zh-Hant" -> 4563855043528673539 - else -> super.id - } + override val versionId = 2 + + private val preference = + Injekt.get().getSharedPreferences("source_$id", 0x0000) + + private val domain = + preference.getString(MIRROR_PREF_KEY, MIRROR_PREF_DEFAULT) ?: MIRROR_PREF_DEFAULT + + override val baseUrl = "https://$domain" + + private val apiUrl = "$baseUrl/apo/" private val json: Json by injectLazy() - private val mpFilters = MangaParkFilters() - - override val client: OkHttpClient = network.cloudflareClient.newBuilder() - .connectTimeout(10, TimeUnit.SECONDS) - .readTimeout(30, TimeUnit.SECONDS) + override val client = network.cloudflareClient.newBuilder() + .addInterceptor(CookieInterceptor(domain, "nsfw", "2")) + .rateLimitHost(apiUrl.toHttpUrl(), 1) .build() - // Site Browse Helper - private fun browseMangaSelector(): String = "div#subject-list div.col" + override fun headersBuilder() = super.headersBuilder() + .set("Referer", "$baseUrl/") - private fun browseNextPageSelector(): String = - "div#mainer nav.d-none .pagination .page-item:last-of-type:not(.disabled)" + override fun popularMangaRequest(page: Int) = searchMangaRequest(page, "", SortFilter.POPULAR) + override fun popularMangaParse(response: Response) = searchMangaParse(response) - private fun browseMangaFromElement(element: Element): SManga { - return SManga.create().apply { - setUrlWithoutDomain(element.select("a.fw-bold").attr("href")) - title = element.select("a.fw-bold").text() - thumbnail_url = element.select("a.position-relative img").attr("abs:src") - } - } + override fun latestUpdatesRequest(page: Int) = searchMangaRequest(page, "", SortFilter.LATEST) + override fun latestUpdatesParse(response: Response) = searchMangaParse(response) - // Latest - override fun latestUpdatesRequest(page: Int): Request = - GET("$baseUrl/browse?sort=update&page=$page") + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val payload = GraphQL( + SearchVariables( + SearchPayload( + page = page, + size = size, + query = query.takeUnless(String::isEmpty), + incGenres = filters.firstInstanceOrNull()?.included, + excGenres = filters.firstInstanceOrNull()?.excluded, + incTLangs = listOf(siteLang), + incOLangs = filters.firstInstanceOrNull()?.checked, + sortby = filters.firstInstanceOrNull()?.selected, + chapCount = filters.firstInstanceOrNull()?.selected, + origStatus = filters.firstInstanceOrNull()?.selected, + siteStatus = filters.firstInstanceOrNull()?.selected, + ), + ), + SEARCH_QUERY, + ).toJsonRequestBody() - override fun latestUpdatesSelector(): String = browseMangaSelector() - - override fun latestUpdatesNextPageSelector(): String = browseNextPageSelector() - - override fun latestUpdatesFromElement(element: Element): SManga = - browseMangaFromElement(element) - - // Popular - override fun popularMangaRequest(page: Int): Request = - GET("$baseUrl/browse?sort=d007&page=$page") - - override fun popularMangaSelector(): String = browseMangaSelector() - - override fun popularMangaNextPageSelector(): String = browseNextPageSelector() - - override fun popularMangaFromElement(element: Element): SManga = - browseMangaFromElement(element) - - // Search - override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { - return when { - query.startsWith(PREFIX_ID_SEARCH) -> fetchSearchIdManga(query) - query.isNotBlank() -> fetchSearchManga(page, query) - else -> fetchGenreSearchManga(page, filters) - } - } - - // Search With Manga ID - private fun fetchSearchIdManga(idWithPrefix: String): Observable { - val id = idWithPrefix.removePrefix(PREFIX_ID_SEARCH) - return client.newCall(GET("$baseUrl/comic/$id", headers)) - .asObservableSuccess() - .map { response -> - MangasPage(listOf(mangaDetailsParse(response.asJsoup())), false) - } - } - - // Search WIth Query - private fun fetchSearchManga(page: Int, query: String): Observable { - return client.newCall(GET("$baseUrl/search?word=$query&page=$page", headers)) - .asObservableSuccess() - .map { response -> - searchMangaParse(response) - } - } - - // Search With Filter - private fun fetchGenreSearchManga(page: Int, filters: FilterList): Observable { - val url = "$baseUrl/browse".toHttpUrl().newBuilder() - .addQueryParameter("page", page.toString()).let { mpFilters.addFiltersToUrl(it, filters) } - - return client.newCall(GET(url, headers)) - .asObservableSuccess() - .map { response -> - searchMangaParse(response) - } - } - - override fun searchMangaSelector(): String = "div#search-list div.col" - - override fun searchMangaNextPageSelector(): String = - "div#mainer nav.d-none .pagination .page-item:last-of-type:not(.disabled)" - - override fun searchMangaFromElement(element: Element): SManga { - return SManga.create().apply { - setUrlWithoutDomain(element.select("a.fw-bold").attr("href")) - title = element.select("a.fw-bold").text() - thumbnail_url = element.select("a.position-relative img").attr("abs:src") - } + return POST(apiUrl, headers, payload) } override fun searchMangaParse(response: Response): MangasPage { - val document = response.asJsoup() - val isBrowse = response.request.url.pathSegments[0] == "browse" - val mangaSelector = if (isBrowse) browseMangaSelector() else searchMangaSelector() - val nextPageSelector = if (isBrowse) browseNextPageSelector() else searchMangaNextPageSelector() + runCatching(::getGenres) - val mangas = document.select(mangaSelector).map { element -> - if (isBrowse) browseMangaFromElement(element) else searchMangaFromElement(element) - } + val result = response.parseAs() - val hasNextPage = document.select(nextPageSelector).first() != null + val entries = result.data.searchComics.items.map { it.data.toSManga() } + val hasNextPage = entries.size == size - return MangasPage(mangas, hasNextPage) + return MangasPage(entries, hasNextPage) } - // Manga Details - override fun mangaDetailsParse(document: Document): SManga { - val infoElement = document.select("div#mainer div.container-fluid") + private var genreCache: List> = emptyList() + private var genreFetchAttempt = 0 - return SManga.create().apply { - setUrlWithoutDomain(infoElement.select("h3.item-title a").attr("href")) + private fun getGenres() { + if (genreCache.isEmpty() && genreFetchAttempt < 3) { + val elements = runCatching { + client.newCall(GET("$baseUrl/search", headers)).execute() + .use { it.asJsoup() } + .select("div.flex-col:contains(Genres) div.whitespace-nowrap") + }.getOrNull().orEmpty() - title = infoElement.select("h3.item-title").text() + genreCache = elements.mapNotNull { + val name = it.selectFirst("span.whitespace-nowrap") + ?.text()?.takeUnless(String::isEmpty) + ?: return@mapNotNull null - description = infoElement.select("div.limit-height-body") - .select("h5.text-muted, div.limit-html") - .joinToString("\n\n") { it.text().trim() } + "\n\nAlt. Titles" + infoElement - .select("div.alias-set").text() - .split("/").joinToString(", ") { it.trim() } + val key = it.attr("q:key") + .takeUnless(String::isEmpty) ?: return@mapNotNull null - author = infoElement.select("div.attr-item:contains(author) a") - .joinToString { it.text().trim() } - - status = infoElement.select("div.attr-item:contains(status) span") - .text().parseStatus() - - thumbnail_url = infoElement.select("div.detail-set div.attr-cover img").attr("abs:src") - - genre = infoElement.select("div.attr-item:contains(genres) span span") - .joinToString { it.text().trim() } + Pair(name, key) + } + genreFetchAttempt++ } } - private fun String?.parseStatus() = if (this == null) { - SManga.UNKNOWN - } else { - when { - this.lowercase(Locale.US).contains("ongoing") -> SManga.ONGOING - this.lowercase(Locale.US).contains("hiatus") -> SManga.ONGOING - this.lowercase(Locale.US).contains("completed") -> SManga.COMPLETED - else -> SManga.UNKNOWN + override fun getFilterList(): FilterList { + val filters = mutableListOf>( + SortFilter(), + OriginalLanguageFilter(), + OriginalStatusFilter(), + UploadStatusFilter(), + ChapterCountFilter(), + ) + + if (genreCache.isEmpty()) { + filters += listOf( + Filter.Separator(), + Filter.Header("Press 'reset' to attempt to load genres"), + ) + } else { + filters.addAll(1, listOf(GenreFilter(genreCache))) } + + return FilterList(filters) + } + + override fun mangaDetailsRequest(manga: SManga): Request { + val payload = GraphQL( + IdVariables(manga.url.substringAfterLast("#")), + DETAILS_QUERY, + ).toJsonRequestBody() + + return POST(apiUrl, headers, payload) + } + + override fun mangaDetailsParse(response: Response): SManga { + val result = response.parseAs() + + return result.data.comic.data.toSManga() + } + + override fun getMangaUrl(manga: SManga) = baseUrl + manga.url.substringBeforeLast("#") + + override fun chapterListRequest(manga: SManga): Request { + val payload = GraphQL( + IdVariables(manga.url.substringAfterLast("#")), + CHAPTERS_QUERY, + ).toJsonRequestBody() + + return POST(apiUrl, headers, payload) } override fun chapterListParse(response: Response): List { - val chapterListHtml = response.asJsoup().select("div.episode-list #chap-index") - return chapterListHtml.flatMap { it.select(chapterListSelector()).map { chapElem -> chapterFromElement(chapElem) } } + val result = response.parseAs() + + return result.data.chapterList.map { it.data.toSChapter() }.reversed() } - override fun chapterListSelector(): String { - return when (lang) { - "en" -> "div.p-2:not(:has(.px-3))" - // To handle both "/comic/1/test/c0-en" and "/comic/1/test/c0-en/" like url - else -> "div.p-2:has(.px-3 a[href\$=\"$siteLang\"]), div.p-2:has(.px-3 a[href\$=\"$siteLang/\"])" + override fun getChapterUrl(chapter: SChapter) = baseUrl + chapter.url.substringBeforeLast("#") + + override fun pageListRequest(chapter: SChapter): Request { + val payload = GraphQL( + IdVariables(chapter.url.substringAfterLast("#")), + PAGES_QUERY, + ).toJsonRequestBody() + + return POST(apiUrl, headers, payload) + } + + override fun pageListParse(response: Response): List { + val result = response.parseAs() + + return result.data.chapterPages.data.imageFile.urlList.mapIndexed { idx, url -> + Page(idx, "", url) } } - override fun chapterFromElement(element: Element): SChapter { - val urlElement = element.select("a.ms-3") + override fun setupPreferenceScreen(screen: PreferenceScreen) { + ListPreference(screen.context).apply { + key = MIRROR_PREF_KEY + title = "Preferred Mirror" + entries = mirrors + entryValues = mirrors + setDefaultValue(MIRROR_PREF_DEFAULT) + summary = "%s" - return SChapter.create().apply { - name = urlElement.text().removePrefix("Ch").trim() - date_upload = element.select("i.text-nowrap").text().parseChapterDate() - setUrlWithoutDomain(urlElement.attr("href").removeSuffix("/")) - } - } - - private fun String?.parseChapterDate(): Long { - if (this == null) return 0L - val value = this.split(' ')[0].toInt() - - return when (this.split(' ')[1].removeSuffix("s")) { - "sec" -> Calendar.getInstance().apply { - add(Calendar.SECOND, value * -1) - }.timeInMillis - "min" -> Calendar.getInstance().apply { - add(Calendar.MINUTE, value * -1) - }.timeInMillis - "hour" -> Calendar.getInstance().apply { - add(Calendar.HOUR_OF_DAY, value * -1) - }.timeInMillis - "day" -> Calendar.getInstance().apply { - add(Calendar.DATE, value * -1) - }.timeInMillis - "week" -> Calendar.getInstance().apply { - add(Calendar.DATE, value * 7 * -1) - }.timeInMillis - "month" -> Calendar.getInstance().apply { - add(Calendar.MONTH, value * -1) - }.timeInMillis - "year" -> Calendar.getInstance().apply { - add(Calendar.YEAR, value * -1) - }.timeInMillis - else -> { - return 0L + setOnPreferenceChangeListener { _, _ -> + Toast.makeText(screen.context, "Restart Tachiyomi to apply changes", Toast.LENGTH_LONG).show() + true } - } + }.also(screen::addPreference) } - override fun pageListParse(document: Document): List { - if (document.selectFirst("div.wrapper-deleted") != null) { - throw Exception("The chapter content seems to be deleted.\n\nContact the site owner if possible.") - } + private inline fun Response.parseAs(): T = + use { body.string() }.let(json::decodeFromString) - val script = document.selectFirst("script:containsData(imgHttpLis):containsData(amWord):containsData(amPass)")?.html() - ?: throw RuntimeException("Couldn't find script with image data.") + private inline fun List<*>.firstInstanceOrNull(): T? = + filterIsInstance().firstOrNull() - val imgHttpLisString = script.substringAfter("const imgHttpLis =").substringBefore(";").trim() - val imgHttpLis = json.parseToJsonElement(imgHttpLisString).jsonArray.map { it.jsonPrimitive.content } - val amWord = script.substringAfter("const amWord =").substringBefore(";").trim() - val amPass = script.substringAfter("const amPass =").substringBefore(";").trim() + private inline fun T.toJsonRequestBody() = + json.encodeToString(this).toRequestBody(JSON_MEDIA_TYPE) - val evaluatedPass: String = Deobfuscator.deobfuscateJsPassword(amPass) - val imgAccListString = CryptoAES.decrypt(amWord.removeSurrounding("\""), evaluatedPass) - val imgAccList = json.parseToJsonElement(imgAccListString).jsonArray.map { it.jsonPrimitive.content } - - return imgHttpLis.zip(imgAccList).mapIndexed { i, (imgUrl, imgAcc) -> - Page(i, imageUrl = "$imgUrl?$imgAcc") - } + override fun imageUrlParse(response: Response): String { + throw UnsupportedOperationException("Not Used") } - override fun getFilterList() = mpFilters.getFilterList() - - // Unused Stuff - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request = - throw UnsupportedOperationException("Not used") - - override fun imageUrlParse(document: Document): String = - throw UnsupportedOperationException("Not used") - companion object { + private const val size = 24 + private val JSON_MEDIA_TYPE = "application/json; charset=utf-8".toMediaTypeOrNull() - const val PREFIX_ID_SEARCH = "id:" + private const val MIRROR_PREF_KEY = "pref_mirror" + private const val MIRROR_PREF_DEFAULT = "mangapark.net" + private val mirrors = arrayOf( + "mangapark.net", + "mangapark.com", + "mangapark.org", + "mangapark.me", + "mangapark.io", + "mangapark.to", + "comicpark.org", + "comicpark.to", + "readpark.org", + "readpark.net", + "parkmanga.com", + "parkmanga.net", + "parkmanga.org", + "mpark.to", + ) } } diff --git a/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkDto.kt b/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkDto.kt new file mode 100644 index 000000000..6293244c0 --- /dev/null +++ b/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkDto.kt @@ -0,0 +1,139 @@ +package eu.kanade.tachiyomi.extension.all.mangapark + +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import org.jsoup.Jsoup + +typealias SearchResponse = Data +typealias DetailsResponse = Data +typealias ChapterListResponse = Data +typealias PageListResponse = Data + +@Serializable +data class Data(val data: T) + +@Serializable +data class Items(val items: List) + +@Serializable +data class SearchComics( + @SerialName("get_searchComic") val searchComics: Items>, +) + +@Serializable +data class ComicNode( + @SerialName("get_comicNode") val comic: Data, +) + +@Serializable +data class MangaParkComic( + val id: String, + val name: String, + val altNames: List? = null, + val authors: List? = null, + val artists: List? = null, + val genres: List? = null, + val originalStatus: String? = null, + val uploadStatus: String? = null, + val summary: String? = null, + @SerialName("urlCoverOri") val cover: String? = null, + val urlPath: String, +) { + fun toSManga() = SManga.create().apply { + url = "$urlPath#$id" + title = name + thumbnail_url = cover + author = authors?.joinToString() + artist = artists?.joinToString() + description = buildString { + val desc = summary?.let { Jsoup.parse(it).text() } + val names = altNames?.takeUnless { it.isEmpty() } + ?.joinToString("\n") { "• ${it.trim()}" } + + if (desc.isNullOrEmpty()) { + if (!names.isNullOrEmpty()) { + append("Alternative Names:\n", names) + } + } else { + append(desc) + if (!names.isNullOrEmpty()) { + append("\n\nAlternative Names:\n", names) + } + } + } + genre = genres?.joinToString { it.replace("_", " ").toCamelCase() } + status = when (originalStatus) { + "ongoing" -> SManga.ONGOING + "completed" -> { + if (uploadStatus == "ongoing") { + SManga.PUBLISHING_FINISHED + } else { + SManga.COMPLETED + } + } + "hiatus" -> SManga.ON_HIATUS + "cancelled" -> SManga.CANCELLED + else -> SManga.UNKNOWN + } + initialized = true + } + + companion object { + private fun String.toCamelCase(): String { + val result = StringBuilder(length) + var capitalize = true + for (char in this) { + result.append( + if (capitalize) { + char.uppercase() + } else { + char.lowercase() + }, + ) + capitalize = char.isWhitespace() + } + return result.toString() + } + } +} + +@Serializable +data class ChapterList( + @SerialName("get_comicChapterList") val chapterList: List>, +) + +@Serializable +data class MangaParkChapter( + val id: String, + @SerialName("dname") val displayName: String, + val title: String? = null, + val dateCreate: Long? = null, + val dateModify: Long? = null, + val urlPath: String, +) { + fun toSChapter() = SChapter.create().apply { + url = "$urlPath#$id" + name = buildString { + append(displayName) + title?.let { append(": ", it) } + } + date_upload = dateModify ?: dateCreate ?: 0L + } +} + +@Serializable +data class ChapterPages( + @SerialName("get_chapterNode") val chapterPages: Data, +) + +@Serializable +data class ImageFiles( + val imageFile: UrlList, +) + +@Serializable +data class UrlList( + val urlList: List, +) diff --git a/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkFactory.kt b/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkFactory.kt index ebf77e545..500bb871a 100644 --- a/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkFactory.kt +++ b/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkFactory.kt @@ -1,112 +1,107 @@ package eu.kanade.tachiyomi.extension.all.mangapark -import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceFactory class MangaParkFactory : SourceFactory { - override fun createSources(): List = languages.map { MangaPark(it.lang, it.siteLang) } + override fun createSources() = listOf( + MangaPark("af"), + MangaPark("sq"), + MangaPark("am"), + MangaPark("ar"), + MangaPark("hy"), + MangaPark("az"), + MangaPark("be"), + MangaPark("bn"), + MangaPark("bs"), + MangaPark("bg"), + MangaPark("my"), + MangaPark("km"), + MangaPark("ca"), + MangaPark("ceb"), + MangaPark("zh"), + MangaPark("zh-Hans", "zh_hk"), + MangaPark("zh-Hant", "zh_tw"), + MangaPark("hr"), + MangaPark("cs"), + MangaPark("da"), + MangaPark("nl"), + MangaPark("en"), + MangaPark("eo"), + MangaPark("et"), + MangaPark("fo"), + MangaPark("fil"), + MangaPark("fi"), + MangaPark("fr"), + MangaPark("ka"), + MangaPark("de"), + MangaPark("el"), + MangaPark("gn"), + MangaPark("ht"), + MangaPark("ha"), + MangaPark("he"), + MangaPark("hi"), + MangaPark("hu"), + MangaPark("is"), + MangaPark("ig"), + MangaPark("id"), + MangaPark("ga"), + MangaPark("it"), + MangaPark("ja"), + MangaPark("jv"), + MangaPark("kk"), + MangaPark("ko"), + MangaPark("ku"), + MangaPark("ky"), + MangaPark("lo"), + MangaPark("lv"), + MangaPark("lt"), + MangaPark("lb"), + MangaPark("mk"), + MangaPark("mg"), + MangaPark("ms"), + MangaPark("ml"), + MangaPark("mt"), + MangaPark("mi"), + MangaPark("mo"), + MangaPark("mn"), + MangaPark("ne"), + MangaPark("no"), + MangaPark("ny"), + MangaPark("ps"), + MangaPark("fa"), + MangaPark("pl"), + MangaPark("pt"), + MangaPark("pt-BR", "pt_br"), + MangaPark("ro"), + MangaPark("rm"), + MangaPark("ru"), + MangaPark("sm"), + MangaPark("sr"), + MangaPark("sh"), + MangaPark("st"), + MangaPark("sn"), + MangaPark("sd"), + MangaPark("si"), + MangaPark("sk"), + MangaPark("sl"), + MangaPark("so"), + MangaPark("es"), + MangaPark("es-419", "es_419"), + MangaPark("sw"), + MangaPark("sv"), + MangaPark("tg"), + MangaPark("ta"), + MangaPark("th"), + MangaPark("ti"), + MangaPark("to"), + MangaPark("tr"), + MangaPark("tk"), + MangaPark("uk"), + MangaPark("ur"), + MangaPark("uz"), + MangaPark("vi"), + MangaPark("yo"), + MangaPark("zu"), + MangaPark("other", "_t"), + ) } - -class LanguageOption(val lang: String, val siteLang: String = lang) -private val languages = listOf( - // LanguageOption("",""), - LanguageOption("af"), - LanguageOption("sq"), - LanguageOption("am"), - LanguageOption("ar"), - LanguageOption("hy"), - LanguageOption("az"), - LanguageOption("be"), - LanguageOption("bn"), - LanguageOption("bs"), - LanguageOption("bg"), - LanguageOption("my"), - LanguageOption("km"), - LanguageOption("ca"), - LanguageOption("ceb"), - LanguageOption("zh"), - LanguageOption("zh-Hans", "zh_hk"), - LanguageOption("zh-Hant", "zh_tw"), - LanguageOption("hr"), - LanguageOption("cs"), - LanguageOption("da"), - LanguageOption("nl"), - LanguageOption("en"), - LanguageOption("eo"), - LanguageOption("et"), - LanguageOption("fo"), - LanguageOption("fil"), - LanguageOption("fi"), - LanguageOption("fr"), - LanguageOption("ka"), - LanguageOption("de"), - LanguageOption("el"), - LanguageOption("gn"), - LanguageOption("ht"), - LanguageOption("ha"), - LanguageOption("he"), - LanguageOption("hi"), - LanguageOption("hu"), - LanguageOption("is"), - LanguageOption("ig"), - LanguageOption("id"), - LanguageOption("ga"), - LanguageOption("it"), - LanguageOption("ja"), - LanguageOption("jv"), - LanguageOption("kk"), - LanguageOption("ko"), - LanguageOption("ku"), - LanguageOption("ky"), - LanguageOption("lo"), - LanguageOption("lv"), - LanguageOption("lt"), - LanguageOption("lb"), - LanguageOption("mk"), - LanguageOption("mg"), - LanguageOption("ms"), - LanguageOption("ml"), - LanguageOption("mt"), - LanguageOption("mi"), - LanguageOption("mo"), - LanguageOption("mn"), - LanguageOption("ne"), - LanguageOption("no"), - LanguageOption("ny"), - LanguageOption("ps"), - LanguageOption("fa"), - LanguageOption("pl"), - LanguageOption("pt"), - LanguageOption("pt-BR", "pt_br"), - LanguageOption("ro"), - LanguageOption("rm"), - LanguageOption("ru"), - LanguageOption("sm"), - LanguageOption("sr"), - LanguageOption("sh"), - LanguageOption("st"), - LanguageOption("sn"), - LanguageOption("sd"), - LanguageOption("si"), - LanguageOption("sk"), - LanguageOption("sl"), - LanguageOption("so"), - LanguageOption("es"), - LanguageOption("es-419", "es_419"), - LanguageOption("sw"), - LanguageOption("sv"), - LanguageOption("tg"), - LanguageOption("ta"), - LanguageOption("th"), - LanguageOption("ti"), - LanguageOption("to"), - LanguageOption("tr"), - LanguageOption("tk"), - LanguageOption("uk"), - LanguageOption("ur"), - LanguageOption("uz"), - LanguageOption("vi"), - LanguageOption("yo"), - LanguageOption("zu"), - LanguageOption("other", "_t"), -) diff --git a/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkFilters.kt b/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkFilters.kt index f78fe81d9..ede975a67 100644 --- a/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkFilters.kt +++ b/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkFilters.kt @@ -2,300 +2,132 @@ package eu.kanade.tachiyomi.extension.all.mangapark import eu.kanade.tachiyomi.source.model.Filter import eu.kanade.tachiyomi.source.model.FilterList -import okhttp3.HttpUrl -class MangaParkFilters { - - internal fun getFilterList(): FilterList { - return FilterList( - Filter.Header("NOTE: Ignored if using text search!"), - Filter.Separator(), - SortFilter("Sort By", defaultSort, sortList), - Filter.Separator(), - MinChapterFilter(), - MaxChapterFilter(), - Filter.Separator(), - PublicationFilter("Status", publicationList, 0), - TypeFilter("Type", typeList), - DemographicFilter("Demographic", demographicList), - ContentFilter("Content", contentList), - GenreFilter("Genre", genreList), - ) - } - - internal fun addFiltersToUrl(url: HttpUrl.Builder, filters: FilterList): String { - var sort = "rating.za" - var minChap: Int? = null - var maxChap: Int? = null - var publication: String? = null - val includedGenre = mutableListOf() - val excludedGenre = mutableListOf() - - filters.forEach { filter -> - when (filter) { - is SortFilter -> { - val sortType = sortList[filter.state!!.index].value - val sortDirection = if (filter.state!!.ascending) "az" else "za" - sort = "$sortType.$sortDirection" - } - is MinChapterFilter -> { - try { - minChap = filter.state.toInt() - } catch (_: NumberFormatException) { - // Do Nothing - } - } - is MaxChapterFilter -> { - try { - maxChap = filter.state.toInt() - } catch (_: NumberFormatException) { - // Do Nothing - } - } - is PublicationFilter -> { - if (filter.state != 0) { - publication = publicationList[filter.state].value - } - } - is TypeFilter -> { - includedGenre += filter.state.filter { it.isIncluded() }.map { it.value } - excludedGenre += filter.state.filter { it.isExcluded() }.map { it.value } - } - is DemographicFilter -> { - includedGenre += filter.state.filter { it.isIncluded() }.map { it.value } - excludedGenre += filter.state.filter { it.isExcluded() }.map { it.value } - } - is ContentFilter -> { - includedGenre += filter.state.filter { it.isIncluded() }.map { it.value } - excludedGenre += filter.state.filter { it.isExcluded() }.map { it.value } - } - is GenreFilter -> { - includedGenre += filter.state.filter { it.isIncluded() }.map { it.value } - excludedGenre += filter.state.filter { it.isExcluded() }.map { it.value } - } - else -> {} - } - } - - return url.apply { - if (sort != "rating.za") { - addQueryParameter( - "sort", - sort, - ) - } - if (includedGenre.isNotEmpty() || excludedGenre.isNotEmpty()) { - addQueryParameter( - "genres", - includedGenre.joinToString(",") + "|" + excludedGenre.joinToString(","), - ) - } - if (publication != null) { - addQueryParameter( - "release", - publication, - ) - } - addQueryParameter( - "chapters", - minMaxToChapter(minChap, maxChap), - ) - }.toString() - } - - private fun minMaxToChapter(minChap: Int?, maxChap: Int?): String? { - if (minChap == null && maxChap == null) return null - return when { - minChap != null && maxChap == null -> minChap - minChap == null && maxChap != null -> "0-$maxChap" - else -> "$minChap-$maxChap" - }.toString() - } - - // Sort Filter - class SortItem(val name: String, val value: String) - - private val sortList: List = listOf( - SortItem("Rating", "rating"), - SortItem("Comments", "comments"), - SortItem("Discuss", "discuss"), - SortItem("Update", "update"), - SortItem("Create", "create"), - SortItem("Name", "name"), - SortItem("Total Views", "d000"), - SortItem("Most Views 360 days", "d360"), - SortItem("Most Views 180 days", "d180"), - SortItem("Most Views 90 days", "d090"), - SortItem("Most Views 30 days", "d030"), - SortItem("Most Views 7 days", "d007"), - SortItem("Most Views 24 hours", "h024"), - SortItem("Most Views 12 hours", "h012"), - SortItem("Most Views 6 hours", "h006"), - SortItem("Most Views 60 minutes", "h001"), - ) - - class SortDefault(val defaultSortIndex: Int, val ascending: Boolean) - - private val defaultSort: SortDefault = SortDefault(0, false) - - class SortFilter(name: String, default: SortDefault, sorts: List) : - Filter.Sort( - name, - sorts.map { it.name }.toTypedArray(), - Selection(default.defaultSortIndex, default.ascending), - ) - - // Min - Max Chapter Filter - abstract class TextFilter(name: String) : Filter.Text(name) - - class MinChapterFilter : TextFilter("Min. Chapters") - class MaxChapterFilter : TextFilter("Max. Chapters") - - // Publication Filter - class PublicationItem(val name: String, val value: String) - - private val publicationList: List = listOf( - PublicationItem("All", ""), - PublicationItem("Pending", "pending"), - PublicationItem("Ongoing", "ongoing"), - PublicationItem("Completed", "completed"), - PublicationItem("Hiatus", "hiatus"), - PublicationItem("Cancelled", "cancelled"), - ) - - class PublicationFilter( - name: String, - statusList: List, - defaultStatusIndex: Int, - ) : - Filter.Select( - name, - statusList.map { it.name }.toTypedArray(), - defaultStatusIndex, - ) - - // Type - class TypeItem(name: String, val value: String) : Filter.TriState(name) - - private val typeList: List = listOf( - TypeItem("Cartoon", "cartoon"), - TypeItem("Comic", "comic"), - TypeItem("Doujinshi", "doujinshi"), - TypeItem("Manga", "manga"), - TypeItem("Manhua", "manhua"), - TypeItem("Manhwa", "manhwa"), - TypeItem("Webtoon", "webtoon"), - ) - - class TypeFilter(name: String, typeList: List) : - Filter.Group(name, typeList) - - // Demographic - class DemographicItem(name: String, val value: String) : Filter.TriState(name) - - private val demographicList: List = listOf( - DemographicItem("Shounen", "shounen"), - DemographicItem("Shoujo", "shoujo"), - DemographicItem("Seinen", "seinen"), - DemographicItem("Josei", "josei"), - ) - - class DemographicFilter(name: String, demographicList: List) : - Filter.Group(name, demographicList) - - // Content - class ContentItem(name: String, val value: String) : Filter.TriState(name) - - private val contentList: List = listOf( - ContentItem("Adult", "adult"), - ContentItem("Ecchi", "ecchi"), - ContentItem("Gore", "gore"), - ContentItem("Hentai", "hentai"), - ContentItem("Mature", "mature"), - ContentItem("Smut", "smut"), - ) - - class ContentFilter(name: String, contentList: List) : - Filter.Group(name, contentList) - - // Genre - class GenreItem(name: String, val value: String) : Filter.TriState(name) - - private val genreList: List = listOf( - GenreItem("Action", "action"), - GenreItem("Adaptation", "adaptation"), - GenreItem("Adventure", "adventure"), - GenreItem("Aliens", "aliens"), - GenreItem("Animals", "animals"), - GenreItem("Anthology", "anthology"), - GenreItem("Award Winning", "award_winning"), // This Is Hidden In Web - GenreItem("Cars", "cars"), - GenreItem("Comedy", "comedy"), - GenreItem("Cooking", "cooking"), - GenreItem("Crime", "crime"), - GenreItem("Crossdressing", "crossdressing"), - GenreItem("Delinquents", "delinquents"), - GenreItem("Dementia", "dementia"), - GenreItem("Demons", "demons"), - GenreItem("Drama", "drama"), - GenreItem("Fantasy", "fantasy"), - GenreItem("Full Color", "full_color"), - GenreItem("Game", "game"), - GenreItem("Gender Bender", "gender_bender"), - GenreItem("Genderswap", "genderswap"), - GenreItem("Gyaru", "gyaru"), - GenreItem("Harem", "harem"), - GenreItem("Historical", "historical"), - GenreItem("Horror", "horror"), - GenreItem("Incest", "incest"), - GenreItem("Isekai", "isekai"), - GenreItem("Kids", "kids"), - GenreItem("Loli", "loli"), - GenreItem("Lolicon", "lolicon"), - GenreItem("Magic", "magic"), - GenreItem("Magical Girls", "magical_girls"), - GenreItem("Martial Arts", "martial_arts"), - GenreItem("Mecha", "mecha"), - GenreItem("Medical", "medical"), - GenreItem("Military", "military"), - GenreItem("Monster Girls", "monster_girls"), - GenreItem("Monsters", "monsters"), - GenreItem("Music", "music"), - GenreItem("Mystery", "mystery"), - GenreItem("Office Workers", "office_workers"), - GenreItem("Oneshot", "oneshot"), - GenreItem("Parody", "parody"), - GenreItem("Philosophical", "philosophical"), - GenreItem("Police", "police"), - GenreItem("Post Apocalyptic", "post_apocalyptic"), - GenreItem("Psychological", "psychological"), - GenreItem("Reincarnation", "reincarnation"), - GenreItem("Romance", "romance"), - GenreItem("Samurai", "samurai"), - GenreItem("School Life", "school_life"), - GenreItem("Sci-fi", "sci_fi"), - GenreItem("Shotacon", "shotacon"), - GenreItem("Shounen Ai", "shounen_ai"), - GenreItem("Shoujo Ai", "shoujo_ai"), - GenreItem("Slice of Life", "slice_of_life"), - GenreItem("Space", "space"), - GenreItem("Sports", "sports"), - GenreItem("Super Power", "super_power"), - GenreItem("Superhero", "superhero"), - GenreItem("Supernatural", "supernatural"), - GenreItem("Survival", "survival"), - GenreItem("Thriller", "thriller"), - GenreItem("Traditional Games", "traditional_games"), - GenreItem("Tragedy", "tragedy"), - GenreItem("Vampires", "vampires"), - GenreItem("Video Games", "video_games"), - GenreItem("Virtual Reality", "virtual_reality"), - GenreItem("Wuxia", "wuxia"), - GenreItem("Yaoi", "yaoi"), - GenreItem("Yuri", "yuri"), - GenreItem("Zombies", "zombies"), - ) - - class GenreFilter(name: String, genreList: List) : - Filter.Group(name, genreList) +abstract class SelectFilter( + name: String, + private val options: List>, + defaultValue: String? = null, +) : Filter.Select( + name, + options.map { it.first }.toTypedArray(), + options.indexOfFirst { it.second == defaultValue }.takeIf { it != -1 } ?: 0, +) { + val selected get() = options[state].second.takeUnless { it.isEmpty() } +} + +class CheckBoxFilter(name: String, val value: String) : Filter.CheckBox(name) + +abstract class CheckBoxGroup( + name: String, + options: List>, +) : Filter.Group( + name, + options.map { CheckBoxFilter(it.first, it.second) }, +) { + val checked get() = state.filter { it.state }.map { it.value }.takeUnless { it.isEmpty() } +} + +class TriStateFilter(name: String, val value: String) : Filter.TriState(name) + +abstract class TriStateGroup( + name: String, + private val options: List>, +) : Filter.Group( + name, + options.map { TriStateFilter(it.first, it.second) }, +) { + val included get() = state.filter { it.isIncluded() }.map { it.value }.takeUnless { it.isEmpty() } + val excluded get() = state.filter { it.isExcluded() }.map { it.value }.takeUnless { it.isEmpty() } +} + +class SortFilter(defaultOrder: String? = null) : SelectFilter("Sort By", sort, defaultOrder) { + companion object { + private val sort = listOf( + Pair("Rating Score", "field_score"), + Pair("Most Follows", "field_follow"), + Pair("Most Reviews", "field_review"), + Pair("Most Comments", "field_comment"), + Pair("Most Chapters", "field_chapter"), + Pair("New Chapters", "field_update"), + Pair("Recently Created", "field_create"), + Pair("Name A-Z", "field_name"), + Pair("Total Views", "views_d000"), + Pair("Most Views 360 days", "views_d360"), + Pair("Most Views 180 days", "views_d180"), + Pair("Most Views 90 days", "views_d090"), + Pair("Most Views 30 days", "views_d030"), + Pair("Most Views 7 days", "views_d007"), + Pair("Most Views 24 hours", "views_h024"), + Pair("Most Views 12 hours", "views_h012"), + Pair("Most Views 6 hours", "views_h006"), + Pair("Most Views 60 minutes", "views_h001"), + ) + + val POPULAR = FilterList(SortFilter("field_score")) + val LATEST = FilterList(SortFilter("field_update")) + } +} + +class GenreFilter(genres: List>) : TriStateGroup("Genres", genres) + +abstract class StatusFilter(name: String) : SelectFilter(name, status) { + companion object { + private val status = listOf( + Pair("All", ""), + Pair("Pending", "pending"), + Pair("Ongoing", "ongoing"), + Pair("Completed", "completed"), + Pair("Hiatus", "hiatus"), + Pair("Cancelled", "cancelled"), + ) + } +} + +class OriginalLanguageFilter : CheckBoxGroup("Original Work Language", language) { + companion object { + private val language = listOf( + Pair("Chinese", "zh"), + Pair("English", "en"), + Pair("Japanese", "ja"), + Pair("Korean", "ko"), + ) + } +} + +class OriginalStatusFilter : StatusFilter("Original Work Status") + +class UploadStatusFilter : StatusFilter("Upload Status") + +class ChapterCountFilter : SelectFilter("Number of Chapters", chapters) { + companion object { + private val chapters = listOf( + Pair("", ""), + Pair("0", "0"), + Pair("1+", "1"), + Pair("10+", "10"), + Pair("20+", "20"), + Pair("30+", "30"), + Pair("40+", "40"), + Pair("50+", "50"), + Pair("60+", "60"), + Pair("70+", "70"), + Pair("80+", "80"), + Pair("90+", "90"), + Pair("100+", "100"), + Pair("200+", "200"), + Pair("300+", "300"), + Pair("299~200", "200-299"), + Pair("199~100", "100-199"), + Pair("99~90", "90-99"), + Pair("89~80", "80-89"), + Pair("79~70", "70-79"), + Pair("69~60", "60-69"), + Pair("59~50", "50-59"), + Pair("49~40", "40-49"), + Pair("39~30", "30-39"), + Pair("29~20", "20-29"), + Pair("19~10", "10-19"), + Pair("9~1", "1-9"), + ) + } } diff --git a/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkPayloadDto.kt b/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkPayloadDto.kt new file mode 100644 index 000000000..397f3f44f --- /dev/null +++ b/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkPayloadDto.kt @@ -0,0 +1,31 @@ +package eu.kanade.tachiyomi.extension.all.mangapark + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class GraphQL( + val variables: T, + val query: String, +) + +@Serializable +data class SearchVariables(val select: SearchPayload) + +@Serializable +data class SearchPayload( + @SerialName("word") val query: String? = null, + val incGenres: List? = null, + val excGenres: List? = null, + val incTLangs: List? = null, + val incOLangs: List? = null, + val sortby: String? = null, + val chapCount: String? = null, + val origStatus: String? = null, + val siteStatus: String? = null, + val page: Int, + val size: Int, +) + +@Serializable +data class IdVariables(val id: String) diff --git a/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkQueries.kt b/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkQueries.kt new file mode 100644 index 000000000..68d2bdb41 --- /dev/null +++ b/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkQueries.kt @@ -0,0 +1,100 @@ +package eu.kanade.tachiyomi.extension.all.mangapark + +private fun buildQuery(queryAction: () -> String): String { + return queryAction() + .trimIndent() + .replace("%", "$") +} + +val SEARCH_QUERY = buildQuery { + """ + query ( + %select: SearchComic_Select + ) { + get_searchComic( + select: %select + ) { + items { + data { + id + name + altNames + artists + authors + genres + originalStatus + uploadStatus + summary + urlCoverOri + urlPath + } + } + } + } + """ +} + +val DETAILS_QUERY = buildQuery { + """ + query( + %id: ID! + ) { + get_comicNode( + id: %id + ) { + data { + id + name + altNames + artists + authors + genres + originalStatus + uploadStatus + summary + urlCoverOri + urlPath + } + } + } + """ +} + +val CHAPTERS_QUERY = buildQuery { + """ + query( + %id: ID! + ) { + get_comicChapterList( + comicId: %id + ) { + data { + id + dname + title + dateModify + dateCreate + urlPath + } + } + } + """ +} + +val PAGES_QUERY = buildQuery { + """ + query( + %id: ID! + ) { + get_chapterNode( + id: %id + ) { + data { + imageFile { + urlList + } + } + } + } + """ +} diff --git a/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkUrlActivity.kt b/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkUrlActivity.kt deleted file mode 100644 index 83a3f5e38..000000000 --- a/src/all/mangapark/src/eu/kanade/tachiyomi/extension/all/mangapark/MangaParkUrlActivity.kt +++ /dev/null @@ -1,51 +0,0 @@ -package eu.kanade.tachiyomi.extension.all.mangapark - -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 MangaParkUrlActivity : Activity() { - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - val host = intent?.data?.host - val pathSegments = intent?.data?.pathSegments - - if (host != null && pathSegments != null) { - val query = fromGuya(pathSegments) - - if (query == null) { - Log.e("MangaParkUrlActivity", "Unable to parse URI from intent $intent") - finish() - exitProcess(1) - } - - val mainIntent = Intent().apply { - action = "eu.kanade.tachiyomi.SEARCH" - putExtra("query", query) - putExtra("filter", packageName) - } - - try { - startActivity(mainIntent) - } catch (e: ActivityNotFoundException) { - Log.e("MangaParkUrlActivity", e.toString()) - } - } - - finish() - exitProcess(0) - } - - private fun fromGuya(pathSegments: MutableList): String? { - return if (pathSegments.size >= 2) { - val id = pathSegments[1] - "id:$id" - } else { - null - } - } -}