From 08cb43435aa68c470de88af5dc6a983ce27e37fc Mon Sep 17 00:00:00 2001 From: Creepler13 Date: Fri, 16 Aug 2024 08:27:34 +0200 Subject: [PATCH] Add ReadComic.net (#4629) * Added Extension for ReadComic.net * Fix extVersion * Requested Changes * Requested Changes --- src/en/readcomicnet/build.gradle | 7 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2990 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1529 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4290 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 8082 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 11724 bytes .../extension/en/readcomicnet/ReadcomicNet.kt | 207 ++++++++++++++++++ 7 files changed, 214 insertions(+) create mode 100644 src/en/readcomicnet/build.gradle create mode 100644 src/en/readcomicnet/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/en/readcomicnet/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/en/readcomicnet/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/en/readcomicnet/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/en/readcomicnet/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/en/readcomicnet/src/eu/kanade/tachiyomi/extension/en/readcomicnet/ReadcomicNet.kt diff --git a/src/en/readcomicnet/build.gradle b/src/en/readcomicnet/build.gradle new file mode 100644 index 000000000..142aa82bc --- /dev/null +++ b/src/en/readcomicnet/build.gradle @@ -0,0 +1,7 @@ +ext { + extName = 'ReadComicNet' + extClass = '.ReadcomicNet' + extVersionCode = 1 +} + +apply from: "$rootDir/common.gradle" diff --git a/src/en/readcomicnet/res/mipmap-hdpi/ic_launcher.png b/src/en/readcomicnet/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..57fcaabd76495d8494e01b02b7a79b3b30e08e39 GIT binary patch literal 2990 zcmV;f3sLlmP)^Qb#=Lva}kQb1Qu#t|gurf3dqfo&pqfA{VZDngassU=N>`@ImD%Q~f zqjVBm3)%)P9ndC%(yfdzwNwZM6g7}Q2;e+ON@B-}6UWZWN%ozqm>FaHp8E)FQ!E|X zxjxU|`G4Q}e9pbmVEh%4fM%ReWCG)WL=-X(XdI9-Co--e6&1u_`jfJ0xxb}HMw=hz z=?0I2w56q`7L7*pjsE`rqT%6TGpm^1L)IVex<9kja-s5zwGr5{;Jh>rPfScqZC_vC zCrwRFU2G_kK#2j0nlWQWDmC(_j*gCp=-o<{=|)EUlK`mwS#Et2%K4(AqTKQE@fUPD z-S-U8Q0n%n>X2zS%=6#)=os0b)2-gwTK&U){*TdzJFgQsQB35rwQc|T> zt9_!iwbdC;Ns$2Qb8~Z-dcEGahK7a`f(III;A3%JY@l+%6PzxK#qtbUM>*9o7)nLq z0I};asi~=D1m{=uIV!M|av;bZ1W#L100!1a{%DvWZ5|jHc$KdAF(U|u6b_J2a7yY_tRM=eHc(J?8;}wu@tUU!0~UOcSUmyX%U4h!phyGsdqtig zlBe@x^@#GisTv)0D5>rSxfMRhJud;ajij+L60pc|= z9%adeC1v2j3XV`#nTZAe7K^lM-77e9%_)r8%Lhc;krB5$BKaewu;iGWOmNBpg)^^k z!J(RP9abY1$MkBoa{kVGlItughV2qANLrV(`dOdPdQsM0B zfw!+0SraDEj<^Q8VcL(Souvy1ImS`auoaHy6G$7z{#L>NDs_=k_)B9m`9nGs3kXQ&SHR zYlL<1sin*Cq(+Z~g$vMq3m-1a*wH(Q94pgQjH1O|Qbba~pcM?hpVOil(9S%{};d?$_AS2~N3O_}nlD?UPsF z5#I+mM}U&*_91CPDzwHpe11LlqQg>zoTh_l&UqYhRx7Mg z1IUlVjaF%fO2VE69bpxaQeYu7Hg$kf=fee>o`(0u`@r{$k5;raRb zxK0y6x8K}$u=FDuQ>ILT)9DnJ{5%RX*k`-l4m!^h!UZ-dbeoH?yhrGtd_YE{@h&GF zj9+RH8Jxeoyc`aP19Yc_5Th_?EKg-+CFs^0(ES0ZsHi|8#a(4(Wdbm|>jZ1pt`&gJ znl(#^q0XE+gOw{+f`MyqZ^!iM(}n9*RaIEOetoc61r9@fKx!$8&GIX+ydumzO$M5q zn{oK?VXRrRMhN=Y=jF?n3o1Bt=n$%_tHFHWx^?S>fRF``$B!RJNlA&IlH%fG0Z;j&c*DC{}b88%r>9%uFI2 zWllN}kQfNLk+obC?}! z$fI0AQadCCij-APYCkwZDFgK1u!^Z{QtHJ)bUG>OgT!W4%JR`1$-hWPsJsx$}OH5gEzZWaVYdakI*aN+< zQDP6&vFF9OpY{k z!lMi+^(cT4T$DlZQmUc!BBfeN-IUlvz1+{NvPzlXVJc#f(&!k4si=Tb3{PjJJp9j7 zpNe^Usjdb}Cn>dz!eQzO`Ru&tKNc8;WTJN?C3g74z=@SpaXhM4#T3Fo3{YaASYqed z|GDifs5zd2GKZ}TNIYd!9hJ(JF-Q!EKPmdx6#l;bzx-np|9BWAe~QTee_ahKi|g*{ k#sP^S9tSiINSPJ>8|ZwR-wp`Z@&Et;07*qoM6N<$g25eyK>z>% literal 0 HcmV?d00001 diff --git a/src/en/readcomicnet/res/mipmap-mdpi/ic_launcher.png b/src/en/readcomicnet/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db66ec3e85bc9761be6cde61371acc58dd5d4250 GIT binary patch literal 1529 zcmVMmMXU7e%shcH-~W6o_te+;xzHUx|PHP%0+-RS7HA4A+= zYz$;SMq%vMc9!msgKexu#j)sG8FkvK_13B}MiXN$drvSSi{IsZiB1ar;N?rc?|kRH z&-*;@`OcdY6&~`2hX8h)K`92nhfg^Ngw&f56P*qiBibNvk0)aqF zG#a(Br|2BB_~&>}sn@pqJB_oX)9Efyzo+Kr=2lY?2m#1)xm+Lle7=*(&dNC^22$ub zxxR$%TP&8(mX?+}Xq-?oh*SXVyP>eKa55AMSu>4zI*y73O{39xgTY`i-DfPsrL|=i zVgRi9`S}a+!FgCv5`CWj#N-+dhwV&KQUF-e+8hqYJvpuOIwIFj2}_ih`PAQHazdv{ zC;>o-0Xb)O`aU-RyWJjR;QwMl4tPA6iU7zlAUCKScp;t3$%z|)&1REiK*)I|faDw% zyUz{4YPBW+NJ)vuX`VK`fYJhxEF~UUqypx3j;9^9;hTl>^70fjAQkEDVj*n+=_GU} zPD{KPl`$aZxSW)DoabpHAS*rqxw*N5vyhnM+W{ywSRzXqJ^-}xlgxp1fn>Tkq;Zu4 z$jQmU2Tey&T3Q0PX9<<&TrAAbBa&-D?!qDhIvon^c7(^qanor>(P{ujqXFly{RUr7 z5uE!EVrrlV)|w`$Jd;qH3ur;?M{pyAiEH1W^hgJCmT$pl+7HvpEm|vU5j5|CQ5(hh z^~<>9{v~-uzz4u=HYXT3TK^(WPtN0~h9hX$h$0dU0>d}3db}CBb00!iRf%ZjV+daC zf#pOSR=&T4o{|C#toboi(}icUNAUMuFP!-fOlVwqTJCq6 zMF662v_kXsx6n8o2p2sP17K}C4$tK)I2&EZf?AK;&wqu(>OU~L6hWmm1b3($7SCVs zuKJ`X-q{T*hkLmS5~1m84&ts9CuxN;96WpWM3KH{Gbu-pM>H7Qs2Tt%L<`{Zf{?b<7E~$~mX}Fpn>Bb60zLpnqfvGilA4Ly+uK1!5$fvdFgQ3E12a86 zjgpcQba!{7x3?Gd_4R0NZAD*SAIi(iV?fKw%HZ{SW1t!v8#4!xE&~-66|qP%r-p`x zP+MDz;o)J>uN`o^-Jsf*X0=jK-GPyj5l{^dzuzA_Q`r~`_`twGvUK8~`4}KdGh%?} zJ;76R3n1VJAQt^p=cJrX=M62?zv3Lw>-CBm;EB2tKtlTAo`o0yUi~X!L`pU?kyn-j zw0!sv1H52(il1ahrB=HcF+j7&772;H1LPRsaabzfQh@L!aVmhFVt`XN$r$(mWM^mZ z2m^96mWXUJ2f)h!?@W|NIjd~i$-HEuJ2dR!9I_I%TKz7aUnZk6N%-JlU>lrgk-tiInrwnBkld%xCLg<| zC$o~7$+X+xL?&Hq(8CM_la4=GKCDx*ePVV!Ytz`S&2An{?`&t1SwcE-haUdbU^l6e flF)AZ#XbJNl-VtdDu}oM00000NkvXXu0mjfdil{2 literal 0 HcmV?d00001 diff --git a/src/en/readcomicnet/res/mipmap-xhdpi/ic_launcher.png b/src/en/readcomicnet/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..5f8f8d91460ebcf6d60620eee94cfe4d2fc4dd6c GIT binary patch literal 4290 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 literal 0 HcmV?d00001 diff --git a/src/en/readcomicnet/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/readcomicnet/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..5b423390bfbac52e9c40352d6f41ba34feab2310 GIT binary patch literal 11724 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 Kg(|tXpZ*76yNXx< literal 0 HcmV?d00001 diff --git a/src/en/readcomicnet/src/eu/kanade/tachiyomi/extension/en/readcomicnet/ReadcomicNet.kt b/src/en/readcomicnet/src/eu/kanade/tachiyomi/extension/en/readcomicnet/ReadcomicNet.kt new file mode 100644 index 000000000..8dd22d34a --- /dev/null +++ b/src/en/readcomicnet/src/eu/kanade/tachiyomi/extension/en/readcomicnet/ReadcomicNet.kt @@ -0,0 +1,207 @@ +package eu.kanade.tachiyomi.extension.en.readcomicnet + +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.source.model.Filter +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.Page +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.source.online.ParsedHttpSource +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import java.text.SimpleDateFormat +import java.util.Locale + +class ReadcomicNet : ParsedHttpSource() { + + override val name = "ReadComicNet" + + override val baseUrl = "https://readcomic.net" + + override val lang = "en" + + override val supportsLatest = true + + override fun popularMangaSelector() = ".manga-box" + + override fun latestUpdatesSelector() = ".home-list .hl-box .hlb-name" + + override fun searchMangaSelector() = popularMangaSelector() + + override fun popularMangaNextPageSelector() = ".general-nav a:last-child" + + override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector() + + override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() + + override fun popularMangaRequest(page: Int): Request { + return GET("$baseUrl/popular-comic/$page", headers) + } + + override fun latestUpdatesRequest(page: Int): Request { + return GET("$baseUrl/comic-updates/$page", headers) + } + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request = + GET( + "$baseUrl/advanced-search".toHttpUrl().newBuilder().apply { + addQueryParameter("key", query) + if (!filters.isEmpty()) { + for (filter in filters) { + when (filter) { + is StatusFilter -> { + addQueryParameter("status", filter.stateAsQueryString()) + } + + is GenreList -> { + addQueryParameter("wg", filter.included.joinToString(",")) + addQueryParameter("wog", filter.excluded.joinToString(",")) + } + + else -> {} + } + } + } + }.build(), + headers, + ) + + override fun popularMangaFromElement(element: Element): SManga = + SManga.create().apply { + setUrlWithoutDomain(element.selectFirst("a")!!.attr("abs:href")) + title = element.selectFirst("h3")!!.text() + thumbnail_url = element.selectFirst(".image")?.selectFirst("img")?.attr("abs:src") + } + + override fun latestUpdatesFromElement(element: Element): SManga = + SManga.create().apply { + setUrlWithoutDomain(element.attr("abs:href")) + title = element.text() + } + + override fun searchMangaFromElement(element: Element): SManga { + return popularMangaFromElement(element) + } + + override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply { + val infoElement = document.selectFirst(".manga-details tbody")!! + + author = infoElement.selectFirst("td:contains(Author:)+ td")?.text() + genre = infoElement.selectFirst("td:contains(Genre:)+ td")?.text() + status = infoElement.selectFirst("td:contains(Status:)+ td")?.text() + .orEmpty().let { parseStatus(it) } + description = document.select(".pdesc").first()?.text() + thumbnail_url = document.select(".manga-image img").first()?.attr("abs:src") + } + + private fun parseStatus(status: String) = when { + status.contains("Ongoing") -> SManga.ONGOING + status.contains("Completed") -> SManga.COMPLETED + else -> SManga.UNKNOWN + } + + override fun chapterListSelector() = ".ch-name" + + private val dateFormat = SimpleDateFormat("MM/dd/yy", Locale.getDefault()) + + override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply { + setUrlWithoutDomain(element.attr("abs:href") + "/full") + name = element.text() + try { + date_upload = element.nextElementSibling()!!.text().let { + dateFormat.parse(it)?.time ?: 0L + } + } catch (exception: Exception) {} + } + + override fun pageListParse(document: Document): List { + return document.select(".chapter_img").mapIndexed { idx, img -> + Page(idx, imageUrl = img.attr("abs:data-original")) + } + } + + private class StatusFilter : + Filter.Select("Status", arrayOf("", "Complete", "On Going"), 0) { + val stateArray = arrayOf("", "CMP", "ONG") + fun stateAsQueryString(): String { + return stateArray[this.state] + } + } + private class Genre(name: String, val gid: String) : Filter.TriState(name) + private class GenreList(genres: List) : Filter.Group("Genres", genres) { + val included: List + get() = state.filter { it.isIncluded() }.map { it.gid } + + val excluded: List + get() = state.filter { it.isExcluded() }.map { it.gid } + } + + override fun getFilterList() = FilterList( + StatusFilter(), + GenreList(getGenreList()), + ) + + override fun imageUrlParse(document: Document): String = "" + + // [...document.querySelectorAll(".search-checks li")].map((el) => `Genre("${el.innerText}", "${el.innerText.replaceAll(" ","+")}")`).join(',\n') + // on https://readcomic.net/advanced-search + private fun getGenreList() = listOf( + Genre("Marvel", "Marvel"), + Genre("DC Comics", "DC+Comics"), + Genre("Action", "Action"), + Genre("Adventure", "Adventure"), + Genre("Anthology", "Anthology"), + Genre("Anthropomorphic", "Anthropomorphic"), + Genre("Biography", "Biography"), + Genre("Children", "Children"), + Genre("Comedy", "Comedy"), + Genre("Crime", "Crime"), + Genre("Cyborgs", "Cyborgs"), + Genre("Dark Horse", "Dark+Horse"), + Genre("Demons", "Demons"), + Genre("Drama", "Drama"), + Genre("Fantasy", "Fantasy"), + Genre("Family", "Family"), + Genre("Fighting", "Fighting"), + Genre("Gore", "Gore"), + Genre("Graphic Novels", "Graphic+Novels"), + Genre("Historical", "Historical"), + Genre("Horror", "Horror"), + Genre("Leading Ladies", "Leading+Ladies"), + Genre("Literature", "Literature"), + Genre("Magic", "Magic"), + Genre("Manga", "Manga"), + Genre("Martial Arts", "Martial+Arts"), + Genre("Mature", "Mature"), + Genre("Mecha", "Mecha"), + Genre("Military", "Military"), + Genre("Movie Cinematic Link", "Movie+Cinematic+Link"), + Genre("Mystery", "Mystery"), + Genre("Mythology", "Mythology"), + Genre("Psychological", "Psychological"), + Genre("Personal", "Personal"), + Genre("Political", "Political"), + Genre("Post-Apocalyptic", "Post-Apocalyptic"), + Genre("Pulp", "Pulp"), + Genre("Robots", "Robots"), + Genre("Romance", "Romance"), + Genre("Sci-Fi", "Sci-Fi"), + Genre("Slice of Life", "Slice+of+Life"), + Genre("Science Fiction", "Science+Fiction"), + Genre("Sports", "Sports"), + Genre("Spy", "Spy"), + Genre("Superhero", "Superhero"), + Genre("Supernatural", "Supernatural"), + Genre("Suspense", "Suspense"), + Genre("Thriller", "Thriller"), + Genre("Tragedy", "Tragedy"), + Genre("Vampires", "Vampires"), + Genre("Vertigo", "Vertigo"), + Genre("Video Games", "Video+Games"), + Genre("War", "War"), + Genre("Western", "Western"), + Genre("Zombies", "Zombies"), + ) +}